Minhaz Kazi, Geliştirici Destekçisi, Google Analytics – Ekim 2022
Büyük veri kümelerinde tam olarak farklı sayıların (ör. kardinalite) ölçülmesi performansı etkiler. Google Analytics 4 mülkleri En çok kullanılan metrikler için kardinaliteyi tahmin etmek amacıyla HyperLogLog++ (HLL++) algoritması Etkin Kullanıcılar ve Oturumlar dahil. Örneğin, Etkin Google Analytics kullanıcı arayüzündeki kullanıcı sayısı ve Data API üzerinden yaklaşık bir sayı olacaktır. Bu metrikler için HLL++ kullanmak daha yüksek tahmin doğruluğu ve daha düşük hata sınırlarıyla daha iyi performans sağlar. Bu Blog yayınında, HLL++'nın Google Analytics 4 mülklerinde nasıl kullanıldığına dair ayrıntılar yer alıyor. ve BigQuery etkinlik dışa aktarımını kullanarak tahminlerden bazılarını nasıl çoğaltabileceğinizi dışı verilerdir.
HLL++ hakkında
HLL++ kardinaliteyi tahmin ederken daha az bellek kullanır ve performansı iyileştirir.
HLL++, HyperLogLog algoritması üzerinden yapılan genişletmelere sahiptir ve
HyperLogLog in Practice: Son Teknoloji Durumu Algoritmik Mühendisliği
Kardinalite Tahmin Algoritması. HLL++ precision
parametresindeki değişiklikler
ve hesaplanan istatistiklerin doğruluğundan
bahsedilir. Her bir
parametre değeri hatayı azaltır ancak bellek tüketimini artırır.
BigQuery'de benzersiz sayı uygulaması
- Tam kardinaliteyi ölçmek için
COUNT(DISTINCT)
değerini kullanın. Bu yaklaşım, daha fazla bellek içerir ve özellikle büyük veri kümelerinde daha uzun sürer. APPROX_COUNT_DISTINCT
, HLL++ ile sonuçları tahmin eder. Ancak,APPROX_COUNT_DISTINCT
, kullanıcıların yaklaşık değeri yapılandırmasına izin vermiyor emin olun.- Özel
precision
değerlerini kullanmak için HyperLogLog++ işlevlerini kullanın. Görüntüleyin İzin verilenprecision
değerleri ve güven için HLL++ Çizimler aralıklarında görüntüleyebilirsiniz. sparse precision
, HLL+ için başka bir parametredir. BigQuery'desparse precision
değeri kullanıcı tarafından tanımlanamaz veprecision + 5
olarak sabitlenir.
Google Analytics 4 mülklerinde HLL++ Uygulaması
Google Analytics 4, şu öğelerin kardinalitesini ölçmek için aşağıdaki yapılandırmayı kullanır: kullanabilirsiniz.
Metrik | precision |
sparse precision |
---|---|---|
Oturumlar | 12 | 17 |
Etkin Kullanıcı Sayısı | 14 | 25 |
Toplam Kullanıcı Sayısı | 14 | 25 |
Google Analytics Etkinlik verileriyle BigQuery HLL++ İşlevlerini kullanma
Google Analytics 4 mülkünüzün etkinlik verileri BigQuery'de mevcutsa kullanıcı arayüzündeki metrikleri BigQuery verileriyle eşleştirmeyi deneyebilir. Aşağıdaki örnekler varsayalım:
- Google Analytics 4 için raporlama kimliği
By device only
olarak ayarlandı - Diğer olası tutarsızlık kaynakları, ör. raporlama saat diliminizi ele alınır.
Toplam Kullanıcı Sayısı
COUNT(DISTINCT)
kullanılarak tam sayı:
SELECT
COUNT(DISTINCT user_pseudo_id) AS exact_total_user_count,
FROM `bigquery-public-data.ga4_obfuscated_sample_ecommerce.events_*`
APPROX_COUNT_DISTINCT
kullanılarak yapılan yaklaşık sayı:
SELECT
APPROX_COUNT_DISTINCT(user_pseudo_id) AS approx_total_user_count,
FROM `bigquery-public-data.ga4_obfuscated_sample_ecommerce.events_*`
BigQuery HLL++ işlevlerini kullanarak APPROX_COUNT_DISTINCT
kodunu çoğaltabilirsiniz. Bu
APPROX_COUNT_DISTINCT
ile aynı veya çok benzer sonuçlar döndürür:
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_*`
Son olarak, verileri Google Analytics kullanıcı arayüzünde kopyalamak için precision = 14
işlevini kullanın:
SELECT
HLL_COUNT.EXTRACT(HLL_COUNT.INIT(user_pseudo_id, 14)) AS total_user_count,
FROM `bigquery-public-data.ga4_obfuscated_sample_ecommerce.events_*`
Etkin kullanıcı sayısı
BigQuery etkinlik dışa aktarma tablosundan Etkin Kullanıcı Sayısı sayısını hesaplamak için öncelikle Etkinlikleri yalnızca Etkin Kullanıcılar için filtrelemeniz gerekir. Etkin Kullanıcı filtresi bu makalenin kapsam dışında.
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
Oturum sayısı
ga_session_id
etkinlik parametresi, şunun için tekilleştirilmiş oturumları tanımlar:
her bir kullanıcıya oluşturabilirsiniz. user_pseudo_id
ve ga_session_id
kombinasyonu şöyle olacak:
benzersiz oturumlar oluşturun. Bu, resmî bir kapanışla
Google Analytics 4 mülklerinde oturumları sayma. Oturumlar için precision
12'dir.
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_*`
Bu blog yayınındaki sorguları Temel Sorgular ve BigQuery etkinliğinden ek analizler elde etmek için Gelişmiş Sorgu örnekleri Google Analytics 4 mülklerinizin verilerini dışa aktarabilirsiniz. Mülkünüz büyük miktarda etkinlik verisi içeriyorsa, HLL++ işlevlerini kullanarak BigQuery hesabınızda yaygın olarak kullandığınız diğer metriklerin kardinalitesini tahmin edin daha fazla bilgi edineceksiniz. HLL++ ve kardinalite hesaplamasının neden pahalı olduğu hakkında daha fazla bilgi edinmek için hakkında daha fazla bilgi edinmek için Cloud Blogu'ndaki ayrıntılı blog yayınını okuyun: Büyük veri kümelerinde ayrımı hızlandırmak için HLL++ kullanma.