كيفية استخدام مجموعة بيانات 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" الزر:

أدخل استعلامًا بسيطًا في المحرر واضغط على "Run" (تشغيل).

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

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

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

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

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

داخل كل مجموعة بيانات توجد جداول لكل شهر منذ 201710. يتم نشر جداول جديدة للشهر التقويمي السابق بانتظام.

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

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

ويتم تنظيم البيانات لكل مقياس في صورة مصفوفة من العناصر. في تدوين 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 FCP على BigQuery

والنتيجة هي 0.05355، أو نسبة 5.355% على جميع الأجهزة وأنواع الاتصال. يمكننا تعديل الاستعلام بشكل طفيف وإضافة كثافات جميع السلال الموجودة في العمود "سريع" نطاق سرعة عرض المحتوى على الصفحة بين 0 و1,000 ملي ثانية:

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

الاستعلام عن سرعة عرض المحتوى على الصفحة (FCP) على 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

نلاحظ هنا أنّ النسبة المئوية لتجارب "سرعة عرض المحتوى على الصفحة" (FCP) تختلف بضع نقاط مئوية كل شهر.

س س س س ش ش 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 وإحصاءات PageSpeed. على سبيل المثال، تتيح لك BigQuery تقسيم البيانات بطرق مفيدة ودمجها مع مجموعات بيانات عامة أخرى مثل أرشيف HTTP لإجراء بعض عمليات التنقيب عن البيانات المتقدمة.

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

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

أين يمكنني معرفة المزيد من المعلومات عن BigQuery؟

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