ניתוח והמחשה חזותית של נתוני עסקאות בכרטיס אשראי ב-Bigtable באמצעות BigQuery ו-Looker

1. סקירה כללית

בקודלאב הזה תלמדו לנתח מקור נתונים של עסקאות בכרטיס אשראי שנכתבות ב-Bigtable. נסביר איך להשתמש במקורות השינוי של Bigtable לתבנית של BigQuery כדי לייצא נתונים בזמן אמת. לאחר מכן נסביר איך שולחים שאילתות ליומן של מקור הנתונים המשתנה ואיך מעצבים מחדש את הנתונים כדי ליצור לוח בקרה באמצעות Looker.

סדנת הקוד הזו מיועדת למשתמשים טכניים שמכירים את Bigtable, משתמשים בכלים של שורת הפקודה ובשירותי סטרימינג של אירועים.

426dc59200875a20.png

בשיעור ה-Codelab הזה תלמדו איך:

  • יוצרים טבלה ב-Bigtable עם שידור שינויים מופעל.
  • יצירת מערך נתונים ב-BigQuery.
  • פריסת התבנית של Dataflow Bigtable change streams to BigQuery.
  • שולחים שאילתות למקור האירועים ב-BigQuery.
  • הצגה חזותית של מקור הנתונים של האירועים באמצעות Looker.

בתרשים הזה מוצגת הארכיטקטורה של המערכת שתפרסו.

336e940307d0e0a.png

2. הגדרת פרויקט

  1. במסוף Google Cloud, בדף לבחירת הפרויקט בוחרים פרויקט או לוחצים על create a Google Cloud project.

eb5309715175de69.png

  1. מוודאים שהחיוב מופעל בפרויקט שלכם ב-Google Cloud.
  2. אפשר להיכנס לדף הזה עם רשימת ממשקי ה-API כדי להפעיל את ממשקי ה-API הנדרשים ל-Dataflow,‏ Bigtable,‏ BigQuery,‏ Looker ו-Cloud Storage.

3. יצירת מערך נתונים ב-BigQuery

בהמשך תנתחו נתונים באמצעות BigQuery ב-Codelab. פועלים לפי ההוראות הבאות כדי ליצור את מערך הנתונים של הפלט של צינור עיבוד הנתונים.

  1. נכנסים לדף BigQuery במסוף Google Cloud.
  2. בחלונית Explorer מחפשים את שם הפרויקט ולוחצים על אפשרויות נוספות (שלוש נקודות אנכיות ליד מזהה הפרויקט).
  3. לוחצים על Create dataset.

122bc1a411b8dc63.png

  1. בחלונית Create dataset:
  • בשדה Dataset ID, מזינים bigtable_bigquery_tutorial.
  • משאירים את שאר הגדרות ברירת המחדל כפי שהן.
  • לוחצים על Create dataset.

4. יצירת טבלה ב-Bigtable עם מקור נתונים של שינויים מופעל

Bigtable הוא שירות מסד נתונים מסוג NoSQL עם זמן אחזור קצר ויכולת התאמה אופקית. אחד מתרחישי השימוש הנפוצים בו הוא הצגת נתונים פיננסיים. כאן אתה עומד ליצור טבלה שיכולה לאחסן עסקאות בכרטיס אשראי. Bigtable יכול לטפל בכמות גדולה של כתיבה של עסקאות ברחבי העולם, ואפילו להשתמש בנתונים האלה לצורך זיהוי הונאות בזמן אמת.

  1. נכנסים לדף Bigtable Instances במסוף Google Cloud.
  2. לוחצים על המזהה של המכונה שבה אתם משתמשים במדריך הזה. אם אין לכם מכונה זמינה, תוכלו ליצור מכונה בשם לבחירתכם באזור הקרוב אליכם. בכל שאר ההגדרות אפשר להשתמש בהגדרות ברירת המחדל.

a2e8de7b66dc42e.png

  1. בחלונית הניווט שמימין, לוחצים על טבלאות.
  2. לוחצים על יצירת טבלה.

9c267c00f93747c4.png

  • נותנים שם לטבלה retail-database.
  • מוסיפים משפחת עמודות בשם transactions.
  • בוחרים באפשרות Enable change stream.
  • משאירים את מדיניות האיסוף של האשפה ואת תקופת השמירה עם ערכי ברירת המחדל שלהם.
  • לוחצים על יצירה.

696cd1399c354816.png

5. אתחול צינור נתונים כדי לתעד את זרם השינוי

הביצועים ב-Bigtable אופטימליים לקריאות נקודות ולסריקות של טווחי שורות, אבל ניתוח נתונים ברמת הטבלה עלול להכביד על נפח ההצגה ועל משאבי המעבד (CPU). BigQuery הוא כלי מעולה לניתוח נתונים ברמת הטבלה, ולכן הפתרון שבו תשתמשו כאן הוא כתיבה כפולה. כלומר, תכתבו את הנתונים ב-Bigtable וב-BigQuery, זו טכניקה נפוצה. לא תצטרכו לכתוב קוד נוסף, כי תשתמשו בתבנית Bigtable change streams to BigQuery של Dataflow: כשנתונים נכתבים ב-Bigtable, צינור עיבוד הנתונים יכתוב רשומת שינוי ב-BigQuery. אחרי שהנתונים נמצאים ב-BigQuery, אפשר להריץ שאילתות לאופטימיזציה של כל מערך הנתונים, בלי להשפיע על הביצועים של נתוני ההצגה ב-Bigtable.

f4cd9d8faf10ce77.png

  1. בדף Tables ב-Bigtable, מחפשים את הטבלה retail-database.
  2. בעמודה שינוי מקור נתונים, לוחצים על התחברות.
  3. בתיבת הדו-שיח Connect with Dataflow, בוחרים באפשרות BigQuery.
  4. לוחצים על Create Dataflow job.
  5. בשדות הפרמטרים שמוצגים, מזינים את ערכי הפרמטרים. אין צורך לספק פרמטרים אופציונליים.
  • מגדירים את מזהה פרופיל האפליקציה ב-Cloud Bigtable ל-default.
  • מגדירים את מערך הנתונים ב-BigQuery כ-bigtable_bigquery_tutorial.
  1. לוחצים על הרצת המשימה.
  2. לפני שממשיכים, ממתינים עד שסטטוס המשימה הוא מתחיל או פועל. לאחר שהמשימה תתווסף לתור, התהליך עשוי להימשך כ-5 דקות. הדף יתעדכן באופן אוטומטי. התבנית הזו יוצרת משימה בסטרימינג, כדי שהיא תעבד באופן רציף נתונים חדשים שנכתבו ל-Bigtable עד שהמשימה תופסק באופן ידני.

a04908b37c6fe96b.png

6. כתיבת נתונים ב-Bigtable

עכשיו נכתוב שנה של עסקאות בכרטיס אשראי לטבלה של Bigtable. מערך הנתונים לדוגמה הזה כולל מידע כמו מספר כרטיס אשראי, שם המוכר ומספרו והסכום. באפליקציה של עיבוד כרטיס אשראי בפועל, הנתונים האלה יועברו למסד הנתונים שלכם בזמן אמת בכל עסקה שתבוצע.

  1. לוחצים על הלחצן בפינה הימנית העליונה של מסוף Cloud כדי לפתוח את 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. משתמשים ב-CLI של 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. נכנסים לדף BigQuery במסוף Google Cloud.
  2. בחלונית Explorer, מרחיבים את הפרויקט ואת מערך הנתונים bigtable_bigquery_tutorial.
  3. לוחצים על הטבלה retail-database_changelog. אם הטבלה לא מופיעה, יכול להיות שתצטרכו לרענן את מערך הנתונים.
  4. כדי לראות את יומן השינויים, לוחצים על תצוגה מקדימה.

aa97ff01f944832.png

מומלץ לנסות כמה שאילתות

עכשיו אפשר להריץ כמה שאילתות על מערך הנתונים הזה כדי לקבל תובנות. השאילתות של SQL מופיעות כאן, אבל במסמכי התיעוד של Query a 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. מגדירים את Dimension לערך merchant.
  3. מגדירים את Metric לערך sales_dollars.

אחוז העסקאות בכל קטגוריה

  1. לוחצים על הוספת תרשים ויוצרים תרשים עוגה.
  2. מגדירים את Dimension לערך 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 Jobs.
  2. בוחרים את משימת הסטרימינג מרשימת המשימות.
  3. בתפריט הניווט, לוחצים על עצירה.
  4. בתיבת הדו-שיח 'הפסקת המשימה', בוחרים באפשרות ביטול ולוחצים על הפסקת המשימה.

מחיקת המשאבים ב-Bigtable

אם יצרתם מכונה של Bigtable במסגרת המדריך הזה, אתם יכולים למחוק אותה או לנקות את הטבלה שיצרתם.

  1. נכנסים לדף Bigtable Instances במסוף Google Cloud.
  2. לוחצים על המזהה של המכונה שבה אתם משתמשים במדריך הזה.
  3. בחלונית הניווט שמימין, לוחצים על טבלאות.
  4. מאתרים את הטבלה retail-database.
  5. לוחצים על עריכה.
  6. מבטלים את הסימון של האפשרות Enable change stream.
  7. לוחצים על שמירה.
  8. פותחים את תפריט האפשרויות הנוספות של הטבלה.
  9. לוחצים על Delete ומזינים את שם הטבלה כדי לאשר.
  10. אופציונלי: אם יצרתם מכונה חדשה למדריך הזה, תוכלו למחוק אותה.

מחיקת מערך הנתונים ב-BigQuery

  1. נכנסים לדף BigQuery במסוף Google Cloud.
  2. בחלונית Explorer, מאתרים את מערך הנתונים bigtable_bigquery_tutorial ולוחצים עליו.
  3. לוחצים על מחיקה, מקלידים 'מחיקה' ולוחצים על מחיקה כדי לאשר.

המאמרים הבאים