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

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

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

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

426dc59200875a20.png

ב-codelab הזה מוסבר איך:

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

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

336e940307d0e0a.png

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

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

eb5309715175de69.png

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

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

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

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

122bc1a411b8dc63.png

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

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

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

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

a2e8de7b66dc42e.png

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

9c267c00f93747c4.png

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

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. בעמודה Change stream, לוחצים על Connect (חיבור).
  3. בתיבת הדו-שיח Connect with Dataflow (התחברות באמצעות Dataflow), בוחרים באפשרות BigQuery.
  4. לוחצים על יצירת משימת Dataflow.
  5. בשדות הפרמטרים שמופיעים, מזינים את ערכי הפרמטרים. אין צורך לציין פרמטרים אופציונליים.
  • מגדירים את מזהה פרופיל האפליקציה של Cloud Bigtable לערך default.
  • מגדירים את מערך הנתונים ב-BigQuery ל-bigtable_bigquery_tutorial.
  1. לוחצים על הפעלת העבודה.
  2. צריך לחכות עד שסטטוס העבודה יהיה התחלה או פועל לפני שממשיכים. התהליך יימשך כחמש דקות אחרי שהעבודה תתווסף לתור. הדף יתעדכן באופן אוטומטי. התבנית הזו יוצרת משימת סטרימינג, כך שהיא יכולה לעבד באופן רציף נתונים חדשים שנכתבים ב-Bigtable עד שהמשימה נעצרת באופן ידני.

a04908b37c6fe96b.png

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

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

  1. לוחצים על הלחצן בפינה השמאלית העליונה של Cloud Console כדי לפתוח את 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 CLI כדי לכתוב מספר עסקאות בכרטיס אשראי לטבלה 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. בחלונית Explorer, מרחיבים את הפרויקט ואת מערך הנתונים 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. לוחצים על כל תרשים קיים ועל מקש Delete כדי להסיר אותו.
  2. בוחרים באפשרות נכסים בצד שמאל של הדף כדי לשנות את נתוני התרשים.

הוספת התרשימים

סכומי עסקאות לאורך זמן

  1. לוחצים על הוספת תרשים ויוצרים תרשים של סדרת נתונים לפי זמן.
  2. מגדירים את Dimension לערך transaction_date.
  1. מגדירים את Metric לערך sales_dollars.

372bdf2a2bcdb817.png

המספר הכולל של העסקאות לכל מוֹכר

  1. לוחצים על הוספת תרשים ויוצרים טבלה.
  2. מגדירים את מאפיין לערך merchant.
  3. מגדירים את Metric לערך sales_dollars

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

  1. לוחצים על הוספת תרשים ויוצרים תרשים עוגה.
  2. מגדירים את מאפיין לערך category.
  3. מגדירים את Metric לערך 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 במסוף Google Cloud.
  2. לוחצים על המזהה של המופע שבו משתמשים במדריך הזה.
  3. בחלונית הניווט הימנית, לוחצים על טבלאות.
  4. מאתרים את הטבלה retail-database.
  5. לוחצים על עריכה.
  6. מבטלים את הסימון של הפעלת זרם שינויים.
  7. לוחצים על שמירה.
  8. פותחים את התפריט 'אפשרויות נוספות' של הטבלה.
  9. לוחצים על מחיקה ומזינים את שם הטבלה כדי לאשר.
  10. אופציונלי: מוחקים את המופע אם יצרתם מופע חדש לצורך המדריך הזה

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

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

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