كيفية استخدام مجموعة بيانات 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_uploaded (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% على جميع الأجهزة وأنواع الاتصال. يمكننا تعديل طلب البحث قليلاً وإضافة كثافات لجميع السلال التي تكون في نطاق "سرعة عرض أكبر محتوى مرئي" (FCP) يتراوح بين 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

الاستعلام عن سرعة عرض أكبر محتوى مرئي على BigQuery

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

تتبّع الأداء

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

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

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

س س س س 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 للحصول على مزيد من المعلومات.