← Analytics / analytics / faq
Nekonzistentní výsledky GraphQL API
Pokud stejný dotaz GraphQL Analytics API spustíte vícekrát a pokaždé dostanete mírně odlišné výsledky, způsobuje to vzorkování Adaptive Bit Rate (ABR). ABR dynamicky upravuje rozlišení dat podle složitosti dotazu a časování, což může mezi jednotlivými spuštěními vést k mírným odchylkám ve výsledcích.
Chcete-li snížit variabilitu, dotazujte se na kratší časové úseky (denní nebo týdenní místo měsíčních) a používejte agregované datové sady (uzly s Groups příponu) a vyžádat si intervaly spolehlivosti pro posouzení kvality dat. Další informace najdete v Vzorkování.
Co je to vzorkování?
Datový pipeline Cloudflare zpracovává přes 700 milionů událostí za sekundu v rámci celé globální sítě. Zpracovávat všechna tato data v reálném čase pro každý jednotlivý dotaz by bylo neúměrně nákladné a časově náročné.
Vzorkování analyzuje podmnožinu dat namísto každého jednotlivého datového bodu. Cloudflare používá vzorkování Adaptive Bit Rate (ABR), aby dotazy proběhly rychle i při práci s rozsáhlými datovými sadami.
ABR ukládá data ve více rozlišeních:
- 100% : Úplná data (používaná pro menší datové sady)
- 10% : 10% vzorek (střední rozlišení)
- 1% : 1% vzorek (nižší rozlišení)
Při spuštění dotazu ABR dynamicky vybere nejvhodnější rozlišení podle složitosti dotazu, požadovaného časového rozsahu, počtu řádků k načtení a aktuální zátěže systému.
Proč se výsledky liší mezi jednotlivými spuštěními dotazu?
Výsledky se mohou lišit z několika důvodů:
- Dynamický výběr rozlišení : ABR může v jednotlivých spuštěních dotazu zvolit různá rozlišení vzorkování podle aktuálních podmínek systému.
- Dlouhé časové rozsahy : Dotazování na 30 dní najednou je nákladná operace, která spouští agresivnější vzorkování.
- Vysoká složitost dotazu : Složité dotazy s mnoha filtry nebo agregacemi mohou být vzorkovány jinak.
- Zátěž systému : V obdobích vysokého provozu může systém uplatnit agresivnější vzorkování, aby zajistil spravedlivé rozdělení prostředků.
Pokud například stejný dotaz za 30 dní spustíte dvakrát, může poprvé vrátit 3,500 objektů a podruhé 3,600 objektů. To znamená, že se použilo jiné rozlišení vzorkování.
Mohu vzorkovaným datům důvěřovat?
Ano. Vzorkovaná data jsou vysoce spolehlivá a poskytují stejně důvěryhodné poznatky jako data odvozená z úplných datových sad. Techniky vzorkování Cloudflare zachycují základní charakteristiky celé datové sady.
Agregované metriky (součty, průměry, percentily) se extrapolují na základě velikosti vzorku, takže vykazované metriky přesně reprezentují celou datovou sadu. Výsledky založené na tisících řádků budou s vysokou pravděpodobností reprezentativní.
Jak mohu omezit rozptyl výsledků dotazů?
Dotazování kratších časových rozsahů
Místo dotazování na celý měsíc najednou rozdělte dotazy na menší intervaly (denní nebo týdenní).
Předtím (proměnlivější):
datetime_geq: "2024-09-01T00:00:00Z"
datetime_lt: "2024-10-01T00:00:00Z"Po (konzistentnější):
datetime_geq: "2024-09-01T00:00:00Z"
datetime_lt: "2024-09-02T00:00:00Z"Výsledky poté agregujte na straně klienta. U menších časových oken je méně pravděpodobné, že se spustí agresivní prahové hodnoty vzorkování.
Použití agregovaných datasetů
Upřednostněte u datových uzlů Groups příponu před syrovými (raw) adaptivními datasety. Agregovaná data jsou předzpracovaná a méně náchylná k odchylkám způsobeným vzorkováním.
Použijte například httpRequestsAdaptiveGroups místo nezpracovaných dat událostí.
Přidejte explicitní řazení
Vždy uveďte orderBy ve svých dotazech, abyste zajistili konzistentní řazení výsledků:
orderBy: [datetime_ASC]Použití intervalů spolehlivosti
U adaptivních datových sad požadujte intervaly spolehlivosti k posouzení kvality dat a ověření vzorkování:
confidence(level: 0.95) {
count {
estimate
lower
upper
sampleSize
}
}Vyšší sampleSize značí spolehlivější výsledky.
Stručný přehled
| Vystavit | Zmírnění |
|---|---|
| Výsledky se mezi jednotlivými spuštěními liší | Dotazování kratších časových rozsahů (denně nebo týdně místo měsíčně) |
| Agresivní vzorkování u rozsáhlých dotazů | Rozdělte dotazy na kratší časové intervaly a agregujte je na straně klienta |
| Potřeba konzistentního řazení | Přidejte orderBy klauzuli na všechny dotazy |
| Potřeba ověřit kvalitu dat | Požadavek confidence intervaly pro kontrolu velikosti vzorku a přesnosti |
| Použití syrových adaptivních dat | Přepněte na agregované datové sady (uzly s Groups příponu) |