"مينهاز كازي"، مسؤول علاقات المطوّرين، "إحصاءات Google" – تشرين الأول (أكتوبر) 2022
يتطلب قياس الأعداد المختلفة الدقيقة (أي عدد القيم الفريدة للسمة) لمجموعات البيانات الكبيرة. ذاكرة كبيرة وتؤثر في الأداء. تستخدِم مواقع "إحصاءات Google 4" خوارزمية HyperLogLog++ (HLL++) لتقدير عدد القيم الفريدة للسمة للمقاييس الأكثر استخدامًا بما في ذلك المستخدِمون النشطون والجلسات. على سبيل المثال، عند عرض علامة التبويب نشِط المستخدمون في واجهة مستخدم "إحصاءات Google" ومن خلال Data API، ستكون تقريبية. ويضمن استخدام HLL++ لهذه المقاييس الأداء بدقة أعلى في التقدير وحدود أخطاء أقل. هذا النمط توفّر مشاركة المدونة تفاصيل عن كيفية استخدام HLL++ في مواقع "إحصاءات Google 4". وكيفية تكرار بعض التقديرات باستخدام تصدير الأحداث في BigQuery البيانات.
لمحة عن HLL++
يقدّر عدد القيم الفريدة للسمة HLL++ مع استخدام ذاكرة أقل وتحسين الأداء.
تمت إضافة خوارزمية HLL++ عبر خوارزمية HyperLogLog وهي تستند إلى
تطبيق HyperLogLog عمليًا: الهندسة الخوارزمية على مستوى الفن
خوارزمية تقدير عدد القيم الفريدة للسمة. التغييرات في معلمة HLL++ precision
المقايضة بين استخدام الذاكرة ودقة الإحصاءات المحسوبة. تؤدي زيادة
إلى خفض الخطأ، ولكنه يزيد من استهلاك الذاكرة.
تنفيذ عدد فريد في BigQuery
- استخدِم
COUNT(DISTINCT)
لقياس عدد القيم الفريدة للسمة بدقة. يتطلب هذا النهج مساحة تخزين أكبر وسيستغرق تشغيلها وقتًا أطول، خاصةً لمجموعات البيانات الكبيرة. - يقترب
APPROX_COUNT_DISTINCT
من النتائج باستخدام HLL++. ومع ذلك، لا تسمحAPPROX_COUNT_DISTINCT
للمستخدمين بتهيئة التقريب ودقتها. - لاستخدام قيم
precision
مخصّصة، استخدِم دوال HyperLogLog++. عرض HLL++ Sketches لقيمprecision
المسموح بها ومستوى الثقة الفواصل الزمنية للدرجات النموذجية. sparse precision
هي مَعلمة أخرى لـ +HLL. في BigQuery، لا يمكن تحديد قيمةsparse precision
للمستخدم، ويتم تثبيتها فيprecision + 5
.
تنفيذ HLL++ في مواقع "إحصاءات Google 4"
تستخدِم "إحصاءات Google 4" الإعدادات التالية لقياس عدد القيم الفريدة للسمة المقاييس ذات الصلة.
المقياس | precision |
sparse precision |
---|---|---|
الجلسات | 12 | 17 |
المستخدِمون النشطون | 14 | 25 |
إجمالي المستخدمين | 14 | 25 |
استخدام دوال BigQuery HLL++ مع بيانات الأحداث في "إحصاءات Google"
إذا كانت بيانات أحداث موقعك على "إحصاءات Google 4" متوفّرة في BigQuery، عليك إجراء ما يلي: محاولة مطابقة المقاييس من واجهة المستخدم مع بيانات BigQuery. في ما يلي الأمثلة نفترض:
- تم ضبط معرّف إعداد التقارير على
By device only
لخدمة "إحصاءات Google 4" الموقع. - مصادر التناقض المحتملة الأخرى، على سبيل المثال: المنطقة الزمنية لإعداد التقارير الذي تم تناوله.
إجمالي عدد المستخدمِين
العدّ الدقيق باستخدام COUNT(DISTINCT)
:
SELECT
COUNT(DISTINCT user_pseudo_id) AS exact_total_user_count,
FROM `bigquery-public-data.ga4_obfuscated_sample_ecommerce.events_*`
العدد التقريبي باستخدام APPROX_COUNT_DISTINCT
:
SELECT
APPROX_COUNT_DISTINCT(user_pseudo_id) AS approx_total_user_count,
FROM `bigquery-public-data.ga4_obfuscated_sample_ecommerce.events_*`
يمكنك نسخ APPROX_COUNT_DISTINCT
باستخدام دوال HLL++ في BigQuery. هذا النمط
سيؤدي إلى عرض النتائج المتطابقة أو المتشابهة جدًا مثل 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_*`
وأخيرًا، لتكرار البيانات في واجهة مستخدم "إحصاءات Google"، استخدِم 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_*`
المستخدمون النشطون
لاحتساب عدد المستخدمين النشطين من جدول تصدير أحداث BigQuery، عليك أولاً عليك فلترة الأحداث للمستخدمين النشطين فقط. تنفيذ العلامة Active لا تندرج هذه المقالة ضمن نطاق الفلتر "المستخدِم".
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
الجلسات
تحدِّد مَعلمة الحدث ga_session_id
الجلسات الفريدة الفردية
لكل مستخدم. ستكون الجمع بين user_pseudo_id
وga_session_id
كما يلي:
فريدة على مستوى مجموعة بياناتك للجلسات الفريدة. هذه هي الطريقة القياسية
احتساب الجلسات لمواقع "إحصاءات Google 4". بالنسبة إلى الجلسات، precision
هو 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_*`
يمكنك استخدام الاستعلامات في مقال المدونة هذا مع الاستعلامات الأساسية أمثلة على طلبات البحث المتقدّمة للحصول على إحصاءات إضافية من حدث BigQuery تصدير البيانات لمواقعك على "إحصاءات Google 4". إذا كان موقعك ينشئ قدرًا كبيرًا من بيانات الأحداث، يمكنك أيضًا تنفيذ دوال HLL++ تقدير عدد القيم الفريدة للسمة للمقاييس الأخرى التي تستخدمها عادةً في BigQuery طلبات البحث. معرفة المزيد من المعلومات عن HLL++ وسبب تكلفة عملية حساب عدد القيم الفريدة للسمة بالنسبة إلى مجموعات البيانات الكبيرة، يُرجى قراءة مشاركة المدونة التفصيلية على مدونة Cloud: استخدام HLL++ لتسريع أعداد البيانات المميّزة في مجموعات البيانات الضخمة