1- مقدمة
بصفتنا مطوّرين ومهندسي بيانات، غالبًا ما نرث مجموعات كبيرة من البيانات تبدو أشبه بمستنقعات البيانات. ونواجه نقاط الاحتكاك نفسها بشكل متكرّر: "ما هو التعريف الفعلي لعمود "amt"؟"، "مَن المسؤول إذا تعرّضت مجموعة البيانات هذه للتلف؟"، أو "هل يُسمح لنا باستخدام هذا الجدول في محرّك الاقتراحات المخصّصة؟"
تقليديًا، كانت كتالوجات البيانات عبارة عن قوائم سلبية مليئة بعلامات نصية مجانية سرعان ما تصبح غير متسقة وقديمة. ولا تفرض هذه الكتالوجات بنية، ما يجعل الإدارة الآلية شبه مستحيلة.
لجعل هذا الأمر عمليًا، سنعمل على سيناريو في هذا المختبر: وضع إدارة قوية لبيانات مبيعات التجزئة الأولية حتى تتمكّن الإدارة المالية من الوثوق بها لإعداد التقارير الرسمية. ستنقل هذه البيانات من حالة "مستنقع" غامضة إلى منتج مُدار.
يغيّر "الكتالوج الشامل" في Knowledge Catalog ذلك من خلال توفير إطار عمل نشط لإدارة البيانات الوصفية المنظَّمة. ويتيح لك إرفاق بيانات وصفية منظَّمة ومستندة إلى المخطط (الجوانب) وتعريفات تجارية مقبولة (المسارد) مباشرةً بمواد عرض البيانات (الإدخالات).
قبل أن تتمكّن من كتابة نصوص Python البرمجية أو وحدات Terraform لتنفيذ هذه العملية آليًا على نطاق واسع، عليك فهم نموذج الكائن الأساسي.
في هذا الدرس التطبيقي، سننفّذ خطوات الإدارة يدويًا في Google Cloud Console. سنربط بشكل صريح بين الإدخالات وأنواع الجوانب والجوانب والمسارد لنمنحك نموذجًا ذهنيًا قويًا حول كيفية جعل بياناتك قابلة للاكتشاف والفهم وموثوقة.
المتطلبات الأساسية
- مشروع على Google Cloud لديه إذن وصول المالك أو إذن وصول بصفة محرّر
- الإلمام بـ Google Cloud Console
- مهارات أساسية في واجهة سطر الأوامر gcloud وbq في Cloud Shell
أهداف البرنامج
- التمييز الحاسم بين إدخال Knowledge Catalog ونوع الجانب والجانب
- كيفية إنشاء مسرد تجاري لحلّ الغموض في المصطلحات
- كيفية تصميم نوع جانب لفرض مخطّط صارم للبيانات الوصفية الفنية (تجاوز "العلامات")
- كيفية ربط مصطلح مسرد تجاري بعمود BigQuery معيّن
- كيفية إرفاق جانب منظَّم بمادة عرض بيانات والتحقّق من الإدخالات
- كيفية تنفيذ طلبات بحث دقيقة مقابل هذه البيانات الوصفية المنظَّمة الجديدة
المتطلبات
- حساب على Google Cloud ومشروع على Google Cloud
- متصفّح ويب مثل Chrome
المفاهيم الأساسية
- الإدخال: التمثيل الأساسي والمجرّد لمادة عرض بيانات في الكتالوج يمكنك اعتبار هذا "المؤشر" أو "الاسم". عند إنشاء جدول BigQuery، ينشئ Knowledge Catalog تلقائيًا إدخالاً له. لا ندير الجدول مباشرةً، بل ندير إدخاله.
- المسرد التجاري: قاموس مركزي ومُعدَّل يتضمّن المصطلحات التجارية لمؤسستك وهو المصدر الوحيد للحقيقة. ويمنع حدوث مشكلة "تحديد فريق المبيعات لإجمالي قيمة البضائع بشكل مختلف عن الإدارة المالية".
- نوع الجانب: المخطط أو النموذج لفئة معيّنة من البيانات الوصفية يحدّد نوع الجانب الحقول وأنواع البيانات (سلسلة، تعداد، تاريخ ووقت، إلخ) والقيود (مطلوبة/اختيارية). وهو العقد الذي يضمن اتساق البيانات الوصفية.
- الجانب: جزء معيّن من البيانات الوصفية المرفقة بإدخال يتّبع البنية المحدّدة حسب نوع الجانب ويحتوي على البيانات الفعلية التي تفي بمخطط نوع الجانب.
2. الإعداد والمتطلبات
بدء Cloud Shell
على الرغم من إمكانية تشغيل Google Cloud عن بُعد من الكمبيوتر المحمول، ستستخدم في هذا الدرس التطبيقي Google Cloud Shell، وهي بيئة سطر أوامر تعمل في السحابة الإلكترونية.
من Google Cloud Console، انقر على رمز Cloud Shell في شريط الأدوات العلوي الأيسر:

يستغرق توفير البيئة والاتصال بها بضع لحظات فقط. عند الانتهاء، من المفترض أن يظهر لك ما يلي:

يتم تحميل هذا الجهاز الافتراضي مزوّدة بكل أدوات التطوير التي ستحتاج إليها. وتوفّر دليلًا رئيسيًا دائمًا بسعة 5 غيغابايت، وتعمل على Google Cloud، ما يحسّن بشكل كبير أداء الشبكة والمصادقة. يمكنك إكمال جميع أعمالك في هذا الدرس التطبيقي ضمن متصفّح. ولست بحاجة إلى تثبيت أي شيء.
تفعيل واجهات برمجة التطبيقات المطلوبة وضبط البيئة
نفِّذ الأوامر التالية لضبط رقم تعريف مشروعك وتحديد المنطقة وتفعيل واجهات برمجة التطبيقات الضرورية للخدمة.
export PROJECT_ID=$(gcloud config get-value project)
gcloud config set project $PROJECT_ID
export LOCATION="us-central1"
gcloud services enable dataplex.googleapis.com \
bigquery.googleapis.com \
datacatalog.googleapis.com
إنشاء مجموعة بيانات BigQuery وإعداد نموذج البيانات
نحتاج إلى مادة عرض بيانات ملموسة لإدارتها. سننشئ مجموعة بيانات BigQuery ونحمّل نموذجًا صغيرًا لملف CSV يمثّل المعاملات. سيرصد Knowledge Catalog هذا الجدول تلقائيًا وينشئ إدخالاً له.
# Create the BigQuery Dataset in the us-central1 region
bq --location=$LOCATION mk --dataset \
--description "Retail data for governance codelab" \
$PROJECT_ID:retail_data
# Create a temporary CSV file with the sample data
echo "transaction_id,user_email,gmv,transaction_date
1001,test@example.com,150.50,2025-08-28
1002,user@example.com,75.00,2025-08-28" > /tmp/transactions.csv
# Load the data from the temporary CSV file into BigQuery
bq load \
--source_format=CSV \
--autodetect \
retail_data.transactions \
/tmp/transactions.csv
# (Optional) Clean up the temporary file
rm /tmp/transactions.csv
للتحقّق من الإعداد، نفِّذ طلب بحث سريعًا:
bq query --nouse_legacy_sql "SELECT * FROM retail_data.transactions"
3. وضع لغة مشتركة باستخدام مسرد تجاري
تبدأ الإدارة الفعّالة بتعريفات واضحة. إذا رأى أحد المطوّرين عمودًا باسم gmv، يجب ألا يضطر إلى تخمين ما إذا كان يتضمّن الضرائب أو المرتجعات. يحلّ المسرد التجاري هذه المشكلة من خلال فصل التعريف التجاري عن التنفيذ الفني.
- في Google Cloud Console، انتقِل إلى كتالوج Knowledge Catalog الشامل.
- في قائمة التنقّل اليمنى، انقر على المسارد (ضمن إدارة البيانات الوصفية).

- انقر على إنشاء مسرد تجاري.
- أدخِل التفاصيل التالية:
- الاسم:
Retail Business Glossary - الموقع الجغرافي:
us-central1(أو الموقع الجغرافي الذي حدّدته في الإعداد)
- الاسم:
- انقر على إنشاء.

- انقر على المسرد التجاري للبيع بالتجزئة الذي تم إنشاؤه حديثًا للدخول إليه.

- انقر على إنشاء فئة وسمِّها
Sales Metrics، ثم انقر على إنشاء. تساعد الفئات في تجميع المصطلحات ذات الصلة. - اختَر الفئة
Sales Metricsوانقر على إضافة مصطلح، ثم سمِّهاGross Merchandise Value، ثم انقر على إنشاء - انقر على الزرّ "إضافة" في "نظرة عامة"، ثم املأ التفاصيل التالية:
- نظرة عامة:
The total value of merchandise sold over a given period of time before the deduction of any fees or expenses. This is a key indicator of e-commerce business growth.
- نظرة عامة:
- انقر على حفظ.

لقد وضعت الآن تعريفًا واضحًا يمكن ربطه بمواد العرض الفنية في مؤسستك.
4. تحديد بيانات وصفية فنية منظَّمة باستخدام نوع جانب
العلامات البسيطة "مفتاح:قيمة" غير كافية للالتزام بالدقة الهندسية. إذا كنت بحاجة إلى تتبُّع "مالكي البيانات"، لا تريد أن يتم وضع علامة owner:bob على جدول وعلامة contact:alice@example.com على جدول آخر. تحتاج إلى مخطّط لفرض أن يكون المالك مطلوبًا ويجب أن يكون بتنسيق بريد إلكتروني صالح.
سنستخدم نوع جانب لتحديد هذا العقد.
- في لوحة التنقّل اليمنى في Knowledge Catalog، ضمن الكتالوج، انقر على أنواع الجوانب ونماذج العلامات.
- انقر على علامة التبويب مخصّص ثم على إنشاء نوع جانب.

- أدخِل التفاصيل التالية:
- الاسم المعروض:
Data Asset Governance - الموقع الجغرافي:
us-central1
- الاسم المعروض:
- في قسم النموذج ، سنحدّد مخطّط
Aspect. انقر على إضافة حقل لإنشاء الحقول الثلاثة التالية:- الحقل 1:
- الاسم المعروض:
Data Steward - النوع:
Text - نوع النص:
Plain text - التكرار: مطلوب (ضَع علامة في المربّع)
- الاسم المعروض:
- الحقل 2 (انقر على إضافة حقل مرة أخرى):
- الاسم المعروض:
Data Sensitivity - النوع:
Enum - القيم: أضِف
PublicوInternalوConfidential - التكرار: اختياري
- الاسم المعروض:
- الحقل 3 (انقر على إضافة حقل مرة أخرى):
- الاسم المعروض:
Last Review Date - النوع:
Date and time - التكرار: اختياري
- الاسم المعروض:
- الحقل 1:
- انقر على حفظ.

لقد أنشأت للتو عقدًا قابلاً لإعادة الاستخدام للبيانات الوصفية. لم يتم استخدامه بعد، ولكن البنية موجودة.
5. ربط الإدارة بمادة العرض
الآن، دعنا نجمّع كل ما تعلّمناه. لدينا جدول BigQuery (retail_data.transactions) وتعريف تجاري (Gross Merchandise Value) ومخطّط إدارة (Data Asset Governance).
سنعمل على إثراء إدخال Knowledge Catalog لجدول BigQuery.
إثراء المخطط بالسياق التجاري (على مستوى العمود)
لنخبر المستخدمين بما يعنيه عمود gmv فعليًا من خلال ربطه بالمسرد.
- في لوحة التنقّل اليمنى في Knowledge Catalog، انقر على بحث.
- في أعلى يسار الصفحة، انقر على علامة التبويب كتالوج Knowledge Catalog الشامل إذا لم يتم تفعيلها.

- ابحث عن
retail_data.transactions. انقر على نتيجة جدول BigQuery.

- انقر على علامة التبويب المخطط ضِمن تفاصيل الإدخال.
- ضَع علامة في مربّع الاختيار لصف عمود
gmvوانقر على إضافة مصطلح تجاري. - اختَر المصطلح
Gross Merchandise Value.

لم يعُد العمود gmv مجرد "FLOAT"، بل أصبح مرتبطًا بالتعريف المؤسسي لـ Gross Merchandise Value.
إثراء الإدخال بالبيانات الوصفية الفنية المنظَّمة (على مستوى الجدول)
بعد ذلك، سنرفق الجانب Data Asset Governance بالجدول لتحديد الملكية والحساسية.
- ابقَ في صفحة إدخال
retail_data.transactions. - انقر على علامة التبويب إضافة علامة أو جانب ، ثم اختَر نوع
Data Asset Governanceمن القائمة المنسدلة.

- سيعرض النموذج الآن الحقول المحدّدة في مخطّط نوع الجانب. املأها على النحو التالي:
- Data Steward:
finance-team@example.com - Data Sensitivity: اختَر
Internal. - Last Review Date: اختَر تاريخ اليوم.
- Data Steward:
- انقر على حفظ.

لقد أرفقت بنجاح جانبًا منظَّمًا بالإدخال. على عكس العلامة البسيطة، يتم التحقّق من صحة هذه البيانات استنادًا إلى المخطط الذي أنشأته.
6. الاكتشاف والتحقّق الموحّدَان
لم نقم بهذا العمل لمجرد ملء النماذج. بل قمنا بذلك لجعل البيانات قابلة للاكتشاف وموثوقة. لنطّلِع على كيفية تغيير هذه البيانات الوصفية لتجربة المطوّر في ما يتعلق بالبحث والاكتشاف.
ارجِع إلى صفحة البحث الرئيسية في "الكتالوج الشامل" في Knowledge Catalog.
تخيّل أنّك مهندس منصة تفرض الإدارة. عليك العثور على جميع مواد العرض التي تم وضع علامة "Internal" عليها والتي تخضع لنوع الجانب المحدّد. عليك استخدام محددات دقيقة استنادًا إلى المخطط.
يمكنك التحقّق من ذلك بطريقتَين: استخدام صيغة طلب بحث دقيقة (ضرورية للأتمتة) أو استخدام فلاتر تفاعلية في واجهة المستخدم.
الطريقة 1: التحقّق من خلال طلب بحث منظَّم
- في شريط البحث (في وضع البحث عن الكلمات الرئيسية)، أدخِل طلب البحث المنظَّم التالي.
aspect:data-asset-governance.data-sensitivity=Internal
- من المفترض أن يظهر لك جدول
retail_data.transactions.

الطريقة 2: التحقّق من خلال عناصر فلتر واجهة المستخدم
- محو محتوى شريط البحث لإعادة ضبط العرض
- انظر إلى لوحة الفلترة حسب الخصائص على الجانب الأيمن من الشاشة.
- مرِّر للأسفل ووسِّع قسم Data Asset Governance (يمثّل هذا نوع الجانب الذي أنشأته)
- ضمن Data Sensitivity ، ضَع علامة في المربّع
Internal. - سيتم تعديل نتائج البحث لعرض جدول
retail_data.transactions.

سواء كنت تستخدم طلب البحث المكتوب أو فلاتر واجهة المستخدم، فإنّ الآلية الأساسية هي نفسها.
يوضّح هذا الفرق الأساسي بين Knowledge Catalog وwiki بسيط: بياناتك الوصفية هي بنية قابلة للاستعلام. يمكنك الآن إنشاء عمليات تدقيق تلقائية (مثل "العثور على جميع الجداول التي يكون فيها last_review_date > قبل عام واحد") استنادًا إلى هذه البنية المتوقّعة.
7. تنظيف البيئة
لتجنُّب تكبّد رسوم مستمرة، احذف الموارد التي تم إنشاؤها في هذا الدرس التطبيقي.
حذف مجموعة بيانات BigQuery
هذا الأمر غير قابل للتراجع ويستخدم العلامة -f (فرض) لإزالة مجموعة البيانات وجميع جداولها بدون تأكيد.
# Re-run these exports if your Cloud Shell session timed out
export PROJECT_ID=$(gcloud config get-value project)
# Manually type this command to confirm you are deleting the correct dataset
bq rm -r -f --dataset $PROJECT_ID:retail_data
حذف عناصر Knowledge Catalog
- انتقِل إلى واجهة مستخدم "الكتالوج الشامل" في Knowledge Catalog > إدارة البيانات الوصفية > الكتالوج.
- في أنواع الجوانب ونماذج العلامات ، اختَر نوع الجانب data_asset_governance واحذفه.
- انتقِل إلى إدارة البيانات الوصفية > المسارد ، واختَر
Retail Business Glossaryواحذفه. احرص على حذف المصطلحGross Merchandise Valueأولاً وحذف المسرد لاحقًا.
8. تهانينا!
لقد تجاوزت عملية وضع العلامات البسيطة على البيانات وأنشأت نموذج إدارة أساسيًا ومنظَّمًا في Knowledge Catalog.
لقد تعلّمت ما يلي:
- تحلّ المسارد الغموض التجاري.
- توفّر أنواع الجوانب عقد المخطط للبيانات الوصفية الفنية.
- تطبّق الجوانب هذا المخطط على إدخالات البيانات الفعلية.
- يستخدم "بحث Knowledge Catalog" هذه البيانات الوصفية المنظَّمة للاكتشاف الدقيق.
الخطوات اللاحقة
- الإدارة كرمز: استخدِم موفّر Google Cloud Terraform لتحديد أنواع الجوانب والمسارد في نظام التحكّم في الإصدارات، ما يضمن مخطّطات متسقة في بيئات التطوير والاختبار والإنتاج.
- وضع العلامات تلقائيًا: اكتب دالة Cloud Function أو خطوة Cloud Build يتم تشغيلها عند إنشاء مجموعة بيانات جديدة، ما يؤدي إلى إرفاق الجانب "Data Asset Governance" تلقائيًا بالقيم التلقائية (مثل
sensitivity=Internal, steward=TBD)، مع وضع علامة عليه للمراجعة.