ניהול מילוי חוסרים באובייקטים של סטרימינג

מילוי חוסרים ב-Datastream מאפשר לכם לטעון תמונת מצב של נתונים היסטוריים מאובייקטים של המקור אל היעד, לצד סימון נתונים שהשתנו (CDC) באופן שוטף. אם לא בחרתם באפשרות Backfill historical data כשהגדרתם את המקור, אתם יכולים להפעיל ידנית מילוי חוסרים מלא או חלקי. הפעלת מילוי ידני של חוסרים בנתונים מאפשרת גם לסנכרן מחדש אובייקטים ביעד אם הנתונים נמחקו בטעות.

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

סטטוסים של אובייקטים

הסטטוסים השונים במחזור החיים של הפעלה והפסקה של מילוי חוסרים באובייקט כוללים:

  • אין סטטוס (מיוצג בממשק המשתמש כ--): הסיבות לכך שאובייקט מקבל את הסטטוס הזה כוללות:

    • השידור לא התחיל.
    • תיבת הסימון Backfill historical data לא נבחרה (כך שהמילוי החוזר מוגדר כידני).
    • האובייקט מוחרג באופן מפורש ממילוי אוטומטי.
    • הסטרימינג מוגדר לכלול טבלאות עתידיות. במקרה כזה, כשמוסיפים טבלאות חדשות למקור, לא נוצרת בשבילן משימת מילוי חוסרים אוטומטית (כי בדרך כלל אין בטבלאות חדשות נתונים היסטוריים למילוי חוסרים).
  • ‫Pending: המילוי החוזר עדיין לא התחיל לאובייקט.

  • ‫Active: מתבצע מילוי חוסרים באובייקט.

  • ‫Completed: מילוי החוסרים הושלם באובייקט.

  • ‫Stopped: המילוי החוזר של האובייקט הופסק. אם תפעילו שוב מילוי חוסרים באובייקט, Datastream יעביר את כל הנתונים הקיימים שמשויכים לאובייקט מהמקור ליעד.

  • ‫Failed: מילוי החוסרים נכשל לאובייקט וצריך להפעיל אותו מחדש.

התחלת מילוי חוסרים

  1. נכנסים לדף Streams במסוף Google Cloud .

    מעבר לדף Streams

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

  3. לוחצים על הכרטיסייה Objects.

  4. מסמנים את התיבה לצד כל אובייקט שרוצים להפעיל בו מילוי חוסרים.

  5. לוחצים על התחלת מילוי חוסרים.

  6. אם בחרתם רק אובייקט אחד, לוחצים על INITIATE OBJECT BACKFILL בתיבת הדו-שיח. אם בחרתם כמה אובייקטים, לוחצים על INITIATE OBJECT BACKFILLS.

    Datastream תתחיל למלא את הנתונים החסרים באובייקטים שבחרתם, והסטטוס של כל אובייקט ישתנה מ-Pending ל-Active ואז ל-Completed. כשהסטטוס של אובייקט הוא Completed, המשמעות היא ש-Datastream קרא את כל הנתונים של האובייקט, אבל יכול להיות שהנתונים עדיין נטענים ליעד.

התחלת מילוי חלקי של נתונים היסטוריים

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

Datastream תומך במילוי חלקי של נתונים חסרים במקורות הבאים:

  • שרת SQL
  • Spanner
  • Oracle
  • PostgreSQL
  • MySQL

כדי להתחיל מילוי חלקי:

  1. נכנסים לדף Streams במסוף Google Cloud .

    מעבר לדף Streams

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

  3. לוחצים על הכרטיסייה Objects.

  4. בוחרים את האובייקט שרוצים להפעיל בו מילוי חוסרים.

  5. לוחצים על התחלת מילוי חוסרים.

  6. בחלונית שמופיעה, מסמנים את התיבה הפעלת מסנן בהתאמה אישית.

  7. מזינים את סעיף ה-SQL WHERE. לדוגמה, product_id > 12 AND timestamp = '2025-01-06T22:00:00.00'.

  8. לוחצים על התחלת מילוי חוסרים.

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

תחביר נתמך של מסננים בהתאמה אישית

כשמגדירים מסנן בהתאמה אישית, Datastream תומך בקבוצת משנה בסיסית של תחביר פסוקית WHERE ב-SQL. הרכיבים הנתמכים כוללים:

  • אופרטורים לוגיים: AND, OR
  • אופרטורים להשוואה: =, <, >, <=, >=, !=
  • ‫תנאים: IN, NOT IN, IS NULL, IS NOT NULL
  • קיבוץ: סוגריים () להגדרת קבוצות של תנאים
  • ערכים:

    • מחרוזות: טקסט שמוקף במירכאות בודדות, לדוגמה, 'value',
    • מספרים: מספרים שלמים (123), מספרים עשרוניים (123.45), מספרים שליליים (-10) ומספרים עם חזקות (1.2e3).
    • ערכים בוליאניים: מילות מפתח תלויות אותיות רישיות (case-sensitive) מסוג TRUE או FALSE.
  • מזהים:

    • הגדרה: אפשר להגדיר את שמות העמודות באופן מלא באמצעות נקודות כדי לציין את הסכימה או הטבלה, לדוגמה, myColumn,‏ myTable.myColumn או mySchema.myTable.myColumn.
    • מזהים ללא מירכאות: יכולים להכיל אותיות, מספרים וקווים תחתונים, וחייבים להתחיל באות או בקו תחתון. התלות באותיות רישיות בשמות של עמודות או טבלאות תלויה במסד הנתונים של היעד.
    • מזהים במירכאות כפולות: חייבים להיות מוקפים במירכאות כפולות (").

מגבלות על מילוי חלקי של נתונים היסטוריים

יש הצהרות, אופרטורים ומילות מפתח שאסור להשתמש בהם, ואם תשתמשו בהם תופיע הודעת שגיאה. למשל:

  • הערות, כמו -- או /* */.
  • פונקציות, לדוגמה, UPPER(column) ו-NOW().
  • ביטויים אריתמטיים, לדוגמה, column + 1 > 10.
  • האופרטור LIKE. אי אפשר להשתמש בתווים כלליים לחיפוש כמו % או _ עם LIKE.
  • האופרטור BETWEEN. במקומה צריך להשתמש ב->= וב-<=.
  • שאילתות משנה, לדוגמה, (SELECT ...) בתוך הסעיף WHERE.
  • הצהרות CASE, לדוגמה, CASE WHEN ... END.
  • השוואות בין עמודות, כמו column1 = column2. ההשוואות חייבות להיות מול ערכים מילוליים.
  • DATE ו-TIME סוגים או פונקציות ספציפיים.
  • אופרטורים ספציפיים למערך או ל-JSON.
  • המרה מפורשת: לדוגמה, CAST(column AS INT).

הפסקת המילוי החוזר

  1. נכנסים לדף Streams במסוף Google Cloud .

    מעבר לדף Streams

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

  3. לוחצים על הכרטיסייה Objects.

  4. מסמנים את התיבה לצד כל אובייקט שרוצים להפסיק את המילוי החוזר שלו.

  5. לוחצים על הפסקת המילוי החוזר.

  6. אם בחרתם רק אובייקט אחד, לוחצים על Stop object backfill בתיבת הדו-שיח. אם בחרתם כמה אובייקטים, לוחצים על Stop object backfills.

    Datastream תפסיק את המילוי החסר של האובייקטים שבחרתם, והסטטוס של כל אובייקט ישתנה ל-Stopped.

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

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