تقدير العدد الفريد في "إحصاءات Google"

"مينهاز كازي"، مسؤول علاقات المطوّرين، "إحصاءات 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++ لتسريع أعداد البيانات المميّزة في مجموعات البيانات الضخمة