יעד ב-BigQuery

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

איך פועלת הכתיבה

  • הגודל המקסימלי של אירוע כשמעבירים נתונים בסטרימינג ל-BigQuery הוא 20MB.

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

מטא-נתונים של טבלה

Datastream מוסיף עמודת STRUCT בשם datastream_metadata לכל טבלה שנכתבת ביעד ב-BigQuery.

מצב כתיבה של מיזוג

אם לטבלה יש מפתח ראשי במקור, העמודה מכילה את השדות הבאים:

  • ‫UUID: השדה הזה הוא מסוג הנתונים STRING.
  • ‫SOURCE_TIMESTAMP: השדה הזה הוא מסוג הנתונים INTEGER.

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

מצב כתיבה של הוספה בלבד

העמודה datastream_metadata מכילה את אותם שדות לטבלאות עם מפתחות ראשיים ולטבלאות בלי מפתחות ראשיים:

  • ‫UUID: השדה הזה הוא מסוג הנתונים STRING.
  • ‫SOURCE_TIMESTAMP: השדה הזה הוא מסוג הנתונים INTEGER.
  • ‫CHANGE_SEQUENCE_NUMBER: השדה הזה הוא מסוג הנתונים STRING. זהו מספר סידורי פנימי שמשמש את Datastream לכל אירוע שינוי.
  • ‫CHANGE_TYPE: השדה הזה הוא מסוג הנתונים STRING. הוא מציין את סוג אירוע השינוי: INSERT,‏ UPDATE-INSERT,‏ UPDATE-DELETE או DELETE.
  • ‫SORT_KEYS: השדה הזה מכיל מערך של ערכי STRING. אתם יכולים להשתמש בערכים כדי למיין את אירועי השינויים.

שליטה בעלויות של BigQuery

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

שיטות מומלצות לניהול עלויות

כשמשתמשים ב-Datastream עם BigQuery כיעד, כדאי להביא בחשבון את השיטות המומלצות הבאות לניהול עלויות:

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

מגבלות ידועות

המגבלות הידועות בשימוש ב-BigQuery כיעד כוללות:

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

    • DATE
    • BOOL
    • GEOGRAPHY
    • INT64
    • NUMERIC
    • BIGNUMERIC
    • STRING
    • TIMESTAMP
    • DATETIME

    טבלאות שמכילות מפתחות ראשיים של סוגי נתונים לא נתמכים לא משוכפלות על ידי Datastream.

  • ב-BigQuery אי אפשר להשתמש בשמות של טבלאות עם התווים .,‏ $,‏ /,‏ @ או +. כשהוא יוצר טבלאות יעד, Datastream מחליף את התווים האלה בקו תחתון.

    לדוגמה, table.name במסד הנתונים של המקור הופך ל-table_name ב-BigQuery.

    למידע נוסף על שמות של טבלאות ב-BigQuery, קראו את המאמר מתן שמות לטבלאות.

  • ב-BigQuery אפשר להגדיר עד ארבע עמודות אשכולות. כשמשכפלים טבלה עם יותר מארבע עמודות של מפתחות ראשיים, Datastream משתמש בארבע עמודות של מפתחות ראשיים כעמודות אשכולות.

  • ‫Datastream ממפה ערכים מילוליים של תאריך ושעה מחוץ לטווח, כמו סוגי תאריכים אינסופיים של PostgreSQL, לערכים הבאים:

    • DATE חיובי בערך של 9999-12-31
    • DATE שלילי בערך של 0001-01-01
    • TIMESTAMP חיובי בערך של 9999-12-31 23:59:59.999000 UTC
    • TIMESTAMP שלילי בערך של 0001-01-01 00:00:00 UTC
  • ב-BigQuery אין תמיכה בטבלאות סטרימינג עם מפתחות ראשיים מסוגי הנתונים FLOAT או REAL. טבלאות כאלה לא משוכפלות. מידע נוסף על סוגי הנתונים והטווחים של BigQuery זמין במאמר סוגי נתונים.

  • אם המקור הוא Salesforce או Salesforce Marketing Cloud (גרסת טרום-השקה (Preview)), אפשרות ההגדרה Dataset for each schema לא נתמכת.

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