שינוי סכימות בעבודת שכפול של SQL Server

במאמר הזה מוסבר איך לשנות סכימות ב-Cloud Data Fusion כשמשכפלים נתונים ממסד נתונים של Microsoft SQL Server לטבלה ב-BigQuery. כדי לוודא שעבודת השכפול ממשיכה לשכפל נתונים ממקור SQL Server אחרי שינוי הסכימה, צריך לבצע את השלבים הבאים.

שינוי הסכימה

  1. עוברים למופע:

    1. במסוף Google Cloud , נכנסים לדף Cloud Data Fusion.

    2. כדי לפתוח את המכונה ב-Cloud Data Fusion Studio, לוחצים על Instances (מכונות) ואז על View instance (הצגת מכונה).

      כניסה לדף Instances

  2. בממשק האינטרנט של Cloud Data Fusion, לוחצים על Replication (שכפול).

  3. מפסיקים את עבודת השכפול.

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

  5. יוצרים טבלת תיעוד חדשה באמצעות הפרוצדורה sys.sp_cdc_enable_table עם ערך ייחודי לפרמטר @capture_instance.

  6. מחילים את אותו שינוי בסכימה על טבלת היעד ב-BigQuery.

  7. מפעילים מחדש את עבודת השכפול.

  8. אופציונלי: כשההעברה מתחילה להזרים שינויים חדשים שמתרחשים אחרי שהפסקתם את ההעברה, אתם יכולים להפיל את טבלת הלכידה הישנה באמצעות הפרוצדורה המאוחסנת sys.sp_cdc_disable_table. מגדירים את הפרמטר @capture_instance לשם המכונה הקודם של הלכידה.

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

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

  2. מוודאים שעבודת השכפול עיבדה את כל האירועים הקיימים.

  3. מפסיקים את עבודת השכפול.

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

  5. יוצרים טבלת תיעוד חדשה באמצעות הפרוצדורה sys.sp_cdc_enable_table עם ערך ייחודי לפרמטר @capture_instance.

  6. ממשיכים את הפעלת האפליקציות שהשעיתם בשלב הראשון.

  7. מחילים את אותו שינוי בסכימה על טבלת היעד ב-BigQuery.

  8. מפעילים מחדש את עבודת השכפול.

  9. אופציונלי: כשהעבודה מתחילה להזרים שינויים חדשים שמתרחשים אחרי שיצרתם את טבלת התיעוד החדשה בשלב הקודם, אתם יכולים להשליך את טבלת התיעוד הישנה באמצעות הפרוצדורה המאוחסנת sys.sp_cdc_disable_table. מגדירים את הפרמטר @capture_instance לשם המכונה הקודם של הלכידה.

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