ניהול צינורות באמצעות מערכת לניהול גרסאות

בדף הזה מוסבר איך לנהל צינורות באמצעות בקרת מקור ב-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

כדי לקבל את ההרשאות שדרושות לשימוש בתכונה 'ניהול בקרת מקורות', צריך לבקש מהאדמין להקצות לכם בפרויקט אחד מהתפקידים המוגדרים מראש הבאים:

מידע נוסף על מתן תפקידים מופיע במאמר ניהול הגישה.

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

הגדרת מאגר Git

כדי ליצור מאגר Git ב-GitHub, פועלים לפי ההוראות שמפורטות במאמר יצירת מאגר.

מידע נוסף על אסימוני גישה אישיים ב-GitHub ובמערכות אחרות לבקרת גרסאות זמין בדפים הבאים:

חיבור מאגר Git ל-Cloud Data Fusion

ב-Cloud Data Fusion אפשר להגדיר ולחבר את מאגר Git בכרטיסייה Source Control Management (ניהול בקרת מקור) לכל מרחב שמות. כדי לקשר מרחב שמות למאגר Git, פועלים לפי השלבים הבאים:

המסוף

  1. ב-Cloud Data Fusion Studio, לוחצים על Menu (תפריט).
  2. לוחצים על Namespace admin (אדמין של מרחב שמות).
  3. בדף Namespace admin (אדמין של מרחב שמות), לוחצים על הכרטיסייה Source Control Management (ניהול בקרת מקור).
  4. לוחצים על קישור מאגר.
  5. מזינים את הפרטים הבאים:

    • ספק: בוחרים ספק שירות 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.
    • אופציונלי: שם משתמש: מזינים שם משתמש או בעלים לטוקן.
  6. לוחצים על אימות. מחכים שהחיבור יאומת.

  7. בסיום ההגדרה, לוחצים על שמירה וסגירה כדי לאשר את ההגדרה.

חיבור מאגר Git ל-Cloud Data Fusion.

‫API בארכיטקטורת REST

  1. יוצרים מפתח סודי ב-Cloud Data Fusion שמכיל את אסימון הגישה האישי.

  2. מריצים את הפקודה הבאה:

    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.
  3. מריצים את הפקודה הבאה:

    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 של המאגר שיש לקשר. משתמשים בכתובת URL‏ https – לדוגמה, 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, מבצעים את השלבים הבאים:

המסוף

  1. ב-Cloud Data Fusion Studio, לוחצים על Menu (תפריט).
  2. לוחצים על Namespace admin (אדמין של מרחב שמות).
  3. בדף Namespace admin (אדמין של מרחב שמות), לוחצים על הכרטיסייה Source Control Management (ניהול בקרת מקור).
  4. מאתרים את מאגר Git שרוצים לסנכרן איתו ולוחצים על Sync pipelines (סנכרון צינורות).
  5. לוחצים על הכרטיסייה Namespace pipelines.
  6. מחפשים את צינורות הנתונים שרוצים להעביר למאגר Git ובוחרים אותם.

    אם הגרסה האחרונה של צינור העיבוד נדחפת למאגר Git או נמשכת ממנו, הסטטוס Connected to Git מציג Connected. אם צינור הנתונים אף פעם לא נדחף ל-GitHub, הסטטוס Connected to Git (מחובר ל-Git) יהיה ריק (-).

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

  7. לוחצים על העברה למאגר.

  8. מזינים הודעת אישור ולוחצים על אישור.

    פעולת הדחיפה מתחילה ומוצגת הודעה שמציינת שהצינורות שנבחרו נדחפים למאגר המרוחק.

העברת צינורות מ-Cloud Data Fusion למאגר Git.

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

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

אפשר גם להעביר צינורות ספציפיים למאגר Git מסטודיו העיצוב של צינורות עיבוד הנתונים:

  1. ב-Cloud Data Fusion Studio, לוחצים על Menu (תפריט).
  2. לוחצים על רשימה.
  3. לוחצים על צינור העברת הנתונים שרוצים להעביר למאגר Git.
  4. בדף של צינור הנתונים, לוחצים על פעולות > העברה למאגר.
  5. מזינים הודעת אישור ולוחצים על אישור.

דחיפה של צינורות עיבוד נתונים מ-Pipeline Studio.

‫API בארכיטקטורת REST

  1. דחיפה של קבוצת צינורות מ-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
    }
    
  2. כדי לבדוק את הסטטוס של פעולת הדחיפה, מריצים את הפקודה הבאה:

    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 למרחב השמות, פועלים לפי השלבים הבאים:

המסוף

  1. ב-Cloud Data Fusion Studio, לוחצים על Menu (תפריט).
  2. לוחצים על Namespace admin (אדמין של מרחב שמות).
  3. בדף Namespace admin (אדמין של מרחב שמות), לוחצים על הכרטיסייה Source Control Management (ניהול בקרת מקור).
  4. מאתרים את מאגר Git שרוצים לסנכרן איתו ולוחצים על Sync pipelines (סנכרון צינורות).
  5. לוחצים על הכרטיסייה Repository pipelines. מוצגים כל צינורות הנתונים שמאוחסנים במאגר Git.
  6. מחפשים את צינורות הנתונים שרוצים למשוך ממאגר Git אל מרחב השמות של Cloud Data Fusion ובוחרים אותם.
  7. לוחצים על Pull from repository (שליפה ממאגר).

    פעולת המשיכה מתחילה ומוצגת הודעה שמציינת שהצינורות שנבחרו נמשכים מהמאגר המרוחק. ‫Cloud Data Fusion מחפש קובצי JSON בנתיב שהוגדר, ושולף אותם ומפריס אותם כצינורות ל-Cloud Data Fusion.

שליפת צינורות ממאגר Git אל Cloud Data Fusion.

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

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

אפשר גם לשלוף צינורות עיבוד נתונים ספציפיים ממאגר Git למרחב שמות מתוך סטודיו לתכנון צינורות עיבוד נתונים:

  1. ב-Cloud Data Fusion Studio, לוחצים על Menu (תפריט).
  2. לוחצים על רשימה.
  3. לוחצים על צינור הנתונים שרוצים לשלוף ממאגר Git.
  4. בדף של צינור הנתונים, לוחצים על פעולות > שליפה ממאגר.

שולפים צינורות עיבוד נתונים מ-Pipeline Studio.

‫API בארכיטקטורת REST

  1. שליפת קבוצה של צינורות ממאגר 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
    }
    
  2. כדי לבדוק את הסטטוס של פעולת המשיכה, מריצים את הפקודה הבאה:

    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 ממרחב שמות, מבצעים את השלבים הבאים:

המסוף

  1. ב-Cloud Data Fusion Studio, לוחצים על Menu.
  2. לוחצים על Namespace admin (אדמין של מרחב שמות).
  3. בדף Namespace admin (אדמין של מרחב שמות), לוחצים על הכרטיסייה Source Control Management (ניהול בקרת מקור).
  4. לצד הגדרת מאגר Git שרוצים למחוק, לוחצים על > מחיקה.

‫API בארכיטקטורת REST

מחיקת ההגדרה של מאגר Git:

curl -H "Authorization: Bearer $(gcloud auth print-access-token)"
${CDAP_ENDPOINT}/v3/namespaces/NAMESPACE_ID/repository -X DELETE

מחליפים את NAMESPACE_ID במזהה של מרחב השמות.

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