בדף הזה מוסבר איך לנהל צינורות באמצעות בקרת מקור ב-Cloud Data Fusion דרך מאגרי Git.
מידע על ניהול בקרת מקור
Cloud Data Fusion מספקת את היכולת לעצב חזותית צינורות עיבוד נתונים לשילובים של ETL ו-ELT. כדי לשפר את ניהול צינורות הנתונים בין סביבת הפיתוח לסביבת הייצור, אפשר להשתמש ב-Cloud Data Fusion כדי לנהל את צינורות הנתונים באמצעות GitHub ומערכות אחרות לניהול גרסאות.
ניהול בקרת המקור ב-Cloud Data Fusion מאפשר לכם לבצע את הפעולות הבאות:
- משלבים כל מרחב שמות של Cloud Data Fusion עם מערכת לניהול גרסאות.
- ניהול הערוצים במאגר Git מרכזי.
- בדיקה וביקורת של שינויים בפייפליין.
- ביטול השינויים בצינור המכירות.
- שיתוף פעולה יעיל עם הצוות תוך שמירה על בקרה מרכזית.
לפני שמתחילים
- ניהול בקרת מקור תומך בשילוב עם מאגרי GitHub, Bitbucket Server, Bitbucket Cloud ו-Gitlab.
- אין תמיכה ב-OAuth של GitHub.
- ניהול בקרת מקור תומך רק בצינורות להרצת אצווה.
- מערכת לניהול בקרת מקור תומכת רק בקובצי JSON של עיצוב צינורות להעלאה ולמשיכה של נתונים. אין תמיכה בהגדרות הפעלה.
- המגבלה על גודל המאגר המקושר היא 5 GB.
תפקידים והרשאות נדרשים
ניהול בקרת מקורות ב-Cloud Data Fusion מורכב משתי פעולות עיקריות:
- הגדרה של מאגרי בקרה של קוד המקור
- סנכרון צינורות עיבוד נתונים עם מאגרי Git באמצעות פעולות push ו-pull
כדי לקבל את ההרשאות שדרושות לשימוש בתכונה 'ניהול בקרת מקורות', צריך לבקש מהאדמין להקצות לכם בפרויקט אחד מהתפקידים המוגדרים מראש הבאים:
הגדרת מאגר בקרה של מקורות:
- Cloud Data Fusion Operator (
roles/datafusion.operator) - עריכה ב-Cloud Data Fusion (
roles/datafusion.editor) - אדמין ב-Cloud Data Fusion (
roles/datafusion.admin)
- Cloud Data Fusion Operator (
צינורות סנכרון באמצעות פעולת דחיפה או משיכה ממרחב שמות:
- Cloud Data Fusion Operator (
roles/datafusion.operator) - Cloud Data Fusion Developer (
roles/datafusion.developer) - עריכה ב-Cloud Data Fusion (
roles/datafusion.editor) - אדמין ב-Cloud Data Fusion (
roles/datafusion.admin)
- Cloud Data Fusion Operator (
מידע נוסף על מתן תפקידים מופיע במאמר ניהול הגישה.
יכול להיות שתוכלו לקבל את ההרשאות הנדרשות גם באמצעות תפקידים מוגדרים מראש אחרים.
הגדרת מאגר Git
כדי ליצור מאגר Git ב-GitHub, פועלים לפי ההוראות שמפורטות במאמר יצירת מאגר.
מידע נוסף על אסימוני גישה אישיים ב-GitHub ובמערכות אחרות לבקרת גרסאות זמין בדפים הבאים:
חיבור מאגר Git ל-Cloud Data Fusion
ב-Cloud Data Fusion אפשר להגדיר ולחבר את מאגר Git בכרטיסייה Source Control Management (ניהול בקרת מקור) לכל מרחב שמות. כדי לקשר מרחב שמות למאגר Git, פועלים לפי השלבים הבאים:
המסוף
- ב-Cloud Data Fusion Studio, לוחצים על Menu (תפריט).
- לוחצים על Namespace admin (אדמין של מרחב שמות).
- בדף Namespace admin (אדמין של מרחב שמות), לוחצים על הכרטיסייה Source Control Management (ניהול בקרת מקור).
- לוחצים על קישור מאגר.
מזינים את הפרטים הבאים:
- ספק: בוחרים ספק שירות Git, כמו GitHub או GitLab.
- כתובת ה-URL של המאגר: מזינים את כתובת ה-URL שאפשר לגשת אליה למאגר. ב-GitHub, כתובת ה-URL של המאגר היא
https://github.com/HOST/REPO. - Default branch (אופציונלי): מזינים את הענף ההתחלתי של Git. ההסתעפות הזו יכולה להיות שונה מהסתעפות ברירת המחדל שהוגדרה ב-GitHub. הענף הזה משמש לסנכרון צינורות, ללא קשר לענף ברירת המחדל ב-GitHub.
- קידומת לנתיב (אופציונלי): מזינים קידומת לשם של צינור העיבוד שתישמר במאגר Git. לדוגמה, אם שם צינור העיבוד הוא
DataFusionQuickStartואם מציינים את הקידומתnamespaceName, צינור העיבוד יישמר כ-namespaceName/DataFusionQuickStartבמאגר ה-Git. - סוג האימות: ב-Cloud Data Fusion אפשר להשתמש באסימון גישה מותאם אישית כסוג האימות. האפשרות הזו נבחרת אוטומטית.
- שם הטוקן: מזינים שם שאפשר לשייך לטוקן.
- אסימון: מזינים את האסימון שסופק על ידי מאגר GitHub.
- אופציונלי: שם משתמש: מזינים שם משתמש או בעלים לטוקן.
לוחצים על אימות. מחכים שהחיבור יאומת.
בסיום ההגדרה, לוחצים על שמירה וסגירה כדי לאשר את ההגדרה.

API בארכיטקטורת REST
יוצרים מפתח סודי ב-Cloud Data Fusion שמכיל את אסימון הגישה האישי.
מריצים את הפקודה הבאה:
curl -H "Authorization: Bearer $(gcloud auth print-access-token)" -H "Content-Type: application/json" ${CDAP_ENDPOINT}/v3/namespaces/NAMESPACE_ID/securekeys/PASSWORD_SECRET_KEY -X PUT -d '{ "description": "Example Secure Key","data": "PERSONAL_ACCESS_TOKEN"}'מחליפים את מה שכתוב בשדות הבאים:
-
NAMESPACE_ID: מזהה מרחב השמות. -
PASSWORD_SECRET_KEY: השם של המפתח הסודי שמכיל את אסימון הגישה האישי. -
PERSONAL_ACCESS_TOKEN: אסימון גישה אישי של GitHub.
-
מריצים את הפקודה הבאה:
curl -H "Authorization: Bearer $(gcloud auth print-access-token)" -H "Content-Type: application/json" ${CDAP_ENDPOINT}/v3/namespaces/NAMESPACE_ID/repository -X PUT -d '{"test": "TEST_ONLY", "config": {"provider": "PROVIDER_TYPE", "link": "REPO_URL", "defaultBranch": "DEFAULT_BRANCH", "pathPrefix": "PATH_TO_DIRECTORY", "auth": {"type": "AUTH_TYPE", "patConfig": {"passwordName": "PASSWORD_SECRET_KEY", "username": "USER_NAME"}}}}'מחליפים את מה שכתוב בשדות הבאים:
-
NAMESPACE_ID: מזהה מרחב השמות. -
TEST_ONLY: מגדירים את הערךtrueאם רוצים רק לאמת את ההגדרה ולא להוסיף אותה. -
PROVIDER_TYPE: שם ספק Git, כלומרGITHUB. -
REPO_URL: כתובת ה-URL של המאגר שיש לקשר. משתמשים בכתובת URLhttps– לדוגמה,https://github.com/user/repo.git. -
DEFAULT_BRANCH: הענף שמשמש לפעולות push ו-pull. אם לא מציינים ענף, המערכת משתמשת בענף ברירת המחדל שהוגדר במאגר – למשל, הענף הראשי. -
PATH_TO_DIRECTORY: הנתיב לספרייה במאגר שבה מאוחסנים קובצי התצורה. -
AUTH_TYPE: סוג האימות. יש תמיכה רק ב-PAT. מידע נוסף על אסימון גישה אישי עם הרשאות מפורטות ב-GitHub -
PASSWORD_SECRET_KEY: השם של המפתח הסודי שמכיל את אסימון הגישה האישי לסוג האימותPAT. -
USER_NAME: אפשר להשמיט את הערך הזה לסוג האימותPAT.
-
סנכרון צינורות Cloud Data Fusion עם מאגר מרוחק
אחרי שמגדירים מאגר Git עם מרחב שמות, אפשר לבצע פעולות push ו-pull של צינורות, ולסנכרן אותם עם מאגר Git.
העברת צינורות מ-Cloud Data Fusion למאגר Git
כדי לסנכרן כמה צינורות להעברת נתונים שנפרסו ממרחב שמות למאגר Git, מבצעים את השלבים הבאים:
המסוף
- ב-Cloud Data Fusion Studio, לוחצים על Menu (תפריט).
- לוחצים על Namespace admin (אדמין של מרחב שמות).
- בדף Namespace admin (אדמין של מרחב שמות), לוחצים על הכרטיסייה Source Control Management (ניהול בקרת מקור).
- מאתרים את מאגר Git שרוצים לסנכרן איתו ולוחצים על Sync pipelines (סנכרון צינורות).
- לוחצים על הכרטיסייה Namespace pipelines.
מחפשים את צינורות הנתונים שרוצים להעביר למאגר Git ובוחרים אותם.
אם הגרסה האחרונה של צינור העיבוד נדחפת למאגר Git או נמשכת ממנו, הסטטוס Connected to Git מציג
Connected. אם צינור הנתונים אף פעם לא נדחף ל-GitHub, הסטטוס Connected to Git (מחובר ל-Git) יהיה ריק (-).אם פורסים גרסה חדשה יותר של צינור שכבר מסונכרן עם מאגר Git, הסטטוס מחובר ל-Git משתנה מ-
Connectedלריק (-).לוחצים על העברה למאגר.
מזינים הודעת אישור ולוחצים על אישור.
פעולת הדחיפה מתחילה ומוצגת הודעה שמציינת שהצינורות שנבחרו נדחפים למאגר המרוחק.

כשפעולת הדחיפה מסתיימת בהצלחה, מוצגת הודעת הצלחה שמציינת את מספר צינורות האספקה שנדחפו למאגר המרוחק.
אם פעולת הדחיפה נכשלת, בודקים את צינור העברת הנתונים ב-GitHub כדי לראות אם זו הגרסה האחרונה. לכל פעולת דחיפה שנכשלה, מוצגת הודעת שגיאה. כדי לראות את פרטי השגיאה, מרחיבים את הודעת השגיאה.
אפשר גם להעביר צינורות ספציפיים למאגר Git מסטודיו העיצוב של צינורות עיבוד הנתונים:
- ב-Cloud Data Fusion Studio, לוחצים על Menu (תפריט).
- לוחצים על רשימה.
- לוחצים על צינור העברת הנתונים שרוצים להעביר למאגר Git.
- בדף של צינור הנתונים, לוחצים על פעולות > העברה למאגר.
- מזינים הודעת אישור ולוחצים על אישור.

API בארכיטקטורת REST
דחיפה של קבוצת צינורות מ-Cloud Data Fusion למאגר Git:
curl -H "Authorization: Bearer $(gcloud auth print-access-token)" -H "Content-Type: application/json" ${CDAP_ENDPOINT}/v3/namespaces/NAMESPACE_ID/repository/apps/push -X POST -d '{"apps": ["PIPELINE_NAME_1", "PIPELINE_NAME_2"]}, "commitMessage": "COMMIT_MESSAGE"'מחליפים את מה שכתוב בשדות הבאים:
-
NAMESPACE_ID: מזהה מרחב השמות. -
PIPELINE_NAME_1,PIPELINE_NAME_2: שמות צינורות העיבוד שרוצים להעלות. -
COMMIT_MESSAGE: הודעת השמירה של ה-Git commit.
התשובה מכילה את המזהה של פעולת הדחיפה. לדוגמה:
RESPONSE { "id": OPERATION_ID }-
כדי לבדוק את הסטטוס של פעולת הדחיפה, מריצים את הפקודה הבאה:
curl -H "Authorization: Bearer $(gcloud auth print-access-token)" -H "Content-Type: application/json" ${CDAP_ENDPOINT}/v3/namespaces/NAMESPACE_ID/operations/OPERATION_IDמחליפים את מה שכתוב בשדות הבאים:
-
NAMESPACE_ID: מזהה מרחב השמות. -
OPERATION_ID: מזהה הפעולה שהתקבל מפעולת הדחיפה.
התשובה מכילה את הסטטוס של פעולת הדחיפה. לדוגמה:
RESPONSE { "id": OPERATION_ID "done": True/False "status": STARTING/RUNNING/SUCCEEDED/FAILED "error": {"message": ERROR_MESSAGE, "details":[{"resourceUri": RESOURCE, "message": ERROR_MESSAGE}]} }כדי לבדוק אם פעולת הדחיפה הושלמה, בודקים את המאפיין
doneבתשובה. אם הפעולה נכשלה, אפשר לבדוק את המאפייןerrorלקבלת פרטים נוספים.-
שליפת צינורות ממאגר Git אל Cloud Data Fusion
כדי לסנכרן כמה צינורות ממאגר Git למרחב השמות, פועלים לפי השלבים הבאים:
המסוף
- ב-Cloud Data Fusion Studio, לוחצים על Menu (תפריט).
- לוחצים על Namespace admin (אדמין של מרחב שמות).
- בדף Namespace admin (אדמין של מרחב שמות), לוחצים על הכרטיסייה Source Control Management (ניהול בקרת מקור).
- מאתרים את מאגר Git שרוצים לסנכרן איתו ולוחצים על Sync pipelines (סנכרון צינורות).
- לוחצים על הכרטיסייה Repository pipelines. מוצגים כל צינורות הנתונים שמאוחסנים במאגר Git.
- מחפשים את צינורות הנתונים שרוצים למשוך ממאגר Git אל מרחב השמות של Cloud Data Fusion ובוחרים אותם.
לוחצים על Pull from repository (שליפה ממאגר).
פעולת המשיכה מתחילה ומוצגת הודעה שמציינת שהצינורות שנבחרו נמשכים מהמאגר המרוחק. Cloud Data Fusion מחפש קובצי JSON בנתיב שהוגדר, ושולף אותם ומפריס אותם כצינורות ל-Cloud Data Fusion.

כשהפעולה pull מסתיימת בהצלחה, מוצגת הודעת הצלחה שמציינת את מספר צינורות הנתונים שנמשכו מהמאגר המרוחק.
אם פעולת השליפה נכשלת, מוצגת הודעת שגיאה. כדי לראות את פרטי השגיאה, מרחיבים את הודעת השגיאה.
אפשר גם לשלוף צינורות עיבוד נתונים ספציפיים ממאגר Git למרחב שמות מתוך סטודיו לתכנון צינורות עיבוד נתונים:
- ב-Cloud Data Fusion Studio, לוחצים על Menu (תפריט).
- לוחצים על רשימה.
- לוחצים על צינור הנתונים שרוצים לשלוף ממאגר Git.
- בדף של צינור הנתונים, לוחצים על פעולות > שליפה ממאגר.

API בארכיטקטורת REST
שליפת קבוצה של צינורות ממאגר Git אל Cloud Data Fusion:
curl -H "Authorization: Bearer $(gcloud auth print-access-token)" -H "Content-Type: application/json" ${CDAP_ENDPOINT}/v3/namespaces/NAMESPACE_ID/repository/apps/pull -X POST -d '{"apps": ["PIPELINE_NAME_1", "PIPELINE_NAME_2"]}'מחליפים את מה שכתוב בשדות הבאים:
-
NAMESPACE_ID: מזהה מרחב השמות. -
PIPELINE_NAME_1,PIPELINE_NAME_2: שמות צינורות העיבוד שרוצים למשוך.
התשובה מכילה את המזהה של פעולת השליפה. לדוגמה:
RESPONSE { "id": OPERATION_ID }-
כדי לבדוק את הסטטוס של פעולת המשיכה, מריצים את הפקודה הבאה:
curl -H "Authorization: Bearer $(gcloud auth print-access-token)" -H "Content-Type: application/json" ${CDAP_ENDPOINT}/v3/namespaces/NAMESPACE_ID/operations/OPERATION_IDמחליפים את מה שכתוב בשדות הבאים:
-
NAMESPACE_ID: מזהה מרחב השמות. -
OPERATION_ID: מזהה הפעולה שהתקבל מפעולת המשיכה.
התשובה מכילה את הסטטוס של פעולת השליפה. לדוגמה:
RESPONSE { "id": OPERATION_ID "done": True/False "status": STARTING/RUNNING/SUCCEEDED/FAILED "error": {"message": ERROR_MESSAGE, "details":[{"resourceUri": RESOURCE, "message": ERROR_MESSAGE}]} }כדי לבדוק אם פעולת המשיכה הושלמה, בודקים את המאפיין
doneבתגובה. אם הפעולה נכשלה, אפשר לבדוק את המאפייןerrorלקבלת פרטים נוספים.-
מחיקת ההגדרה של מאגר Git
כדי למחוק את ההגדרה של מאגר Git ממרחב שמות, מבצעים את השלבים הבאים:
המסוף
- ב-Cloud Data Fusion Studio, לוחצים על Menu.
- לוחצים על Namespace admin (אדמין של מרחב שמות).
- בדף Namespace admin (אדמין של מרחב שמות), לוחצים על הכרטיסייה Source Control Management (ניהול בקרת מקור).
- לצד הגדרת מאגר Git שרוצים למחוק, לוחצים על > מחיקה.
API בארכיטקטורת REST
מחיקת ההגדרה של מאגר Git:
curl -H "Authorization: Bearer $(gcloud auth print-access-token)"
${CDAP_ENDPOINT}/v3/namespaces/NAMESPACE_ID/repository -X DELETE
מחליפים את NAMESPACE_ID במזהה של מרחב השמות.