INTEGRITY Dokumentace

Časté dotazy k Workers Analytics Engine

Níže najdete odpovědi na nejčastější dotazy.

Vzorkování

Nestačilo by mi prostě použít mnoho jedinečných indexových hodnot k získání přesnějších jedinečných počtů?

Ne, přidání velkého množství indexových hodnot s sebou nese nevýhody. Tou hlavní je, že čtení napříč mnoha indexy je pomalejší.

V praxi to kvůli způsobu fungování ABR znamená, že čtení z mnoha indexů v rámci jednoho dotazu vede k datům s nízkým rozlišením, možná až nepoužitelně nízkým.

Pokud naopak zvolíte vhodný index odpovídající způsobu, jakým data čtete, dotazy poběží rychleji a získáte výsledky s vyšším rozlišením.

Co když potřebuji indexovat podle více hodnot?

Do pole indexu je možné spojit více hodnot. Pokud tedy chcete indexovat podle ID uživatele a názvu hostitele, můžete napsat například "$userID:$hostname" do pole indexu.

V závislosti na vzoru vašich dotazů může dávat smysl zapisovat stejný dataset s různými indexy. Přetrvává totiž rozšířený mylný názor, že byste se měli vyhýbat "dvojitému zápisu" dat.

Díky vzorkování může být cena za opakovaný zápis dat poměrně nízká. Neefektivní čtení dat ale může kvůli vzorkování vést k výrazným nákladům nebo k výsledkům nízké kvality.

Jak zjistím, zda jsou má data vzorkovaná?

Můžete použít _sample_interval pole: znovu upozorňujeme, že to neříká nic o tom, zda jsou výsledky přesné.

Že jsou data vzorkována až při čtení, poznáte podle toho, že intervaly vzorkování budou násobky mocnin čísla 10, například 20 nebo 700. Neexistuje pevné pravidlo pro to, kdy vzorkování při čtení začíná, ale v praxi platí, že čtení delších období nebo více indexových hodnot vede k vyššímu intervalu vzorkování.

Proč chybí data?

Vzorkování závisí především na volbě indexu, ale i na dalších faktorech, jako je dotazovaný časový rozsah a počet čtených indexů. Pokud čtete z většího indexu za delší časové období a filtrujete na relativně malou podskupinu v rámci tohoto indexu, nemusí být kvůli vzorkování přítomna.

Pokud potřebujete přesné výsledky i pro danou podskupinu, doporučujeme přidat toto pole do indexu (viz Co když potřebuji indexovat podle více hodnot).

Mohu vzorkovaným datům důvěřovat? Jsou moje výsledky přesné?

Vzorkovaná data jsou vysoce spolehlivá, zejména pokud se použije pečlivě zvolený index.

V současné době je obtížné prokázat, že výsledky vracené dotazy ABR se pohybují v rámci určité chybové odchylky. Jako obecné pravidlo je dobré zkontrolovat počet přečtených řádků pomocí count(): představte si to jako počet pixelů ve vašem obrázku. Čím více řádků se přečte, tím přesnější budou výsledky. (Nevýhodou je, že _sample_interval pole vám příliš neřekne o tom, zda jsou vaše výsledky přesné). Pokud extrapolujete pouze z jednoho nebo dvou řádků, je nepravděpodobné, že máte reprezentativní výsledek; pokud extrapolujete z tisíců řádků, je velmi pravděpodobné, že vaše výsledky jsou poměrně přesné.

V blízké budoucnosti plánujeme zpřístupnit míra chyby ↗ spolu s výsledky dotazu, abyste přesně věděli, jak přesné vaše výsledky jsou.

Jak se řeší nárazy v provozu?

Rovnoměrné vzorkování slouží jednak k vyrovnání rozdílů mezi skupinami, jednak ke zvládnutí velkých špiček provozu u daného indexu. K vyrovnávání dochází každých pár sekund: pokud zapisujete mnoho událostí těsně po sobě, lze očekávat, že se vzorkují už při zápisu. Vzorkovací interval pro daný index se navíc průběžně mění podle aktuální rychlosti zápisu dat.

Jaký objem provozu spustí vzorkování?

Neexistuje pevné pravidlo určující, kdy se vzorkování spustí.

Zjistili jsme, že u zátěží, jako je naše globální CDN, která rozkládá zátěž po celé síti, potřebuje každá hodnota indexu přibližně 100 datových bodů za sekundu, než se vzorkování začne vůbec projevovat.

Prahová hodnota, od které začíná vzorkování, se může lišit podle vaší zátěže a způsobu využívání Workers Analytics Engine. Pokud například při jednom spuštění workeru zapisujete velké množství datových bodů, je pravděpodobnější, že vaše data budou vzorkována.