תכנון העברה באמצעות היסטוריית העברות
כשמתכננים מיגרציה של מחסן נתונים (data warehouse) ל-BigQuery, אפשר להשתמש בשירות של שושלת המיגרציה כדי להציג את זרימת הנתונים והחיבורים במסד הנתונים של המקור.
כשיוצרים שושלת נתונים של מיגרציה, שירות שושלת הנתונים מספק תרשים שמציג באופן חזותי איך הנתונים עוברים דרך מערכת המקור, ואיך כל טבלה או תצוגה במערכת המקור מחוברות, כמו שמוצג בתרשים הבא:
שירות שושלת ההעברה תומך בדיאלקטים הבאים של SQL:
- Amazon Redshift SQL
- Snowflake SQL
- Teradata SQL
- GoogleSQL (BigQuery)
מגבלות
שירות ה-lineage מעבד את 5 הגיגה-בייט הראשונים של היומנים הכי ישנים ממסד הנתונים של המקור.
מיקומים נתמכים
שירות שושלת ההעברה זמין במיקומים נבחרים. מידע נוסף זמין במאמר מיקומים של שירות תרגום SQL ושירות שושלת ב-BigQuery.
ההרשאות הנדרשות
כדי לקבל את ההרשאות שנדרשות לשימוש בשירות של שושלת היוחסין של ההעברה, צריך לבקש מהאדמין להקצות לכם ב-IAM את התפקיד עורך של MigrationWorkflow (roles/bigquerymigration.editor) בפרויקט.
כדי לקרוא הסבר על מתן תפקידים, ראו איך מנהלים את הגישה ברמת הפרויקט, התיקייה והארגון.
התפקיד המוגדר מראש הזה כולל את ההרשאות שנדרשות לשימוש בשירות של שושלת היוחסין של המיגרציה. כדי לראות בדיוק אילו הרשאות נדרשות, אפשר להרחיב את הקטע ההרשאות הנדרשות:
ההרשאות הנדרשות
כדי להשתמש בשירות של שושלת היוחסין של ההעברה, נדרשות ההרשאות הבאות:
-
bigquerymigration.workflows.create -
bigquerymigration.workflows.get -
bigquerymigration.lineageDbs.query
יכול להיות שתקבלו את ההרשאות האלה באמצעות תפקידים בהתאמה אישית או תפקידים מוגדרים מראש אחרים.
מידע נוסף על תפקידים והרשאות של IAM ב-BigQuery זמין במאמר תפקידים והרשאות של IAM ב-BigQuery.
מעקב אחרי שושלת של העברה
כדי לעקוב אחר שושלת נתונים של מיגרציה, קודם מפעילים את הכלי dwh-migration-dumper כדי ליצור קובצי יומן SQL של קלט המקור, ומעלים אותם ל-Cloud Storage.
אחרי שמעלים את קובצי הקלט ל-Cloud Storage, אפשר לעקוב אחרי שושלת הנתונים של המיגרציה באמצעות מסוף Google Cloud או BigQuery Migration API.
הפעלת הכלי dwh-migration-dumper
בוחרים באחת מהאפשרויות הבאות:
Amazon Redshift
כדי לעקוב אחרי שושלת נתונים של העברה ולראות אותה במסד נתונים של Amazon Redshift, צריך לבצע את הפעולות הבאות:
- מריצים את כלי
dwh-migration-dumperכדי ליצור קובץ dump של קבצי מערכת המקור. - העלאת יומני השאילתות ל-Cloud Storage
פתית שלג
כדי לעקוב אחרי שושלת נתונים של העברה ולראות אותה במסד נתונים של Snowflake:
- מריצים את כלי
dwh-migration-dumperכדי ליצור קובץ dump של קבצי מערכת המקור. - העלאת יומני השאילתות ל-Cloud Storage
Teradata
כדי לעקוב אחרי שושלת נתונים של מיגרציה ולראות אותה במסד נתונים של Teradata:
- מריצים את כלי
dwh-migration-dumperכדי ליצור קובץ dump של קבצי מערכת המקור. - העלאת יומני השאילתות ל-Cloud Storage
BigQuery
כדי לעקוב אחרי שושלת נתונים של מיגרציה ולצפות בה במסד נתונים של BigQuery:
- מקצים לחשבון או לחשבון השירות את התפקידים הבאים:
- BigQuery Metadata Viewer (צפייה במטא-נתונים של BigQuery) (
roles/bigquery.metadataViewer) - צפייה ב-Data Catalog (
roles/datacatalog.viewer)
- BigQuery Metadata Viewer (צפייה במטא-נתונים של BigQuery) (
- מתקינים את הכלי
dwh-migration-dumper. כדי ליצור מטא-נתונים ויומני שאילתות, מריצים את הכלי
dwh-migration-dumper. המטא-נתונים ויומני השאילתות האלה נמצאים בקובץ ZIP אחד או יותר.dwh-migration-dumper --connector bigquery dwh-migration-dumper --connector bigquery-logs
מעלים את קובצי ה-ZIP לקטגוריה של Cloud Storage. מידע נוסף על יצירת קטגוריות והעלאת קבצים ל-Cloud Storage זמין במאמרים בנושא יצירת קטגוריה והעלאת אובייקטים ממערכת קבצים.
מעקב אחר שושלת נתונים
אחרי שמעלים ל-Cloud Storage את קובצי ה-ZIP שמכילים את המטא-נתונים ואת יומני השאילתות, אפשר לעקוב אחרי מקור הנתונים. בוחרים באחת מהאפשרויות הבאות:
המסוף
עוברים לדף שירותי ההעברה שלך.
בקטע Trace Lineage, לוחצים על Trace translation.
בקטע הגדרת שושלת נתונים, מזינים את הפרטים הבאים:
- בשם התצוגה מציינים שם לעבודת השושלת. השם יכול להכיל אותיות, מספרים או קווים תחתונים.
- בקטע Processing Location (מיקום העיבוד), בוחרים את המיקום שבו רוצים שהעבודה של שרשרת המקור תפעל.
בקטע Edit input directory location (עריכת המיקום של ספריית הקלט), מציינים את הנתיב לתיקייה ב-Cloud Storage שמכילה את קובצי ה-ZIP של היומנים שהעליתם קודם. אפשר להקליד את הנתיב בפורמט
bucket_name/folder_name/או ללחוץ על עיון. אפשר גם לתת שם לספריית המשנה של קובצי הפלט בשדה שם ספריית המשנה של הפלט.כדי להוסיף קובצי קלט נוספים, לוחצים על הוספת מיקום של ספריית קלט.
לוחצים על Trace (עקבות).
עכשיו מופעלת משימת שושלת הנתונים. משך התהליך תלוי בגודל הקלט, והוא יכול להימשך כמה שעות. אחרי שהפעולה מסתיימת, הכלי מספק קישור לשושלת נתונים של המיגרציה.
API
כדי לעקוב אחרי עבודת שושלת, מריצים את הפקודה curl הבאה:
curl -d "{ \"tasks\": { \"TASK_NAME\": { \"type\": \"Experimental_Lineage\", \"translation_details\": { \"target_base_uri\": \"BUCKET_PATH\", \"source_target_mapping\": { \"source_spec\": { \"base_uri\": \"BUCKET_PATH\" } }, \"target_types\": \"LINEAGE\" } } } } " \ -H "Content-Type:application/json" \ -H "Authorization: Bearer TOKEN" -X POST https://bigquerymigration.googleapis.com/v2/projects/PROJECT_ID/locations/LOCATION/workflows
מחליפים את מה שכתוב בשדות הבאים:
-
TASK_NAME: שם לזיהוי של משימת שרשרת המקור הזו. -
BUCKET_PATH: הנתיב לקטגוריה של Cloud Storage שמכילה את קובצי ה-ZIP של נתוני הקלט. -
PROJECT_ID: מזהה הפרויקט ב-Google Cloud . -
LOCATION: מיקום העיבוד. הערך חייב להיותeuאוus.
הקריאה הזו מחזירה הודעה שדומה לזו:
{ "name": "projects/PROJECT_ID/locations/LOCATION/workflows/WORKFLOW_ID", "tasks": { "task_name": { /*...*/ } }, "state": "RUNNING" }
עכשיו מופעלת משימת שושלת הנתונים. משך התהליך תלוי בגודל הקלט, והוא יכול להימשך כמה שעות. כדי לבדוק את הסטטוס של משימת שושלת נתונים, מריצים את הפקודה הבאה של curl עם מזהה תהליך עבודה:
curl \ -H "Content-Type:application/json" \ -H "Authorization:Bearer " -X GET https://bigquerymigration.googleapis.com/v2/projects/PROJECT_ID/locations/LOCATION/workflows/WORKFLOW_ID
אחרי שהעבודה מסתיימת, הכלי מספק קישור לתצוגת שושלת הנתונים המעוקבת.
פתיחת היסטוריית ההעברה
אחרי שמאתרים את שושלת הנתונים של המיגרציה, אפשר לפתוח אותה באחת מהדרכים הבאות:
המסוף
עוברים לדף שירותי ההעברה שלך.
בקטע Trace Lineage (מעקב אחר מקורות), לוחצים על View recent (הצגת הפעילות האחרונה).
בדף Migration Lineage, לוחצים על שם המשימה כדי לבחור את משימת השושלת המלאה.
בדף פרטי התרגום, לוחצים על מקורות נתונים.
API
כדי לפתוח את שושלת הנתונים של העברה שהושלמה, מריצים את הפקודה curl הבאה באמצעות BigQuery Migration API:
curl \ -H "Content-Type:application/json" \ -H "Authorization:Bearer " -X GET https://bigquerymigration.googleapis.com/v2/projects/PROJECT_ID/locations/LOCATION/workflows/WORKFLOW_ID
מחליפים את מה שכתוב בשדות הבאים:
-
PROJECT_ID: מזהה הפרויקט ב-Google Cloud . -
LOCATION: מיקום העיבוד. הערך חייב להיותeuאוus. WORKFLOW_ID: מזהה תהליך העבודה של שושלת הנתונים שנמצאה.
עוברים לקישור שמופיע בשדה taskResult.translationTaskResult.consoleUri של הודעת הפלט.
עבודה עם שרשרת היוחסין של ההעברה
בקטעים הבאים מתוארות דרכים שבהן אפשר להשתמש בנתוני השושלת של ההעברה כדי לעבוד עם נתוני המקור ועם מסד הנתונים.
הסבר על המונחים שקשורים למוצא של נתונים
המונחים הבאים משמשים בשושלת נתונים של מיגרציה:
| תנאים | תיאור |
|---|---|
| סקריפטים | סקריפטים של SQL ותוכניות אחרות שמופיעים ביומני מסד הנתונים שנקלטים במהלך בניית שרשרת המקור. סקריפטים מורכבים מהצהרות, שהן בדרך כלל הצהרות SQL יחידות. |
| צמתים | הקודקודים של גרף השושלת. הם מורכבים מטבלאות ועמודות. |
| Tables | נקראות גם יחסים, כולל טבלאות רגילות, תצוגות, קבצים מובנים ומשאבים אחרים דמויי טבלה. |
| Columns | נקראים גם מאפיינים, כולל עמודות בטבלה, הקרנות של תצוגות, עמודות פסאודו, שדות דמויי עמודות בקובצים ובמשאבים אחרים, ועמודות משנה כמו שדות struct. |
| קצוות | חיבורים בין צמתים של שושלת שמציינים אינטראקציות כתוצאה מצינור שמריץ סקריפט שקורא או כותב את הצמתים האלה. הקצוות מתויגים בחותמות זמן, בפרדיקטים ובמטא-נתונים אחרים מהרגע שבו נגזר הקצה. צומת שסמוך לצומת אחר עם קצה נקרא חיבור ישיר. מסלול של קצוות בין שני צמתים נקרא חיבור עקיף. |
| קצוות של קשרים | קשתות מכוונות שמציינות שהצומת של המקור נכלל בסעיף כמו FROM, WHERE או GROUP BY שהשפיע על הנתונים של צומת היעד. |
| משתמשים וצינורות עיבוד נתונים | תוויות של מטא-נתונים שסופקו על ידי מסד הנתונים המקורי לגבי מי ומה הפעיל סקריפטים. אין להם משמעות מובנית במנוע השושלת, אבל הם משמשים לקיבוץ סקריפטים לפי מקור. |
בקטעים הבאים מתוארים הדפים השונים בשרשרת של העברה.
בדיקת דף הנחיתה
בדף הנחיתה של שושלת ההעברה מוצג המזהה של משימת השושלת, שדה חיפוש לאיתור אובייקטים של שושלת לפי שם ורשימת הצעות שמציגה כמה אובייקטים של שושלת שעשויים לעניין אתכם. הדף כולל גם את המספרים הכוללים של הטבלאות, צינורות הנתונים והמשתמשים לאורך שרשרת ההעברה.
כדי לעבור לטבלה, לתצוגה או לעמודה מסוימת, מחפשים את האובייקט בשדה החיפוש או לוחצים על אחד מהאובייקטים המוצעים בדף הנחיתה.
בדיקת דף הצומת
כדי לבדוק את הצמתים בשרשרת ההעברה, לוחצים על אחת מהכרטיסיות הבאות.
הכרטיסייה 'זרימת נתונים'
בכרטיסייה Data Flow מוצג ייצוג חזותי של חלק מגרף השושלת. זהו דף ברירת המחדל כשצופים בטבלה או בעמודה בפעם הראשונה בשירות של שושלת הנתונים. בתרשים מוצג באופן חזותי איך הנתונים עוברים דרך מערכת המקור. הצמתים בגרף הזה מייצגים טבלאות או תצוגות, והקצוות בין הצמתים מייצגים נתונים שזורמים מהצמתים בצד ימין לצמתים בצד שמאל.
בכל טבלה בתרשים Data Flow מוצג השם הלא מלא שלה. כדי לראות את השם המוגדר במלואו של הטבלה עם התחילית של מסד הנתונים והסכימה, מעבירים את מצביע העכבר מעל הצומת כדי להציג את תיאור הכלי. כל טבלה מציינת את הסכימה שלה, כפי שמצוין על ידי הקו האנכי בצומת. כל הסכימות ב-lineage ממוינות לפי סדר אלפביתי ומוקצה להן צבע, כך שלטבלאות באותה סכימה יש פסים באותו צבע, ולטבלאות בסכימות עם שמות דומים יש פסים בצבעים דומים.
בכל צומת מוצג סמל שמציין את המאפיינים של הצומת:
- monitor: תצוגה, לא טבלה.
- cached: טבלה שתמיד עוברת רענון מלא (חיתוך ואז כתיבה מחדש). לוחצים על הסמל כדי לראות את הסקריפטים שצמודים לטבלה הזו.
- שמור במטמון: טבלה שלא תמיד מתעדכנת באופן מלא (היא נחתכת ואז נכתבת מחדש). לוחצים על הסמל כדי לראות סקריפטים שצמודים לטבלה הזו.
- timer: טבלה שהייתה קיימת לזמן קצר. מעבירים את הסמן מעל הסמל כדי לראות את משך הזמן שהטבלה הייתה קיימת.
- snowflake: טבלה שהכתיבה האחרונה שלה הייתה לפני יותר משבעה ימים, מה שמצביע על טבלה עם נתונים סטטיים או נתונים שנכתבים לעיתים רחוקות.
כדי לבדוק את האובייקטים בתרשים Data Flow:
- כדי לראות רשימה של עמודות בטבלה, לוחצים על טבלה. התצוגה הזו כוללת את השם של כל עמודה וגם את סוג הנתונים שלה, כפי שנקבע מתוך קובץ מטא-נתונים שסופק או כפי שניתן להסיק מתוך ה-SQL שמופיע ביומני השאילתות.
- כדי לראות את גרף שושלת הנתונים ברמת העמודה, לוחצים על עמודה. בתרשים של שושלת היוחסין ברמת העמודה, הקצוות מייצגים זרימות נתונים שמשפיעות על עמודת היעד.
כדי לראות פרטים על קצה, לוחצים על קצה בתרשים. התצוגה הזו כוללת קישורים לסקריפטים של SQL שגרמו לבעיה.
נוצר קו מקודקוד מקור לקודקוד יעד כשמשפט SQL מפנה לקודקוד המקור בזמן שהמשפט מחשב נתונים שמוכנסים לקודקוד היעד. בדרך כלל, זה כולל העברת נתונים מהמקור ליעד, אבל בכרטיסייה Data Flow מוצג גם קו כשהצומת של המקור נמצא בסעיף
WHEREאוGROUP BYשמשפיע על היעד. כדי לסנן רק העברות נתונים, לוחצים על הלחצן הצגת קצוות לא של נתונים בסרגל הכלים.
הכרטיסייה 'חיבורים'
בכרטיסייה Connections של צומת בשרשרת המקורות מוצגת רשימה של צמתים סמוכים בתרשים שרשרת המקורות. כברירת מחדל, הצמתים המקושרים ממוינים לפי המרחק של הנתיב הקצר ביותר מהצומת הנוכחי – צמתים שנדרשים פחות קצוות כדי להגיע אליהם מהצומת הנוכחי מופיעים ראשונים. אפשר לשנות את המיון באמצעות האפשרות מיון.
רשימת החיבורים כוללת כברירת מחדל צמתים במעלה הזרם (יצרן) ובמורד הזרם (צרכן) של הצומת הנוכחי. אפשר לשנות את המסנן הזה באמצעות אמצעי הבקרה סוג. בעמודה מרחק, צמתים שנמצאים במעלה הזרם של הצומת הנוכחי מוצגים עם חץ שמצביע כלפי מעלה, ועם המרחק של הנתיב הקצר ביותר לאחור אל הצומת הזה מהצומת הנוכחי. באופן דומה, צמתים שנמצאים במורד הזרם של הצומת הנוכחי מוצגים עם חץ שמצביע כלפי מטה, ועם המרחק של הנתיב הקצר ביותר קדימה אל הצומת הזה מהצומת הנוכחי. צומת יכול להיות גם במעלה הזרם וגם במורד הזרם של הצומת הנוכחי אם הוא חלק ממחזור.
כדי להוריד קובץ שמכיל את כל הצמתים שמוצגים, לוחצים על הורדת CSV.
כרטיסיית המשתמשים
בכרטיסייה Users של צומת מוצגים משתמשים שהפעילו סקריפטים שקוראים או כותבים את הצומת או צמתים שנמצאים במעלה הזרם או במורד הזרם שלו. כברירת מחדל, המשתמש שביצע את מספר הפעולות הנפרדות הגבוה ביותר מופיע ראשון. אפשר לשנות את המיון באמצעות האפשרות מיון.
כדי להוריד קובץ שמכיל את כל המשתמשים שמוצגים, לוחצים על הורדת CSV.
הכרטיסייה 'פייפליינים'
בכרטיסייה Pipelines של צומת מוצגים צינורות הנתונים שהריצו סקריפטים שקראו או כתבו את הצומת או צמתים שנמצאים במעלה או במורד הזרם שלו. כברירת מחדל, צינור הנתונים שביצע הכי הרבה פעולות נפרדות מופיע ראשון. אפשר לשנות את המיון באמצעות האפשרות מיון.
כדי להוריד קובץ שמכיל את כל צינורות הנתונים שמוצגים, לוחצים על הורדת קובץ CSV.
הכרטיסייה 'קוד'
בכרטיסייה Code של צומת מוצגים כל סקריפטים ה-SQL שנראו בקובצי הקלט שקוראים נתונים מהצומת או כותבים נתונים אליו. התיוגים של הצומת מודגשים בטקסט ה-SQL. לוחצים על תסריט כדי להרחיב את הטקסט המלא. אתם יכולים לשנות את הגדרות הסינון כדי לסנן את רשימת הסקריפטים שמוצגים.
כדי להוריד קובץ שמכיל את כל הסקריפטים שמוצגים, לוחצים על הורדת CSV.
בדיקת דף הקצה
כדי לעיין בקצוות הצמתים בתרשים השושלת, לוחצים על אחת מהכרטיסיות הבאות.
הכרטיסייה 'פרטים'
בכרטיסייה פרטים של קצה מוצגים פרדיקטים וקטגוריות שמתארים את הפעולות שבוצעו על ידי סקריפטים שגרמו לקצה.
פרדיקטים מסומנים כקודים בני שלושה חלקים שמופרדים באמצעות מקפים. החלק הראשון הוא r, שמציין שמקור הקצה הוא קשר, או a, שמציין שמקור הקצה הוא מאפיין. החלק השני הוא אחד מהקיצורים הבאים שמציין את האופן שבו צומת המקור השפיע על הנתונים בצומת היעד:
-
has: הקשר של המקור מכיל את מאפיין היעד. -
dat: המקור מעתיק או מעביר נתונים ליעד. -
res: המקור מסנן או מגביל את הקרדינליות של היעד בסעיף כמוWHERE,HAVINGאוJOIN ON. -
grp: המקור נמצא בסעיףGROUP BYשמשפיע על היעד.
החלק השלישי הוא גם r או a, שמציינים אם היעד של הקצה הוא קשר או מאפיין.
קטגוריות קצה יכולות לכלול את הדברים הבאים:
datpredicates:-
AGGREGATE: המקור שימש בחישוב מצטבר שכתב את היעד. -
EXACT_COPY: הנתונים ממקור הועתקו בשלמותם ליעד. -
FUNCTION: המקור שימש לחישוב היעד. -
IDENTITY_COPY: היעד לא חושב. היעד היה עותק מילולי של המקור ללא המרות או שינויים. -
PARTITION_PROMOTION: היעד מכיל נתונים מהמקור כתוצאה מקידום מחיצה של המקור ליעד. -
WEAK_COPY: הנתונים מהמקור הועתקו לפחות באופן חלקי ליעד.
-
respredicates:-
FILTER: המקור שימש בהשוואה שכתבה את היעד. -
KEY: נתונים מהמקור שימשו כמפתח בהשוואה של איחוד, שכתבה את היעד.
-
grppredicates:-
GROUP: הנתונים מהמקור שימשו כמפתח בסעיףGROUP BYשמשפיע על היעד.
-
הכרטיסייה 'קוד'
בכרטיסייה קוד של קצה מוצגים סקריפטים של SQL שגרמו לקצה הזה. צמתי המקור והיעד של הקצה מודגשים במקומות שבהם הם מוזכרים בטקסט ה-SQL.
המאמרים הבאים
- מריצים הערכת העברה כדי לבדוק את ההיתכנות של העברת מחסן הנתונים ל-BigQuery ואת היתרונות הפוטנציאליים של ההעברה.
- אפשר להשתמש בשירות התרגום של SQL, כמו כלי התרגום האינטראקטיבי של SQL, API התרגום וכלי התרגום של SQL באצווה, כדי להפוך את שאילתות ה-SQL ל-GoogleSQL באופן אוטומטי, כולל התאמה אישית של SQL באמצעות Gemini.