تحليل بيانات معاملات بطاقة الائتمان وعرضها في Bigtable باستخدام BigQuery وLooker

1. نظرة عامة

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

هذا الدرس التطبيقي حول الترميز موجّه للمستخدمين التقنيين الذين على دراية بمنصة Bigtable ويستخدمون أدوات سطر الأوامر وخدمات بث الأحداث.

426dc59200875a20.png

يوضّح لك هذا الدليل التعليمي كيفية تنفيذ ما يلي:

  • إنشاء جدول Bigtable مع تفعيل تدفق التغيير.
  • أنشئ مجموعة بيانات في BigQuery.
  • نشر نموذج "تدفّق البيانات" Bigtable change streams to BigQuery.
  • إجراء طلب بحث في مصدر بيانات الحدث في BigQuery
  • إنشاء عرض مرئي لبث الأحداث باستخدام Looker

يعرض هذا الرسم البياني بنية النظام الذي سيتم نشره.

336e940307d0e0a.png

2. إعداد المشروع

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

eb5309715175de69.png

  1. تأكَّد من تفعيل الفوترة لمشروعك على Google Cloud.
  2. يُرجى الانتقال إلى صفحة تفعيل واجهات برمجة التطبيقات التي تمّت تعبئتها مسبقًا لتفعيل واجهات برمجة التطبيقات اللازمة لخدمة Dataflow وBigtable وBigQuery وLooker وCloud Storage.

3- إنشاء مجموعة بيانات BigQuery

ستحلّل البيانات باستخدام BigQuery لاحقًا في الدرس التطبيقي حول الترميز. اتبع هذه التعليمات لإنشاء مجموعة البيانات لمخرجات مسار البيانات.

  1. في وحدة تحكّم Google Cloud، انتقِل إلى صفحة BigQuery.
  2. في جزء المستكشف، ابحث عن اسم مشروعك، ثم انقر على القائمة الكاملة (ثلاث نقاط رأسية بجانب رقم تعريف المشروع).
  3. انقر على إنشاء مجموعة بيانات.

122bc1a411b8dc63.png

  1. في لوحة إنشاء مجموعة بيانات، اتّبِع الخطوات التالية:
  • بالنسبة إلى معرّف مجموعة البيانات، أدخِل bigtable_bigquery_tutorial.
  • اترك الإعدادات التلقائية المتبقية كما هي.
  • انقر على إنشاء مجموعة بيانات.

4. إنشاء جدول Bigtable مع تفعيل ساحة مشاركات التغيير

‫Bigtable هي خدمة قاعدة بيانات NoSQL قابلة للتوسّع أفقيًا وذات وقت استجابة منخفض، ومن حالات الاستخدام الشائعة لها عرض البيانات المالية. ستنشئ هنا جدولاً يمكنه تخزين معاملات بطاقات الائتمان. يمكن أن تعالج أداة Bigtable عمليات الكتابة ذات معدل الإنتاجية العالي للمعاملات في جميع أنحاء العالم، ويمكنها أيضًا استخدام هذه البيانات لرصد الاحتيال في الوقت الفعلي.

  1. في وحدة تحكّم Google Cloud، انتقِل إلى صفحة Bigtable Instances.
  2. انقر على رقم تعريف المثيل الذي تستخدمه في هذا الدليل التعليمي. إذا لم يكن لديك مثيل متاح، يمكنك إنشاء مثيل يحمل الاسم الذي تختاره في منطقة قريبة منك. ويمكنك استخدام الإعدادات التلقائية لتنفيذ جميع المهام الأخرى.

a2e8de7b66dc42e.png

  1. في مساحة الروابط اليمنى، انقر على الجداول (Tables).
  2. النقر على Create table (إنشاء جدول)

9c267c00f93747c4.png

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

696cd1399c354816.png

5- بدء مسار بيانات لتسجيل مصدر التغييرات

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

f4cd9d8faf10ce77.png

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

a04908b37c6fe96b.png

6- كتابة بعض البيانات في Bigtable

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

  1. افتح Cloud Shell بالنقر على الزر في أعلى يسار وحدة تحكّم السحابة الإلكترونية.

f6395329b04ecb64.png

  1. اقبل الطلب الذي يُطلب منك فيه تفويض Cloud Shell، إذا طُلب منك ذلك.
  2. قم بتنزيل مجموعة البيانات.
gsutil cp gs://cloud-bigtable-public-datasets/change-streams-tutorial/cc-transactions-2023.csv .
  1. ضبط متغيّرات البيئة في سطر الأوامر
PROJECT_ID=your-project-id
BIGTABLE_INSTANCE_ID=your-bigtable-instance-id
  1. استخدِم واجهة سطر الأوامر 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

  1. في وحدة تحكّم Google Cloud، انتقِل إلى صفحة BigQuery.
  2. في لوحة المستكشف، وسِّع مشروعك ومجموعة البيانات bigtable_bigquery_tutorial.
  3. انقر على الجدول retail-database_changelog. قد تحتاج إلى تحديث مجموعة البيانات إذا لم يكن الجدول موجودًا.
  4. للاطّلاع على سجلّ التغييرات، انقر على معاينة.

aa97ff01f944832.png

تجربة بعض طلبات البحث

يمكنك الآن إجراء بعض الاستعلامات على مجموعة البيانات هذه للحصول على بعض الإحصاءات. يتم توفير طلبات البحث بتنسيق 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

  1. انقر على الانتقال إلى طريقة العرض للانتقال إلى صفحة تفاصيل طريقة العرض الجديدة.
  2. انقر على تصدير.
  3. اختَر الاستكشاف باستخدام Looker Studio.

bb45482e9101b0f.png

8. إضافة الرسوم البيانية إلى لوحة البيانات

يمكنك الآن عرض المعلومات في رسم بياني لتسهيل استيعابها ومشاركتها كتقرير. ستضيف ثلاثة مخططات إلى لوحة المعلومات:

  • مبالغ المعاملات على مدار الوقت
  • إجمالي المعاملات لكل تاجر
  • النسبة المئوية للمعاملات حسب الفئة

426dc59200875a20.png

إعداد الصفحة

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

إضافة الرسوم البيانية

مبالغ المعاملات بمرور الوقت

  1. انقر على إضافة رسم بياني، وأنشئ رسمًا بيانيًا لسلسلة زمنية.
  2. اضبط السمة على transaction_date.
  1. اضبط المقياس على sales_dollars.

372bdf2a2bcdb817.png

إجمالي المعاملات لكل تاجر

  1. انقر على إضافة رسم بياني، وأنشئ جدولاً.
  2. اضبط السمة على merchant.
  3. ضبط المقياس على sales_dollars

النسبة المئوية للمعاملات حسب الفئة

  1. انقر على إضافة رسم بياني، وأنشئ رسمًا بيانيًا دائريًا.
  2. اضبط السمة على category.
  3. اضبط المقياس على sales_dollars.

عرض التغييرات في الوقت الفعلي

اقض بعض الوقت واستكشِف القيم في الرسومات البيانية. يمكنك النقر على بائعين معيّنين في الجدول أو فئات معيّنة في الجدول، ما سيؤدي إلى فلترة جميع الرسوم البيانية حسب هذه القيم المحدّدة، ما يمنحك المزيد من الإحصاءات. بعد ذلك، يمكنك كتابة المزيد من البيانات والاطّلاع على كيفية تعديل هذا الرسم البياني في الوقت الفعلي.

  1. ارجع إلى Cloud Shell.
  2. نزِّل مجموعة البيانات الثانية واكتبها.
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
  1. ارجع إلى لوحة بيانات Looker وأعِد تحميل البيانات باستخدام الأمر Ctrl+Shift+E أو انقر على إعادة تحميل البيانات في القائمة عرض. من المفترض أن تظهر لك الآن بيانات شهر كانون الثاني (يناير) 2024 في الرسوم البيانية.

هناك العديد من الصيغ المختلفة للرسوم البيانية والمقاييس التي يمكنك إنشاؤها. يمكنك الاطّلاع على مزيد من المعلومات في مستندات Looker.

9. تَنظيم

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

إيقاف مسار تغيير البث

  1. في وحدة تحكّم Google Cloud، انتقِل إلى صفحة "مهام Dataflow".
  2. اختَر مهمة البث من قائمة الوظائف.
  3. في شريط التنقّل، انقر على إيقاف.
  4. في مربّع الحوار "إيقاف المهمة"، اختَر إلغاء، ثمّ انقر على إيقاف المهمة.

حذف موارد Bigtable

إذا أنشأت مثيلًا على Bigtable لهذا الدليل التعليمي، يمكنك حذفه أو تنظيف الجدول الذي أنشأته.

  1. في وحدة تحكّم Google Cloud، انتقِل إلى صفحة Bigtable Instances.
  2. انقر فوق معرف المثيل الذي تستخدمه لهذا البرنامج التعليمي.
  3. في مساحة الروابط على يمين الصفحة، انقر على الجداول.
  4. ابحث عن جدول retail-database.
  5. انقر على تعديل.
  6. أزِل العلامة من المربّع بجانب تفعيل تغيير البث.
  7. انقر على حفظ.
  8. افتح القائمة الكاملة للجدول.
  9. انقر على حذف وأدخِل اسم الجدول لتأكيد الحذف.
  10. اختياري: احذف المثيل إذا أنشأت مثيلاً جديدًا لهذا البرنامج التعليمي

حذف مجموعة بيانات BigQuery

  1. في وحدة تحكّم Google Cloud، انتقِل إلى صفحة BigQuery.
  2. في لوحة المستكشف، ابحث عن مجموعة البيانات bigtable_bigquery_tutorial وانقر عليها.
  3. انقر على حذف، واكتب حذف، ثم انقر على حذف للتأكيد.

الخطوات التالية