1. نظرة عامة
يوضّح لك هذا الدرس التطبيقي حول الترميز كيفية تحليل مجموعة من بيانات معاملات بطاقات الائتمان التي يتمّ تسجيلها في Bigtable. ستتعرّف على كيفية استخدام نموذج "نقل البيانات من Bigtable إلى BigQuery" لتصدير البيانات في الوقت الفعلي. بعد ذلك، ستتعرّف على أساليب للاستعلام عن سجلّ تغيير البيانات وكيفية إعادة تنسيق البيانات لإنشاء لوحة بيانات باستخدام Looker.
هذا الدرس العملي مخصّص للمستخدمين التقنيين الذين يعرفون Bigtable ويستخدمون أدوات سطر الأوامر وخدمات بث الأحداث.

يوضّح لك هذا الدرس التطبيقي العملي كيفية تنفيذ ما يلي:
- أنشئ جدول Bigtable مع تفعيل ميزة "مصدر بيانات التغيير".
- أنشئ مجموعة بيانات في BigQuery.
- نشر نموذج Dataflow
Bigtable change streams to BigQuery. - إرسال طلب بحث إلى مصدر بيانات الأحداث في BigQuery
- تصوُّر مصدر الأحداث باستخدام Looker
يعرض هذا الرسم التخطيطي بنية النظام الذي ستنشره.

2. إعداد المشروع
- في وحدة تحكّم Google Cloud، في صفحة اختيار المشروع، اختَر مشروع على السحابة الإلكترونية أو أنشِئ مشروعًا.

- تأكَّد من تفعيل الفوترة لمشروعك على Google Cloud.
- انتقِل إلى صفحة تفعيل واجهة برمجة التطبيقات المُعبّأة مسبقًا لتفعيل واجهات برمجة التطبيقات اللازمة لخدمات Dataflow وBigtable وBigQuery وLooker وCloud Storage.
3- إنشاء مجموعة بيانات في BigQuery
ستحلّل البيانات باستخدام BigQuery في وقت لاحق من هذا الدرس العملي. اتّبِع هذه التعليمات لإنشاء مجموعة البيانات الخاصة بإخراج مسار البيانات.
- في وحدة تحكّم Google Cloud، انتقِل إلى صفحة BigQuery.
- في جزء Explorer، ابحث عن اسم مشروعك وانقر على القائمة الكاملة (ثلاث نقاط عمودية بجانب رقم تعريف المشروع).
- انقر على إنشاء مجموعة بيانات.

- في لوحة إنشاء مجموعة بيانات، اتّبِع الخطوات التالية:
- في حقل معرّف مجموعة البيانات، أدخِل
bigtable_bigquery_tutorial. - اترك الإعدادات التلقائية المتبقية كما هي.
- انقر على إنشاء مجموعة بيانات.
4. إنشاء جدول Bigtable مع تفعيل "مصدر بيانات تغيير"
Bigtable هي خدمة قاعدة بيانات NoSQL قابلة للتوسّع أفقيًا وبزمن استجابة منخفض، وأحد حالات الاستخدام الشائعة لها هو عرض البيانات المالية. في هذا القسم، ستنشئ جدولاً يمكنه تخزين معاملات بطاقات الائتمان. يمكن أن تعالج Bigtable عمليات الكتابة بمعدّل أعلى لنقل البيانات للمعاملات في جميع أنحاء العالم، ويمكنها حتى استخدام هذه البيانات في رصد الاحتيال في الوقت الفعلي.
- في Google Cloud Console، انتقِل إلى صفحة "مثيلات Bigtable".
- انقر على رقم تعريف المثيل الذي تستخدمه في هذا البرنامج التعليمي. إذا لم يكن لديك مثيل متاح، أنشئ مثيلاً بالاسم الذي تختاره في منطقة قريبة منك. يمكنك استخدام الإعدادات التلقائية لكل ما عدا ذلك.

- في لوحة التنقّل اليمنى، انقر على الجداول.
- النقر على Create table (إنشاء جدول)

- أدخِل اسمًا للجدول
retail-database. - أضِف مجموعة أعمدة باسم
transactions. - اختَر تفعيل مصدر بيانات تغيير.
- اترك سياسة جمع البيانات غير المرغوب فيها وفترة التخزين بقيمهما التلقائية.
- انقر على إنشاء.

5- تهيئة مسار بيانات لتسجيل مصدر البيانات المتغيّرة
يكون أداء Bigtable في أفضل حالاته عند قراءة البيانات من نقطة واحدة وعمليات البحث في نطاق الصفوف، ولكن يمكن أن تؤدي الإحصاءات على مستوى الجدول إلى إجهاد سعة العرض وموارد وحدة المعالجة المركزية. تُعدّ BigQuery رائعة لإجراء إحصاءات على مستوى الجدول، لذا فإنّ الحلّ الذي ستستخدمه هنا هو عمليات الكتابة المزدوجة. وهذا يعني أنّك ستكتب بياناتك في Bigtable وBigQuery، وهي تقنية شائعة. لن يتطلّب ذلك ترميزًا إضافيًا لأنّك ستستخدم Bigtable change streams to BigQuery نموذج Dataflow: عند كتابة البيانات في Bigtable، سيكتب خط الأنابيب سجلّ تغيير في BigQuery. بعد نقل البيانات إلى BigQuery، يمكنك تنفيذ طلبات بحث محسّنة في مجموعة البيانات بأكملها بدون التأثير في أداء عرض البيانات في Bigtable.

- في صفحة الجداول في Bigtable، ابحث عن جدولك
retail-database. - في عمود تغيير البث، انقر على ربط.
- في مربّع الحوار الربط بخدمة Dataflow، اختَر BigQuery.
- انقر على إنشاء مهمة Dataflow.
- في حقول المَعلمات المتوفّرة، أدخِل قيم المَعلمات. ليس عليك تقديم أي مَعلمات اختيارية.
- اضبط معرّف ملف تعريف تطبيق Cloud Bigtable على
default. - اضبط مجموعة بيانات BigQuery على
bigtable_bigquery_tutorial.
- انقر على تنفيذ مهمة.
- يُرجى الانتظار إلى أن تصبح حالة المهمة بدء أو قيد التنفيذ قبل المتابعة. يمكن أن تستغرق هذه العملية حوالي خمس دقائق بعد وضع المهمة في قائمة الانتظار. سيتم تعديل الصفحة تلقائيًا. ينشئ هذا النموذج مهمة معالجة فورية، لذا يمكنه معالجة البيانات الجديدة المكتوبة في Bigtable باستمرار إلى أن يتم إيقاف المهمة يدويًا.

6. كتابة بعض البيانات في Bigtable
الآن، ستكتب سنة من معاملات بطاقة الائتمان في جدول Bigtable. تتضمّن مجموعة البيانات النموذجية هذه معلومات مثل رقم بطاقة الائتمان واسم التاجر ومعرّفه والمبلغ. في تطبيق معالجة بطاقات الائتمان الفعلي، سيتم بث هذه البيانات إلى قاعدة البيانات في الوقت الفعلي عند إجراء كل معاملة.
- افتح Cloud Shell من خلال النقر على الزر في أعلى يسار وحدة تحكّم السحابة الإلكترونية.

- إذا طُلب منك ذلك، اقبل طلب التفويض في Cloud Shell.
- نزِّل مجموعة البيانات.
gsutil cp gs://cloud-bigtable-public-datasets/change-streams-tutorial/cc-transactions-2023.csv .
- ضبط متغيّرات البيئة في سطر الأوامر
PROJECT_ID=your-project-id
BIGTABLE_INSTANCE_ID=your-bigtable-instance-id
- استخدِم واجهة سطر الأوامر
cbtلكتابة عدد من معاملات بطاقات الائتمان في الجدولretail-database.
cbt -instance=$BIGTABLE_INSTANCE_ID -project=$PROJECT_ID import \
retail-database cc-transactions-2023.csv column-family=transactions
ستظهر المخرجات على النحو التالي:
Done importing 10000 rows.
7. عرض سجلّات التغيير في BigQuery
- في وحدة تحكّم Google Cloud، انتقِل إلى صفحة BigQuery.
- في جزء المستكشف، وسِّع مشروعك ومجموعة البيانات
bigtable_bigquery_tutorial. - انقر على الجدول
retail-database_changelog. قد تحتاج إلى إعادة تحميل مجموعة البيانات إذا لم يكن الجدول متوفّرًا. - للاطّلاع على سجلّ التغييرات، انقر على معاينة.

جرِّب بعض طلبات البحث
الآن، يمكنك تنفيذ بعض الاستعلامات على مجموعة البيانات هذه للحصول على بعض الإحصاءات. يتم توفير طلبات البحث بلغة SQL هنا، ولكن يتضمّن مستند إجراء طلب بحث في سجلّ تغييرات Bigtable في BigQuery المزيد من المعلومات حول كيفية كتابة طلبات البحث لبيانات سجلّ التغييرات.
البحث عن معاملة واحدة
استخدِم الاستعلام التالي للبحث عن بيانات معاملة معيّنة.
SELECT *
FROM `bigtable_bigquery_tutorial.retail-database_changelog`
WHERE row_key="3034-442694-3052#2023-03-03T14:50:46.824Z"
ستلاحظ أنّه تم تحويل كل عمود مكتوب إلى صف فردي في BigQuery.
العثور على عدد عمليات الشراء في كل فئة
استخدِم الاستعلام التالي لحساب عدد عمليات الشراء لكل فئة.
SELECT value as category, count(*) as `number of sales`
FROM `bigtable_bigquery_tutorial.retail-database_changelog`
WHERE column="category"
GROUP BY category
إعادة تنسيق البيانات
لإعادة إنشاء كل معاملة في صف جدول BigQuery واحد، عليك تدوير البيانات وحفظ النتيجة في جدول جديد. هذا تنسيق أسهل في البحث.
CREATE VIEW bigtable_bigquery_tutorial.retail_transactions_view AS (
SELECT *, parse_numeric(amount) as sales_dollars FROM (
SELECT row_key, timestamp, column, value
FROM `bigtable_bigquery_tutorial.retail-database_changelog`
)
PIVOT (
MAX(value)
FOR column in ("merchant", "amount", "category", "transaction_date")
)
)
إنشاء لوحة بيانات Looker
- انقر على الانتقال إلى العرض للانتقال إلى صفحة تفاصيل العرض الجديد.
- انقر على تصدير.
- اختَر استكشاف البيانات باستخدام Looker Studio.

8. إضافة رسومات بيانية إلى لوحة البيانات
يمكنك الآن إنشاء رسم بياني للمعلومات لتسهيل فهمها ومشاركتها كتقرير. ستضيف ثلاثة رسوم بيانية إلى لوحة البيانات:
- مبالغ المعاملات بمرور الوقت
- إجمالي المعاملات لكل تاجر
- النسبة المئوية للمعاملات حسب الفئة

إعداد الصفحة
- انقر على كل رسم بياني حالي واضغط على "حذف" لإزالته.
- انقر على المواقع على يسار الصفحة لتعديل بيانات الرسم البياني.
إضافة الرسوم البيانية
مبالغ المعاملات بمرور الوقت
- انقر على إضافة رسم بياني وأنشئ رسمًا بيانيًا للسلسلة الزمنية.
- اضبط السمة على
transaction_date.
- اضبط المقياس على
sales_dollars.

إجمالي المعاملات لكل تاجر
- انقر على إضافة رسم بياني وأنشئ جدولاً.
- اضبط السمة على
merchant. - اضبط المقياس على
sales_dollars
النسبة المئوية للمعاملات حسب الفئة
- انقر على إضافة رسم بياني وأنشئ رسمًا بيانيًا دائريًا.
- اضبط السمة على
category. - اضبط المقياس على
sales_dollars
الاطّلاع على التغييرات في الوقت الفعلي
خصِّص بعض الوقت لاستكشاف القيم في الرسومات البيانية. يمكنك النقر على تجار معيّنين في الجدول أو فئات معيّنة في الجدول، ما يؤدي إلى فلترة جميع الرسوم البيانية حسب هذه القيم المحدّدة، وبالتالي الحصول على المزيد من الإحصاءات. بعد ذلك، يمكنك كتابة المزيد من البيانات ومعرفة كيف سيتم تعديل هذا الرسم البياني في الوقت الفعلي.
- ارجع إلى Cloud Shell.
- نزِّل مجموعة البيانات الثانية واكتبها.
gsutil cp gs://cloud-bigtable-public-datasets/change-streams-tutorial/cc-transactions-2024-jan.csv .
cbt -instance=$BIGTABLE_INSTANCE_ID -project=$PROJECT_ID import \
retail-database cc-transactions-2024-jan.csv column-family=transactions
- ارجع إلى لوحة بيانات Looker وأعِد تحميل البيانات باستخدام الأمر
Ctrl+Shift+Eأو انقر على إعادة تحميل البيانات في قائمة العرض. من المفترض أن تظهر لك الآن بيانات يناير 2024 في الرسوم البيانية.
يمكنك إنشاء العديد من أشكال الرسوم البيانية والمقاييس الأخرى. يمكنك الاطّلاع على مزيد من المعلومات في مستندات Looker.
9- تَنظيم
لتجنُّب تحمّل رسوم في حسابك على Google Cloud مقابل الموارد المستخدَمة في هذا البرنامج التعليمي، احذف المشروع الذي يحتوي على الموارد أو احتفظ بالمشروع واحذف الموارد الفردية.
إيقاف مسار تغيير البث
- في وحدة تحكّم Google Cloud، انتقِل إلى صفحة "مهام Dataflow".
- اختَر مهمة البث المباشر من قائمة المهام.
- في شريط التنقّل، انقر على إيقاف.
- في مربّع الحوار "إيقاف المهمة"، انقر على إلغاء، ثمّ انقر على إيقاف المهمة.
حذف موارد Bigtable
إذا أنشأت مثيلاً من Bigtable لهذا البرنامج التعليمي، يمكنك حذفه أو تنظيف الجدول الذي أنشأته.
- في Google Cloud Console، انتقِل إلى صفحة "مثيلات Bigtable".
- انقر على رقم تعريف المثيل الذي تستخدمه في هذا البرنامج التعليمي.
- في لوحة التنقّل اليمنى، انقر على الجداول.
- ابحث عن جدول
retail-database. - انقر على تعديل.
- ألغِ تحديد تفعيل "مجرى التغيير".
- انقر على حفظ.
- افتح القائمة الكاملة للجدول.
- انقر على حذف وأدخِل اسم الجدول للتأكيد.
- اختياري: احذف الجهاز الظاهري إذا أنشأت جهازًا جديدًا لهذا البرنامج التعليمي
حذف مجموعة بيانات BigQuery
- في وحدة تحكّم Google Cloud، انتقِل إلى صفحة BigQuery.
- في لوحة المستكشف، ابحث عن مجموعة البيانات
bigtable_bigquery_tutorialوانقر عليها. - انقر على حذف، واكتب "حذف"، ثم انقر على حذف للتأكيد.