Minhaz Kazi, przedstawiciel ds. kontaktu z deweloperami, Google Analytics: Październik 2022 r.
Pomiar dokładnych różnych liczb (tj. mocy zbioru) w dużych zbiorach danych wymaga sporo pamięci i wpływa na wydajność. Usługi w Google Analytics 4 używają Algorytm HyperLogLog++ (HLL++) do szacowania mocy zbioru najczęściej używanych danych w tym Aktywni użytkownicy i Sesje. Na przykład przy wyświetlaniu kolumny Aktywne użytkownicy zarówno w interfejsie Google Analytics, jak i w interfejsie Data API podawane są liczby należy traktować w przybliżeniu. Użycie HLL++ w przypadku tych wskaźników zapewnia wydajności o większej dokładności szacowania i niższych progach błędu. Ten post na blogu zawiera szczegółowe informacje o używaniu języka HLL++ w usługach Google Analytics 4 oraz o tym, jak powielić niektóre szacunki za pomocą eksportu zdarzeń BigQuery. i skalowalnych danych.
Informacje o HLL++
HLL++ szacuje moc zbioru, zużywając przy tym mniej pamięci i poprawiając wydajność.
HLL++ ma ulepszenia wprowadzone za pomocą algorytmu HyperLogLog i opiera się na
Praktyka HyperLogLog: inżynieria algorytmiczna najnowocześniejszej technologii
algorytm szacowania mocy zbioru. Zmiany w parametrze HLL++ precision
między wykorzystaniem pamięci a precyzją obliczonych statystyk. Zwiększenie wartości
zmniejsza błąd, ale zwiększa wykorzystanie pamięci.
Implementacja liczby unikalnych użytkowników w BigQuery
- Użyj
COUNT(DISTINCT)
, aby zmierzyć dokładną moc zbioru. Ta metoda wymaga więcej pamięci i pracuje dłużej, szczególnie w przypadku dużych zbiorów danych. APPROX_COUNT_DISTINCT
określa w przybliżeniu wyniki za pomocą HLL++. Pamiętaj jednak:APPROX_COUNT_DISTINCT
nie zezwala użytkownikom na konfigurowanie przybliżenia dokładności.- Aby użyć niestandardowych wartości
precision
, użyj funkcji HyperLogLog++. Zobacz Skecze HLL++ dla dozwolonych wartościprecision
i poziomu ufności dla typowej dokładności. - Kolejnym parametrem HLL+ jest
sparse precision
. W BigQuery wartościsparse precision
nie można zdefiniować przez użytkownika i ma ona wartośćprecision + 5
.
Implementacja HLL++ w usługach w Google Analytics 4
Google Analytics 4 używa tej konfiguracji do pomiaru mocy zbioru powiązane dane.
Dane | precision |
sparse precision |
---|---|---|
Sesje | 12 | 17 |
Aktywni użytkownicy | 14 | 25 |
Całkowita liczba użytkowników | 14 | 25 |
Korzystanie z funkcji BigQuery HLL++ z danymi zdarzeń Google Analytics
Jeśli dane zdarzeń z usługi w Google Analytics 4 są dostępne w BigQuery, dopasować wskaźniki z interfejsu do danych BigQuery. Przykłady poniżej załóżmy, że:
- Identyfikator raportowania w Google Analytics 4 jest ustawiony na
By device only
usłudze. - Inne potencjalne źródła rozbieżności, np. strefy czasowej raportowania, oraz je wyeliminować.
Użytkownicy łącznie
Dokładna liczba z użyciem parametru COUNT(DISTINCT)
:
SELECT
COUNT(DISTINCT user_pseudo_id) AS exact_total_user_count,
FROM `bigquery-public-data.ga4_obfuscated_sample_ecommerce.events_*`
Przybliżona liczba z wykorzystaniem parametru APPROX_COUNT_DISTINCT
:
SELECT
APPROX_COUNT_DISTINCT(user_pseudo_id) AS approx_total_user_count,
FROM `bigquery-public-data.ga4_obfuscated_sample_ecommerce.events_*`
Możesz replikować plik APPROX_COUNT_DISTINCT
za pomocą funkcji BigQuery HLL++. Ten
zwróci wyniki identyczne lub bardzo podobne do funkcji APPROX_COUNT_DISTINCT
:
SELECT
HLL_COUNT.EXTRACT(HLL_COUNT.INIT(user_pseudo_id, 15)) AS approx_total_user_count,
FROM `bigquery-public-data.ga4_obfuscated_sample_ecommerce.events_*`
I na koniec, aby powielić dane w interfejsie Google Analytics, użyj narzędzia precision = 14
:
SELECT
HLL_COUNT.EXTRACT(HLL_COUNT.INIT(user_pseudo_id, 14)) AS total_user_count,
FROM `bigquery-public-data.ga4_obfuscated_sample_ecommerce.events_*`
Aktywni użytkownicy
Aby obliczyć liczbę Aktywnych użytkowników w tabeli eksportu zdarzeń BigQuery, najpierw muszą filtrować zdarzenia tylko pod kątem Aktywnych użytkowników. Wdrożenie aktywnych Filtr Użytkownik jest poza zakresem tego artykułu.
WITH ActiveUsers AS
(
SELECT
user_pseudo_id
FROM
`bigquery-public-data.ga4_obfuscated_sample_ecommerce.events_*`
WHERE
<implement active user filter logic>
)
SELECT
HLL_COUNT.EXTRACT(HLL_COUNT.INIT(user_pseudo_id, 14)) AS active_user_count,
FROM ActiveUsers
Sesje
Parametr zdarzenia ga_session_id
identyfikuje poszczególne unikalne sesje w przypadku:
każdego użytkownika. Kombinacja user_pseudo_id
i ga_session_id
będzie
unikalne w całym zbiorze danych dla unikalnych sesji. To standardowa metoda
zliczanie sesji w usługach w Google Analytics 4. Liczba sesji: precision
wynosi 12.
SELECT
HLL_COUNT.EXTRACT(
HLL_COUNT.INIT(
CONCAT(
user_pseudo_id,
(SELECT `value` FROM UNNEST(event_params) WHERE key = 'ga_session_id' LIMIT 1).int_value),
12)) AS session_count,
FROM `bigquery-public-data.ga4_obfuscated_sample_ecommerce.events_*`
Do zapytań podanych w tym poście na blogu możesz używać funkcji Zapytania podstawowe oraz przykłady zapytań zaawansowanych, które pozwalają uzyskać dodatkowe statystyki ze zdarzenia BigQuery; eksportować dane z usług w Google Analytics 4. Jeśli usługa generuje dużych ilości danych zdarzeń, można również zaimplementować funkcje HLL++ do oszacować moc zbioru innych wskaźników, których często używasz w BigQuery zapytań. Aby dowiedzieć się więcej o HLL++ i dlaczego obliczenia mocy zbioru są drogie przeczytaj szczegółowy post na blogu Cloud: Używanie HLL++ do przyspieszenia działania różnic w ogromnych zbiorach danych.