إعداد البيانات باستخدام موظّفي الذكاء الاصطناعي في ورشة عمل BigQuery للترميز

1. مقدمة

تخيَّل أنّه بإمكانك إعداد بياناتك للتحليل بشكل أسرع وأكثر فعالية بدون الحاجة إلى أن تكون خبيرًا في الترميز. مع أداة إعداد بيانات BigQuery، يصبح ذلك ممكنًا. تسهّل هذه الميزة الفعّالة عملية نقل البيانات وتحويلها وتنظيفها، ما يتيح لجميع خبراء البيانات في مؤسستك إعداد البيانات.

هل أنت مستعد للكشف عن الأسرار المخفية في بيانات منتجاتك؟

المتطلبات الأساسية

  • فهم أساسي لـ Google Cloud وConsole
  • فهم أساسي للغة SQL

ما ستتعلمه

  • كيف يمكن أن تساعد عملية إعداد البيانات في BigQuery في تنظيف بياناتك الأولية وتحويلها إلى ذكاء أعمال قابل للتنفيذ، وذلك باستخدام مثال واقعي من مجال الأزياء والجمال
  • كيفية تشغيل عملية إعداد البيانات المجدوَلة للبيانات التي تم إصلاحها

المتطلبات

  • حساب على Google Cloud ومشروع على Google Cloud
  • متصفّح ويب، مثل Chrome

2. الإعداد الأساسي والمتطلبات

إعداد البيئة بالسرعة التي تناسبك

  1. سجِّل الدخول إلى Google Cloud Console وأنشِئ مشروعًا جديدًا أو أعِد استخدام مشروع حالي. إذا لم يكن لديك حساب على Gmail أو Google Workspace، عليك إنشاء حساب.

fbef9caa1602edd0.pnga99b7ace416376c4.png5e3ff691252acf41.png

  • اسم المشروع هو الاسم المعروض للمشاركين في هذا المشروع. وهي سلسلة أحرف لا تستخدمها Google APIs. ويمكنك تعديلها في أي وقت.
  • رقم تعريف المشروع هو معرّف فريد في جميع مشاريع Google Cloud ولا يمكن تغييره (لا يمكن تغييره بعد ضبطه). تنشئ Cloud Console سلسلة فريدة تلقائيًا، ولا يهمّك عادةً ما هي. في معظم دروس البرمجة، عليك الرجوع إلى رقم تعريف مشروعك (يُشار إليه عادةً باسم PROJECT_ID). إذا لم يعجبك رقم التعريف الذي تم إنشاؤه، يمكنك إنشاء رقم آخر عشوائي. يمكنك بدلاً من ذلك تجربة اسم مستخدم من اختيارك ومعرفة ما إذا كان متاحًا. لا يمكن تغيير هذا الخيار بعد هذه الخطوة ويظل ساريًا طوال مدة المشروع.
  • للعلم، هناك قيمة ثالثة، وهي رقم المشروع، وتستخدمها بعض واجهات برمجة التطبيقات. يمكنك الاطّلاع على مزيد من المعلومات عن كل هذه القيم الثلاث في المستندات.
  1. بعد ذلك، عليك تفعيل الفوترة في Cloud Console لاستخدام موارد/واجهات برمجة تطبيقات Cloud. لن تكلفك تجربة هذا الدرس البرمجي الكثير، إن وُجدت أي تكلفة. لإيقاف الموارد وتجنُّب تحمّل تكاليف فوترة تتجاوز هذا البرنامج التعليمي، يمكنك حذف الموارد التي أنشأتها أو حذف المشروع. يمكن لمستخدمي Google Cloud الجدد الاستفادة من برنامج الفترة التجريبية المجانية بقيمة 300 دولار أمريكي.

3- قبل البدء

تفعيل واجهة برمجة التطبيقات

لاستخدام Gemini في BigQuery، يجب تفعيل واجهة برمجة التطبيقات "Gemini في Google Cloud". عادةً ما ينفّذ هذه الخطوة مشرف خدمة أو صاحب مشروع لديه serviceusage.services.enableإذن "إدارة الهوية وإمكانية الوصول" (IAM).

  1. لتفعيل واجهة برمجة التطبيقات Gemini for Google Cloud API، انتقِل إلى صفحة Gemini في Google Cloud في Google Cloud Marketplace. الانتقال إلى "Gemini في Google Cloud"
  2. في أداة اختيار المشاريع، اختَر مشروعًا.
  3. انقر على تفعيل. يتم تعديل الصفحة وعرض الحالة مفعَّل. أصبح Gemini في BigQuery متاحًا الآن في مشروع Google Cloud المحدّد لجميع المستخدمين الذين لديهم أذونات IAM المطلوبة.

إعداد الأدوار والأذونات لتطوير عمليات إعداد البيانات

  1. في "إدارة الهوية وإمكانية الوصول"، اختَر "إدارة الهوية وإمكانية الوصول".

4477412d79f29e0b.png

  1. اختَر المستخدم وانقر على رمز القلم الرصاص "تعديل الأساسي"

5eb558e04ad12362.png

لاستخدام "إعداد بيانات BigQuery"، يجب أن يكون لديك الأدوار والأذونات التالية:

4. العثور على بطاقة بيانات "عرض توضيحي لإعداد بيانات bq" والاشتراك فيها في BigQuery Analytics Hub

سنستخدم مجموعة بيانات bq data preparation demo في هذا البرنامج التعليمي. وهي مجموعة بيانات مرتبطة في BigQuery Analytics Hub سنقرأ منها.

لا تكتب عملية إعداد البيانات أبدًا في المصدر، وسنطلب منك تحديد جدول وجهة للكتابة فيه. لا يحتوي الجدول الذي سنتعامل معه في هذا التمرين إلا على 1,000 صف للحفاظ على الحد الأدنى من التكاليف، ولكن يتم تنفيذ عملية إعداد البيانات على BigQuery وسيتم توسيع نطاقها بالتوازي.

اتّبِع الخطوات التالية للعثور على مجموعة البيانات المرتبطة والاشتراك فيها:

  1. الوصول إلى Analytics Hub: في Google Cloud Console، انتقِل إلى BigQuery.
  2. في قائمة التنقّل في BigQuery، ضِمن "إدارة البيانات"، اختَر "مركز الإحصاءات".

6ddfac4dd863ca7b.png

  1. ابحث عن البطاقة: في واجهة مستخدم "مركز إحصاءات التطبيقات"، انقر على البحث عن البطاقات.
  2. اكتب bq data preparation demo في شريط البحث واضغط على Enter.

7e0cb82b80174cdc.png

  1. الاشتراك في "بطاقة بيانات المتجر": اختَر bq data preparation demo بطاقة البيانات من نتائج البحث.
  2. في صفحة تفاصيل البطاقة، انقر على الزر اشتراك.
  3. راجِع أي مربّعات حوار تأكيد وعدِّل المشروع أو مجموعة البيانات إذا لزم الأمر. يجب أن تكون الإعدادات التلقائية صحيحة.

2ef0ac1e3557f2f9.png

  1. الوصول إلى مجموعة البيانات في BigQuery: بعد الاشتراك بنجاح، سيتم ربط مجموعات البيانات ضِمن البطاقة بمشروعك على BigQuery.

ارجع إلى BigQuery Studio.

5- استكشاف البيانات وبدء عملية إعداد البيانات

  1. تحديد موقع مجموعة البيانات والجدول: في لوحة "المستكشف"، اختَر مشروعك ثم ابحث عن مجموعة البيانات التي تم تضمينها في قائمة bq data preparation demo. اختَر جدول stg_product.
  2. الفتح في "إعداد البيانات": انقر على النقاط الثلاث الرأسية بجانب اسم الجدول واختَر Open in Data Preparation.

سيؤدي ذلك إلى فتح الجدول في واجهة "إعداد البيانات"، لتكون جاهزًا لبدء تحويل بياناتك.

76ace3d4b5cfc2d0.png

كما هو موضّح في معاينة البيانات أدناه، لدينا بعض المشاكل المتعلقة بالبيانات التي سنتعامل معها، وتشمل ما يلي:

  • يحتوي عمود السعر على كلّ من المبلغ والعملة، ما يصعّب عملية التحليل.
  • يجمع عمود المنتج بين اسم المنتج وفئته (مع الفصل بينهما برمز الخط العمودي |).

f4d93aa59a56447a.png

يحلّل Gemini بياناتك على الفور ويقترح عدة عمليات تحويل. في هذا المثال، نرى عددًا من الاقتراحات. في الخطوات التالية، سنطبّق تلك التي نحتاج إليها.

fd4d14e4fa3c31c1.png

6. التعامل مع عمود السعر

لنبدأ بعمود السعر. كما رأينا، يحتوي على العملة والمبلغ. هدفنا هو فصل هذه القيم إلى عمودَين منفصلَين:العملة والمبلغ.

حدّد Gemini عدة اقتراحات لعمود "السعر".

  1. ابحث عن اقتراح يتضمّن عبارة مشابهة لما يلي:

الوصف: "تزيل هذه العبارة "دولار أمريكي " من الحقل المحدّد"

REGEXP_REPLACE(Price,` `r'^USD\s',` `r'')
  1. اختَر "معاينة"

c9327cfbd32247d6.png

  1. انقر على "تطبيق"

بعد ذلك، بالنسبة إلى عمود السعر، لن حوّل نوع البيانات من STRING إلى NUMERIC.

  1. ابحث عن اقتراح يتضمّن عبارة مشابهة لما يلي:

الوصف: "تحويل عمود السعر من نوع السلسلة إلى float64"

SAFE_CAST(Price AS float64)
  1. اختَر "تطبيق".

من المفترض أن تظهر لك الآن ثلاث خطوات تم تطبيقها في قائمة الخطوات.

d3359af47dce0c15.png

7. التعامل مع عمود المنتج

يحتوي عمود المنتج على اسم المنتج وفئته، مع الفصل بينهما بعلامة الشرطة العمودية (|).

مع أنّه يمكننا استخدام اللغة الطبيعية مرة أخرى، لنستكشف ميزة أخرى من ميزات Gemini الفعّالة.

تنظيف اسم المنتج

  1. اختَر جزء الفئة من إدخال المنتج، بما في ذلك الحرف |، ثم احذفه.

5171d598a8cb3a75.png

سيتعرّف Gemini بذكاء على هذا النمط ويقترح عملية تحويل لتطبيقها على العمود بأكمله.

  1. انقر على "تعديل".

b36cac918b4f30e9.png

اقتراح Gemini دقيق: يزيل كل ما يلي الحرف "|"، ما يؤدي إلى عزل اسم المنتج بشكل فعّال.

لكننا لا نريد هذه المرة استبدال بياناتنا الأصلية.

  1. في القائمة المنسدلة لعمود الاستهداف، اختَر "إنشاء عمود جديد".
  2. اضبط الاسم على ProductName.

bda19e0e5e536ccd.png

  1. يُرجى معاينة التغييرات للتأكّد من أنّ كل شيء يبدو على ما يرام.
  2. طبِّق عملية التحويل.

استخراج فئة المنتج

باستخدام اللغة الطبيعية، سنطلب من Gemini استخراج الكلمة التي تلي علامة الأنابيب (|) في عمود "المنتج". سيتم استبدال هذه القيمة المستخرَجة في العمود الحالي المسمّى "المنتج".

  1. انقر على Add Step لإضافة خطوة تحويل جديدة.

77944047e698494c.png

  1. اختَر Transformation من القائمة المنسدلة
  2. في حقل طلب اللغة العادية، أدخِل "استخرِج الكلمة بعد علامة الأنابيب (|) في عمود المنتج"، ثم اضغط على مفتاح الرجوع لإنشاء لغة الاستعلامات البنيوية.

82efc2447a3210bd.png

  1. اترك عمود "الاستهداف" على "المنتج".
  2. انقر على تطبيق.

يجب أن يمنحك التحويل النتائج التالية.

d741c66d9e0e8e00.png

8. الدمج لإثراء البيانات

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

  1. انقر على Add Step.
  2. اختيار Join
  3. انتقِل إلى الجدول stg_extended_product.

dca14451c3fbc7f0.png

اختار "Gemini في BigQuery" تلقائيًا مفتاح الضمّ productid وحدّد الجانبين الأيمن والأيسر لأنّ اسم المفتاح مطابق.

ملاحظة: تأكَّد من أنّ حقل الوصف مكتوب فيه "الانضمام باستخدام productid". إذا كان يتضمّن مفاتيح دمج إضافية، استبدِل حقل الوصف بـ "الدمج حسب productid" وانقر على زر الإنشاء في حقل الوصف لإعادة إنشاء تعبير الدمج مع الشرط التالي L.

productid

= R.

productid. 4d6dbfea28772f34.png

  1. اختياريًا، انقر على "معاينة" لمعاينة النتائج.
  2. انقر على Apply.

تنظيف السمات الموسَّعة

على الرغم من نجاح عملية الربط، تتطلّب بيانات السمات الموسّعة بعض التنظيف. يحتوي العمود LaunchDate على تنسيقات تاريخ غير متسقة، ويحتوي العمود Brand على بعض القيم المفقودة.

سنبدأ بمعالجة العمود LaunchDate.

f9b570d7c2d3a98d.png

قبل إنشاء أي عمليات تحويل، راجِع اقتراحات Gemini.

  1. انقر على اسم عمود LaunchDate. من المفترض أن تظهر لك بعض الاقتراحات المشابهة لتلك الواردة في الصورة أدناه.

62b6e6027a46ba75.png

  1. إذا ظهر لك اقتراح مع عبارة SQL التالية، طبِّق الاقتراح وتخطَّ الخطوات التالية.
COALESCE(SAFE.PARSE_DATE('%Y-%m-%d',
LaunchDate),SAFE.PARSE_DATE('%Y/%m/%d', LaunchDate))
  1. إذا لم تظهر لك توصية تطابق عبارة SQL أعلاه، انقر على Add Step.
  2. انقر على Transformation.
  3. في حقل SQL، أدخِل ما يلي:
COALESCE(SAFE.PARSE_DATE('%Y-%m-%d',
LaunchDate),SAFE.PARSE_DATE('%Y/%m/%d', LaunchDate))
  1. اضبط السمة Target Columns على LaunchDate.
  2. انقر على Apply.

يحتوي العمود LaunchDate الآن على تنسيق تاريخ ثابت.

ccf34aa05754a834.png

9. إضافة جدول وجهة

أصبحت مجموعة البيانات الآن نظيفة وجاهزة للتحميل في جدول سمات في مستودع البيانات.

  1. انقر على ADD STEP.
  2. انقر على Destination.
  3. املأ المَعلمات المطلوبة: مجموعة البيانات: bq_data_preparation_demo الجدول: DimProduct
  4. انقر على Save.

79fdc3666a3a21b9.png

لقد عملنا الآن باستخدام علامتَي التبويب "البيانات" و"المخطط". بالإضافة إلى ذلك، توفّر أداة "إعداد البيانات في BigQuery" طريقة عرض "رسم بياني" تعرض بشكل مرئي تسلسل خطوات التحويل في مسار البيانات.

95e64d8152228f7b.png

10. المكافأة أ: التعامل مع عمود "الشركة المصنّعة" وإنشاء "جدول الأخطاء"

لقد رصدنا أيضًا قيمًا فارغة في العمود Manufacturer. بالنسبة إلى هذه السجلات، نريد تنفيذ عملية التحقّق من جودة البيانات ونقلها إلى جدول الأخطاء لإجراء مراجعة إضافية.

إنشاء جدول أخطاء

  1. انقر على الزر More بجانب عنوان stg_product data preparation.
  2. ضمن قسم Setting، انقروا على Error Table.
  3. ضَع علامة في المربّع Enable error table، واضبط الإعدادات على النحو التالي:
  • مجموعة البيانات: اختَر bq_data_preparation_demo
  • الجدول: أدخِل err_dataprep
  • ضمن Define duration for keeping errors، اختَر 30 days (default)
  1. انقر على Save.

adb5722f05c1b205.png

إعداد التحقّق من صحة البيانات في عمود "الشركة المصنّعة"

  1. اختَر عمود "الشركة المصنّعة".
  2. من المحتمل أنّ Gemini قد رصد عملية تحويل ذات صلة. ابحث عن الاقتراح الذي يحتفظ فقط بالصفوف التي لا يكون فيها حقل "الشركة المصنّعة" فارغًا. سيتضمّن SQL مشابهًا لما يلي:
Manufacturer IS NOT NULL

2.انقر على الزر "تعديل" في هذا الاقتراح لمراجعته.

4749b551a03d8193.png

  1. ضَع علامة في المربّع بجانب الخيار "نقل الصفوف التي تعذّر التحقّق من صحتها إلى جدول الأخطاء" إذا لم يكن محدّدًا.
  2. انقر على Apply.

في أي وقت، يمكنك مراجعة عمليات التحويل التي طبّقتها أو تعديلها أو حذفها من خلال النقر على الزر "الخطوات المطبّقة".

15df6caacbdd6a69.png

تنظيف عمود ProductID_1 المكرّر

يمكن الآن حذف العمود ProductID_1 الذي يكرّر ProductID من الجدول الذي تم دمجه.

  1. انتقِل إلى علامة التبويب Schema
  2. انقر على النقاط الثلاث بجانب عمود ProductID_1.
  3. انقر على Drop.

نحن الآن جاهزون لتشغيل مهمة إعداد البيانات والتحقّق من صحة المسار بأكمله. بعد أن نكون راضين عن النتائج، يمكننا جدولة المهمة لتنفيذها تلقائيًا.

  1. قبل الانتقال بعيدًا عن طريقة عرض إعداد البيانات، احفظ عمليات الإعداد. بجانب العنوان stg_product data preparation، من المفترض أن يظهر الزر Save. انقر على الزرّ للحفظ.

11. تنظيف البيئة

  • حذف stg_product data preparation
  • حذف مجموعة بيانات bq data preparation demo

12. تهانينا

تهانينا على إكمال درس البرمجة.

المواضيع التي تناولناها

  • إعداد عملية إعداد البيانات
  • فتح الجداول والتنقّل في عملية إعداد البيانات
  • تقسيم الأعمدة التي تحتوي على بيانات وصفية رقمية ووحدات
  • توحيد تنسيقات التاريخ
  • تنفيذ عمليات إعداد البيانات