הגדרת יעד ב-BigQuery

בדף הזה מוסבר איך להגדיר את Datastream כדי שתוכלו לכתוב נתונים למערכי נתונים ב-BigQuery.

ההרשאות הנדרשות

‫Datastream משתמש בתמיכה המובנית של BigQuery בעדכונים של לכידת נתוני שינוי (CDC). ‫Datastream מעדכן את הטבלאות ב-BigQuery באמצעות עיבוד של שינויים שמוזרמים ויישום שלהם באמצעות BigQuery Storage Write API.

ההרשאות שנדרשות לשימוש ב-API ולהעברת נתונים ל-BigQuery מוענקות לתפקיד Datastream Service Agent.

הגדרת BigQuery כיעד

כדי להגדיר את Datastream להזרמה אל BigQuery, מבצעים את השלבים הבאים:

  1. צריך לוודא ש-BigQuery API מופעל ב Google Cloudפרויקט.
  2. אם רוצים להשתמש באפשרות מערך נתונים יחיד לכל הסכימות, צריך ליצור מערך נתונים ב-BigQuery.
  3. הגדרת מערך נתוני היעד של מקור הנתונים.
  4. הגדרת מצב כתיבה
  5. מציינים את מגבלת העדכניות המקסימלית של הנתונים לזרם.

הגדרת מערכי הנתונים של היעד

מערכי נתונים הם קונטיינרים ברמה העליונה שמשמשים לארגון ולשליטה על הגישה לטבלאות ב-BigQuery.

כשמגדירים מערכי נתונים ליעד BigQuery באמצעות Datastream, אפשר לבחור באחת מהאפשרויות הבאות:

  • מערך נתונים לכל סכימה: מערך הנתונים נבחר או נוצר באופן אוטומטי על ידי Datastream במיקום BigQuery שצוין, על סמך שם הסכימה של המקור. כתוצאה מכך, לכל סכימה במקור יש מערך נתונים תואם ב-BigQuery. לדוגמה, אם יש לכם מקור MySQL, ובמקור הזה יש מסד נתונים mydb וטבלה employees בתוך מסד הנתונים, אז Datastream יוצר את מערך הנתונים mydb ואת הטבלה employees ב-BigQuery.

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

  • מערך נתונים יחיד לכל הסכימות: בוחרים מערך נתונים ב-BigQuery לזרם. מקור הנתונים מעביר את כל הנתונים למערך הנתונים הזה. עבור מערך הנתונים שתבחרו, Datastream יוצר את כל הטבלאות כ-<schema>_<table>.

    לדוגמה, אם יש לכם מקור MySQL, ובמקור הזה יש מסד נתונים mydb וטבלה employees בתוך מסד הנתונים, אז Datastream יוצר את הטבלה mydb_employees במערך הנתונים שבחרתם.

    אפשר לבחור מערך נתונים מכל Google Cloud פרויקט. כברירת מחדל, מוצגים מערכי נתונים מהפרויקט הנוכחי. אפשר גם ליצור מערך נתונים חדש בפרויקט שנבחר.

הגדרת מצב כתיבה

יש שני מצבים שבהם אפשר להשתמש כדי להגדיר איך רוצים שהנתונים ייכתבו ל-BigQuery:

  • מיזוג: זהו מצב הכתיבה שמוגדר כברירת מחדל. כשבוחרים באפשרות הזו, BigQuery משקף את האופן שבו הנתונים מאוחסנים במסד הנתונים של המקור. המשמעות היא ש-Datastream כותב את כל השינויים בנתונים שלכם ל-BigQuery, ו-BigQuery מאחד את השינויים עם הנתונים הקיימים, וכך יוצר טבלאות סופיות שהן העתקים של טבלאות המקור. במצב מיזוג, לא נשמר תיעוד היסטורי של אירועי השינוי. לדוגמה, אם מוסיפים שורה ואז מעדכנים אותה, BigQuery שומר רק את הנתונים המעודכנים. אם לאחר מכן מוחקים את השורה מטבלת המקור, BigQuery לא שומר יותר רשומה של השורה הזו.

  • הוספה בלבד: מצב הכתיבה 'הוספה בלבד' מאפשר להוסיף נתונים ל-BigQuery כזרם של שינויים (אירועים INSERT, UPDATE-INSERT, UPDATE-DELETE ו-DELETE). כדאי להשתמש במצב הזה כשצריך לשמור את המצב ההיסטורי של הנתונים. כדי להבין טוב יותר את מצב הכתיבה 'הוספה בלבד', נבחן את התרחישים הבאים:

    • מילוי חוסרים ראשוני: אחרי מילוי החוסרים הראשוני, כל האירועים נכתבים ב-BigQuery כאירועים מסוג INSERT, עם חותמת זמן, מזהה ייחודי אוניברסלי (UUID) ומספר רצף שינויים זהים.
    • עדכון המפתח הראשי: כשמפתח ראשי משתנה, שתי שורות נכתבות ל-BigQuery:
      • שורה UPDATE-DELETE עם המפתח הראשי המקורי
      • שורה UPDATE-INSERT עם המפתח הראשי החדש
    • עדכון שורה: כשמעדכנים שורה, שורה אחת UPDATE-INSERT נכתבת ב-BigQuery
    • מחיקת שורה: כשמוחקים שורה, שורה אחת של DELETE נכתבת ב-BigQuery

ציון מגבלת נתונים

‫BigQuery מבצע שינויים במקור ברקע באופן שוטף, או בזמן ההרצה של השאילתה, בהתאם למגבלת העדכניות של הנתונים שהוגדרה. כש-Datastream יוצר טבלה חדשה ב-BigQuery, האפשרות max_staleness של הטבלה מוגדרת בהתאם לערך הנוכחי של מגבלת הטריות של הנתונים בזרם. כך מוודאים שהטבלה אף פעם לא חורגת ממגבלת העדכניות שהוגדרה. המגבלה על עדכניות הנתונים לא משפיעה על התדירות של משימות המיזוג ב-BigQuery.

מידע נוסף על שימוש בטבלאות BigQuery עם האפשרות max_staleness זמין במאמר Table staleness.