كيفية استخدام مجموعة بيانات CrUX BigQuery

تتوفّر البيانات الأوّلية لتقرير تجربة المستخدِم في Chrome ‏ (CrUX) على BigQuery، وهي قاعدة بيانات على Google Cloud. يتطلب استخدام BigQuery مشروعًا على Google Cloud Platform ومعرفة أساسية بلغة SQL.

في هذا الدليل، تعرَّف على كيفية استخدام BigQuery لكتابة طلبات بحث في مجموعة بيانات CrUX لاستخراج نتائج مفيدة عن حالة تجارب المستخدِمين على الويب:

  • فهم كيفية تنظيم البيانات
  • كتابة طلب بحث أساسي لتقييم أداء مصدر
  • كتابة طلب بحث متقدّم لتتبُّع الأداء بمرور الوقت

تنظيم البيانات

ابدأ بالاطّلاع على طلب بحث أساسي:

SELECT COUNT(DISTINCT origin) FROM `chrome-ux-report.all.202206`

لتشغيل الاستعلام، أدخله في محرر الاستعلام واضغط على الزر "Run query" (تشغيل الاستعلام):

أدخِل طلب بحث بسيطًا في المحرّر واضغط على "تشغيل".

هناك جزءان لهذا الاستعلام:

  • SELECT COUNT(DISTINCT origin) تعني طلب عدد مصادر البيانات في الجدول. بوجهٍ عام، يكون عنوانا URL جزءًا من المصدر نفسه إذا كانا يتضمّنان المخطّط والمضيف والمنفذ نفسهما.

  • يحدِّد FROM chrome-ux-report.all.202206 عنوان الجدول المصدر الذي يتألّف من ثلاثة أجزاء:

    • اسم مشروع Cloud chrome-ux-report الذي يتم تنظيم جميع بيانات CrUX ضمنه
    • مجموعة البيانات all، التي تمثل البيانات في جميع البلدان
    • الجدول 202206، السنة والشهر للبيانات بالتنسيق YYYYMM

تتوفّر أيضًا مجموعات بيانات لكل بلد. على سبيل المثال، لا يمثّل chrome-ux-report.country_ca.202206 سوى بيانات تجربة المستخدِم التي نشأت في كندا.

ضمن كل مجموعة بيانات، تتوفّر جداول لكل شهر منذ تشرين الأول (أكتوبر) 2017. يتم نشر الجداول الجديدة للشهر التقويمي السابق بانتظام.

يحتوي هيكل جداول البيانات (المعروف أيضًا باسم المخطّط) على ما يلي:

  • المصدر، مثل origin = 'https://www.example.com'، الذي يمثّل التوزيع المجمَّع لتجربة المستخدم لكل الصفحات على هذا الموقع الإلكتروني
  • سرعة الاتصال في وقت تحميل الصفحة، على سبيل المثال، effective_connection_type.name = '4G'
  • نوع الجهاز، على سبيل المثال form_factor.name = 'desktop'
  • مقاييس تجربة المستخدم ذاتها
    • first_paint (FP)
    • first_contentful_paint (FCP)
    • largest_contentful_paint (LCP)
    • dom_content_loaded (DCL)
    • onload (OL)
    • layout_instability.cumulative_layout_shift (CLS)
    • interaction_to_next_paint (INP)

يتم تنظيم بيانات كل مقياس على شكل صفيف من العناصر. في أسلوب JSON، سيظهر الرمز first_contentful_paint.histogram.bin على النحو التالي:

[
    {"start": 0, "end": 100, "density": 0.1234},
    {"start": 100, "end": 200, "density": 0.0123},
    ...
]

يحتوي كلّ فاصل على وقتَي بدء وانتهاء بالمللي ثانية وكثافة تمثّل النسبة المئوية لتجارب المستخدِمين خلال هذا النطاق الزمني. بعبارة أخرى، فإنّ نسبة% 12.34 من تجارب FCP لهذا المصدر والسرعة والجهاز الافتراضيين تقل عن 100 ملي ثانية. مجموع كل كثافات الحاويات هو %100.

تصفّح بنية الجداول في BigQuery

تقييم الأداء

يمكننا استخدام معرفتنا بمخطط الجدول لكتابة استعلام يستخرج بيانات الأداء هذه.

SELECT
  fcp
FROM
  `chrome-ux-report.all.202206`,
  UNNEST(first_contentful_paint.histogram.bin) AS fcp
WHERE
  origin = 'https://web.dev' AND
  effective_connection_type.name = '4G' AND
  form_factor.name = 'phone' AND
  fcp.start = 0

طلب البحث عن CrUX FCP على BigQuery

النتيجة هي 0.01115، ما يعني أنّ نسبة% 1.115 من تجارب المستخدمين على هذا المصدر تتراوح بين 0 و100 ملي ثانية على شبكة الجيل الرابع وعلى الهاتف. إذا أردنا تعميم طلب البحث على أي اتصال وأي نوع جهاز، يمكننا حذفه من عبارة WHERE واستخدام دالة التجميع SUM لجمع كل كثافات السلة الخاصة بها:

SELECT
  SUM(fcp.density)
FROM
  `chrome-ux-report.all.202206`,
  UNNEST(first_contentful_paint.histogram.bin) AS fcp
WHERE
  origin = 'https://web.dev' AND
  fcp.start = 0

تجميع بيانات "الزيارات الأولى الناجحة" في CrUX على BigQuery

والنتيجة هي 0.05355، أو% 5.355 على جميع الأجهزة وأنواع الاتصال. يمكننا تعديل الطلب قليلاً وإضافة كثافات جميع الحِزم التي تقع ضمن نطاق "الوقت القصير" لوقت عرض اللقطة الذي يتراوح بين 0 و1000 ملي ثانية:

SELECT
  SUM(fcp.density) AS fast_fcp
FROM
  `chrome-ux-report.all.202206`,
  UNNEST(first_contentful_paint.histogram.bin) AS fcp
WHERE
  origin = 'https://web.dev' AND
  fcp.start < 1000

طلب البحث عن &quot;الاستجابة السريعة للإعلانات&quot; على BigQuery

يمنحنا هذا 0.6977. بعبارة أخرى، تُعتبر نسبة% 69.77 من تجارب المستخدمين في FCP على web.dev "سريعة" وفقًا لتعريف نطاق FCP.

تتبع الأداء

بعد أن استخرجنا بيانات الأداء عن مصدر معيّن، يمكننا مقارنتها بالبيانات السابقة المتوفّرة في الجداول القديمة. لإجراء ذلك، يمكننا إعادة كتابة عنوان الجدول لشهر سابق، أو يمكننا استخدام بنية أحرف البدل للاستعلام عن جميع الأشهر:

SELECT
  _TABLE_SUFFIX AS yyyymm,
  SUM(fcp.density) AS fast_fcp
FROM
  `chrome-ux-report.all.*`,
  UNNEST(first_contentful_paint.histogram.bin) AS fcp
WHERE
  origin = 'https://web.dev' AND
  fcp.start < 1000
GROUP BY
  yyyymm
ORDER BY
  yyyymm DESC

الاستعلام عن أوقات CrUX FCP على BigQuery

نرى هنا أنّ النسبة المئوية لتجارب "التحميل إلى ذاكرة التخزين المؤقت للفيديو" السريعة تختلف ببضعة نقاط مئوية كل شهر.

yyyymm fast_fcp
202206 69.77%
202205 70.71%
202204 69.04%
202203 69.82%
202202 67.75%
202201 58.96%
202112 41.69%
... ...

باستخدام هذه التقنيات، يمكنك البحث عن أداء مصدر معيّن واحتساب النسبة المئوية للتجارب السريعة وتتبُّعها بمرور الوقت. كخطوة تالية، حاوِل البحث عن مصدرَين أو أكثر ومقارنة أدائهما.

الأسئلة الشائعة

في ما يلي بعض الأسئلة الشائعة حول مجموعة بيانات CrUX في BigQuery:

متى يمكنني استخدام BigQuery بدلاً من أدوات أخرى؟

لا تحتاج إلى BigQuery إلا عندما يتعذّر عليك الحصول على المعلومات نفسها من أدوات أخرى، مثل لوحة بيانات CrUX و"إحصاءات سرعة الصفحة". على سبيل المثال، يتيح لك BigQuery تقسيم البيانات بطرق مفيدة، بل يمكنك أيضًا دمجها مع مجموعات بيانات عامة أخرى، مثل HTTP Archive لإجراء بعض عمليات التنقيب في البيانات المتقدّمة.

هل هناك أيّ قيود على استخدام BigQuery؟

نعم، يتمثل أهم قيد في أنّه لا يمكن للمستخدمين تلقائيًا طلب بيانات بسعة 1 تيرابايت في الشهر فقط. وبعد ذلك، سيتم تطبيق السعر العادي الذي يبلغ 5 دولار أمريكي لكل تيرابايت.

أين يمكنني الاطّلاع على مزيد من المعلومات عن BigQuery؟

اطّلِع على مستندات BigQuery للحصول على مزيد من المعلومات.