ייבוא מטא-נתונים באמצעות צינור עיבוד נתונים בהתאמה אישית

במאמר הזה מוסבר איך לייבא מטא-נתונים ממערכת צד שלישי אל Knowledge Catalog (לשעבר Dataplex Universal Catalog) באמצעות שיטות של metadata import API וצינור משלכם. מטא-נתונים של Knowledge Catalog מורכבים מרשומות וממאפיינים שלהן.

אם אתם רוצים להשתמש בצינור עיבוד נתונים מנוהל לארגון כדי לחלץ ולייבא מטא-נתונים, מומלץ להשתמש בצינור עיבוד נתונים מנוהל לקישוריות. באמצעות צינור עיבוד נתונים מנוהל לקישוריות, אתם יכולים להשתמש במחבר משלכם שחולץ מטא-נתונים ומפיק פלט בפורמט שאפשר להשתמש בו כקלט בשיטות של Metadata Import API (קובץ ייבוא המטא-נתונים). לאחר מכן, אתם משתמשים ב-Workflows כדי לארגן את המשימות בצינור עיבוד הנתונים. Google Cloud

אפשר להריץ את סוגי משימות הייבוא הבאים של מטא-נתונים:

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

שלבים כלליים

כדי לייבא מטא-נתונים באמצעות Metadata Import API, פועלים לפי השלבים הכלליים הבאים:

  1. קובעים את היקף העבודה.

    בנוסף, חשוב להבין איך Knowledge Catalog מיישם את לוגיקת ההשוואה ואת מצב הסנכרון של הרשומות וההיבטים.

  2. יוצרים קובץ אחד או יותר של ייבוא מטא-נתונים שמגדירים את הנתונים לייבוא.

  3. שומרים את קובצי ייבוא המטא-נתונים בקטגוריה של Cloud Storage.

  4. מריצים משימה של ייבוא מטא-נתונים.

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

לפני שמתחילים

לפני שמייבאים מטא-נתונים, צריך להשלים את המשימות שבקטע הזה.

התפקידים הנדרשים

כדי לוודא שלחשבון השירות של Knowledge Catalog יש את ההרשאות הנדרשות לגישה לקטגוריה של Cloud Storage, צריך לבקש מהאדמין לתת לחשבון השירות של Knowledge Catalog את תפקיד ה-IAM 'צפייה באובייקט אחסון' (roles/storage.objectViewer) ואת ההרשאה storage.buckets.get בקטגוריה.

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

  • שינוי של רשומות וההיבטים שלהן במשימת מטא-נתונים של סנכרון רשומות מלא:
    • Dataplex Entry Type User (roles/dataplex.entryTypeUser) on the entry type or the project where the entry type is defined
    • Dataplex Aspect Type User (roles/dataplex.aspectTypeUser) בסוג ההיבט או בפרויקט שבו מוגדר סוג ההיבט
  • שינוי של היבטים נדרשים במשימת מטא-נתונים של היבט בלבד:
  • שינוי של היבטים אופציונליים בעבודת מטא-נתונים מסוג aspect-only: Dataplex Aspect Type User (roles/dataplex.aspectTypeUser) בהיבט או בפרויקט שבו ההיבט מוגדר. הערה: כשמשנים מאפיינים אופציונליים במשימת מטא-נתונים של מאפיין בלבד, לא צריך הרשאות לסוג הרשומה המשויך.
  • יצירת משימות לייבוא מטא-נתונים:
  • הצגת משימות של מטא-נתונים: Dataplex Metadata Job Viewer (roles/dataplex.metadataJobViewer) בפרויקט
  • יצירה, צפייה וביטול של משימות מטא-נתונים: בעלים של משימת מטא-נתונים ב-Dataplex (roles/dataplex.metadataJobOwner) בפרויקט

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

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

יצירת Google Cloud משאבים

מכינים את המשאבים הבאים של Google Cloud :

  1. יוצרים קבוצות של רשומות לרשומות שרוצים לייבא.
  2. יוצרים סוגי מאפיינים למאפיינים שרוצים לייבא.
  3. יוצרים סוגי רשומות לרשומות שרוצים לייבא.
  4. אם אתם מריצים משימת מטא-נתונים של היבט בלבד, אתם צריכים ליצור רשומות להיבטים שאתם רוצים לייבא.
  5. יוצרים קטגוריה של Cloud Storage כדי לאחסן את קובצי ייבוא המטא-נתונים.

המרכיבים של משימת ייבוא מטא-נתונים

כשמייבאים מטא-נתונים, חשוב לשים לב לרכיבים הבאים של עבודת מטא-נתונים:

  • היקף המשרה: קבוצות הרשומות, סוגי הרשומות וסוגי ההיבטים שרוצים לכלול במשרה.
  • מצב סנכרון: איך הרשומות וההיבטים במשימה מתעדכנים.
  • קובץ לייבוא מטא-נתונים: קובץ שמגדיר את הערכים שיוגדרו לרשומות ולמאפיינים בעבודה. אפשר לספק כמה קבצים לייבוא מטא-נתונים באותו תהליך לייבוא מטא-נתונים. שומרים את הקבצים ב-Cloud Storage.
  • לוגיקת השוואה: איך Knowledge Catalog קובע אילו רשומות והיבטים לשנות.

היקף המשרה

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

כדי להגדיר את היקף העבודה, צריך לפעול לפי ההנחיות הבאות:

  • קבוצות של רשומות: מציינים קבוצה אחת או יותר של רשומות שרוצים לכלול בעבודה. העבודה משנה רק את הרשומות וההיבטים ששייכים לקבוצות הרשומות האלה. קבוצות הרשומות והעבודה צריכות להיות באותו אזור.

  • סוגי רשומות: מציינים סוג רשומה אחד או יותר שייכללו במשימה. המשימה משנה רק את הרשומות וההיבטים ששייכים לסוגי הרשומות האלה. המיקום של סוג הרשומה חייב להיות זהה למיקום של המשימה, או שסוג הרשומה חייב להיות גלובלי.

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

היקף המשימה חייב לכלול את כל סוגי הרשומות וסוגי ההיבטים שציינתם בקובץ ייבוא המטא-נתונים.

כשיוצרים משימה של מטא-נתונים, מציינים את היקף המשימה.

מצב סנכרון

מצב הסנכרון מציין איך הרשומות וההיבטים במשימת ייבוא של מטא-נתונים מתעדכנים. אתם מציינים מצב סנכרון גם לרשומות וגם להיבטים. בהתאם למשאבים שרוצים לייבא, נתמכים השילובים הבאים של מצבי סנכרון.

מטרה מצב סנכרון של רשומות מצב סנכרון של יחס גובה-רוחב תוצאות
ייבוא רשומות וההיבטים שלהן FULL INCREMENTAL

כל הרשומות בהיקף העבודה ישונו.

אם רשומה קיימת ב-Knowledge Catalog אבל לא נכללת בקובץ ייבוא המטא-נתונים, הרשומה נמחקת כשמריצים את משימת המטא-נתונים.

היבט משתנה רק אם קובץ ייבוא המטא-נתונים כולל הפניה להיבט בשדה updateMask ובשדה aspectKeys. במאמר מבנה של פריט ייבוא מוסבר על מבנה הפריטים.

ייבוא של היבטים בלבד NONE INCREMENTAL

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

מטא-נתונים אחרים ששייכים לרשומות בהיקף המשרה לא משתנים.

כשיוצרים משימת מטא-נתונים, מציינים את מצב הסנכרון.

קובץ ייבוא של מטא-נתונים

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

ההנחיות הכלליות הבאות חלות על כל המקרים:

  • אפשר לספק כמה קובצי ייבוא של מטא-נתונים באותו תהליך ייבוא של מטא-נתונים.
  • כשמריצים משימה של סנכרון מלא של מטא-נתונים של רשומות, הרשומות שמספקים בקובץ מחליפות לחלוטין את כל הרשומות הקיימות של כל המשאבים שנכללים בהיקף המשימה. המשמעות היא שצריך לכלול ערכים לכל הרשומות במשימה, ולא רק את הערכים שרוצים להוסיף או לעדכן. כדי לקבל רשימה של הרשומות הנוכחיות בפרויקט שלכם ולהשתמש בה כנקודת התחלה, משתמשים בשיטת entries.list API.

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

  • כל הערכים וההיבטים שאתם כוללים בקובץ צריכים להיות שייכים לקבוצות של רשומות, לסוגי רשומות ולסוגי היבטים שאתם מגדירים בהיקף המשימה.

כדי ליצור קובץ לייבוא מטא-נתונים, צריך לפעול לפי ההנחיות המפורטות בקטעים הבאים.

מבנה הקובץ

כל שורה בקובץ ייבוא המטא-נתונים מכילה אובייקט JSON שתואם לפריט ייבוא אחד. פריט ייבוא הוא אובייקט שמתאר את הערכים שצריך לשנות עבור רשומה וההיבטים שמצורפים אליה.

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

קובץ לייבוא מטא-נתונים עם תו מעבר לשורה בין כל פריט לייבוא נראה כמו הדוגמה הבאה:

{ "entry": { "name": "entry 1", #Information about entry 1 }
{ "entry": { "name": "entry 2", #Information about entry 2 }

המבנה של פריט ייבוא

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

{
  "entry": {
    "name": "ENTRY_NAME",
    "entryType": "ENTRY_TYPE",
    "entrySource": {
      "resource": "RESOURCE",
      "system": "SYSTEM",
      "platform": "PLATFORM",
      "displayName": "DISPLAY_NAME",
      "description": "DESCRIPTION",
      "createTime": "ENTRY_CREATE_TIMESTAMP",
      "updateTime": "ENTRY_UPDATE_TIMESTAMP"
    },
    "aspects": {
      "ASPECT": {
        "data": {
          "KEY": "VALUE"
        },
        "aspectSource": {
          "createTime": "ASPECT_CREATE_TIMESTAMP",
          "updateTime": "ASPECT_UPDATE_TIMESTAMP"
        }
      },
      # Additional aspect maps
    },
    "parentEntry": "PARENT_ENTRY",
    "fullyQualifiedName": "FULLY_QUALIFIED_NAME"
  },
  "updateMask": "UPDATE_MASK_FIELDS",
  "aspectKeys": [
    "ASPECT_KEY",
    # Additional aspect keys
  ],
}

מחליפים את מה שכתוב בשדות הבאים:

  • entry: מידע על רשומה וההיבטים שמצורפים אליה. במשימת ייבוא של מטא-נתונים של היבטים בלבד, Knowledge Catalog מתעלם מכל השדות האופציונליים של רשומה, חוץ ממפות ההיבטים.

    • ENTRY_NAME: שם המשאב היחסי של הרשומה, בפורמט projects/PROJECT_ID_OR_NUMBER/locations/LOCATION_ID/entryGroups/ENTRY_GROUP_ID/entries/ENTRY_ID.
    • ENTRY_TYPE: שם המשאב היחסי של סוג הרשומה ששימש ליצירת הרשומה הזו, בפורמט projects/PROJECT_ID_OR_NUMBER/locations/LOCATION_ID/entryTypes/ENTRY_TYPE_ID.
    • entrySource: מידע ממערכת המקור על משאב הנתונים שמיוצג על ידי הרשומה:
      • RESOURCE: השם של המשאב במערכת המקור.
      • SYSTEM: השם של מערכת המקור.
      • PLATFORM: הפלטפורמה שמכילה את מערכת המקור.
      • DISPLAY_NAME: שם מוצג ידידותי למשתמש.
      • DESCRIPTION: תיאור של הרשומה.
      • ENTRY_CREATE_TIMESTAMP: השעה שבה הרשומה נוצרה במערכת המקור.
      • ENTRY_UPDATE_TIMESTAMP: השעה שבה הרשומה עודכנה במערכת המקור.
    • aspects: ההיבטים שמצורפים לרשומה. האובייקט aspect והנתונים שלו נקראים מפת היבטים.

      • ASPECT: היבט שמצורף לרשומה. בהתאם לאופן שבו ההיבט מצורף לרשומה, משתמשים באחד מהפורמטים הבאים:

        • אם ההיבט מצורף ישירות לרשומה, צריך לציין את שם המשאב היחסי של סוג ההיבט בפורמט PROJECT_ID_OR_NUMBER.LOCATION_ID.ASPECT_TYPE_ID.
        • אם ההיבט מצורף לנתיב של הרשומה, צריך לספק את הנתיב של סוג ההיבט, בפורמט PROJECT_ID_OR_NUMBER.LOCATION_ID.ASPECT_TYPE_ID@PATH.
      • KEY ו-VALUE: התוכן של ההיבט, בהתאם לתבנית המטא-נתונים של סוג ההיבט. התוכן צריך להיות מקודד ב-UTF-8. הגודל המקסימלי של השדה הוא 120 KB. חובה להשתמש במילון data, גם אם הוא ריק.

      • ASPECT_CREATE_TIMESTAMP: השעה שבה נוצר ההיבט במערכת המקור.

      • ASPECT_UPDATE_TIMESTAMP: השעה שבה ההיבט עודכן במערכת המקור.

    • PARENT_ENTRY: שם המשאב של רשומת ההורה.

    • FULLY_QUALIFIED_NAME: שם לרשומה שאפשר להפנות אליה ממערכת חיצונית. שמות מלאים

  • UPDATE_MASK_FIELDS: השדות לעדכון, בנתיבים שקשורים למשאב Entry. מפרידים בין השדות באמצעות פסיק.

    בעבודת סנכרון מלאה של רשומות, Knowledge Catalog כולל את הנתיבים של כל השדות של רשומה שאפשר לשנות, כולל היבטים. המערכת מתעלמת מהשדה updateMask כשיוצרים או יוצרים מחדש רשומה.

    במשימת מטא-נתונים של היבט בלבד, מגדירים את הערך הזה ל-aspects.

  • ASPECT_KEY: ההיבטים שרוצים לשנות. תומך בתחביר הבא:

    • ASPECT_TYPE_REFERENCE: תואם לסוג ההיבט של היבטים שמצורפים ישירות לרשומה.
    • ASPECT_TYPE_REFERENCE@PATH: תואם לסוג ההיבט ולנתיב שצוין.
    • ASPECT_TYPE_REFERENCE@*: תואם לסוג ההיבט של כל הנתיבים.
    • *@PATH: תואם לכל סוגי ההיבטים בנתיב שצוין.

    מחליפים את ASPECT_TYPE_REFERENCE בהפניה לסוג ההיבט בפורמט PROJECT_ID_OR_NUMBER.LOCATION_ID.ASPECT_TYPE_ID.

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

הדרישות לגבי קבצים

קובץ ייבוא המטא-נתונים צריך לעמוד בדרישות הבאות:

  • הקובץ צריך להיות בפורמט JSON Lines, שהוא קובץ JSON שמופרד בתו שורה חדשה. צריך להשתמש בתו שורה חדשה (0x0a) כדי להפריד בין כל פריט לייבוא.
  • הקובץ צריך להיות בקידוד תווים UTF-8.
  • סיומות הקבצים הנתמכות הן .jsonl ו-.json.
  • גודל הקובץ של כל קובץ ייבוא מטא-נתונים צריך להיות קטן מ-1 GiB. הגודל הכולל המקסימלי של כל הנתונים במשימת המטא-נתונים הוא 3 GB. זה כולל את כל הקבצים והמטא-נתונים שמשויכים לעבודה.
  • סוגי הרשומות וסוגי ההיבטים שאתם מציינים בקובץ צריכים להיות חלק מההיקף של משימת המטא-נתונים.
  • צריך להעלות את הקובץ לקטגוריה של Cloud Storage. לא שומרים את הקובץ בתיקייה בשם CLOUD_STORAGE_URI/deletions/.

לוגיקת השוואה

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

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

לוגיקת ההשוואה משתנה בהתאם לסוג של עבודת ייבוא המטא-נתונים שמריצים.

משימת סנכרון מלאה של רשומות

במטלת סנכרון מלא של מטא-נתונים של רשומות, לכל רשומה שכלולה בהיקף המטלה, Knowledge Catalog מבצע את אחת מהפעולות הבאות:

  • יצירת רשומה והיבטים מצורפים. אם קובץ ייבוא המטא-נתונים כולל רשומה שלא קיימת בפרויקט, Knowledge Catalog יוצר את הרשומה וההיבטים המצורפים.
  • מחיקת רשומה וההיבטים שמצורפים אליה. אם רשומה קיימת בפרויקט, אבל קובץ ייבוא המטא-נתונים לא כולל את הרשומה, המערכת של Knowledge Catalog מוחקת את הרשומה ואת ההיבטים שמצורפים אליה מהפרויקט.
  • עדכון של רשומה וההיבטים שמצורפים אליה. אם רשומה קיימת גם בקובץ ייבוא המטא-נתונים וגם בפרויקט, Knowledge Catalog מעריך את חותמות הזמן של מקור הרשומה ואת חותמות הזמן של מקור ההיבט שמשויכות לרשומה כדי לקבוע אילו ערכים לשנות. לאחר מכן, Knowledge Catalog מבצע פעולה אחת או יותר מהפעולות הבאות:

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

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

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

עבודה שקשורה רק ליחס גובה-רוחב

במטלת מטא-נתונים של היבט בלבד, לגבי כל היבט שכלול בהיקף המטלה, Knowledge Catalog מבצע אחת מהפעולות הבאות:

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

    אי אפשר למחוק מאפיינים נדרשים.

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

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

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

יצירת קובץ לייבוא מטא-נתונים

לפני שמייבאים מטא-נתונים, צריך ליצור קובץ ייבוא של מטא-נתונים בשביל העבודה. כך עושים זאת:

  1. מכינים קובץ לייבוא מטא-נתונים לפי ההנחיות שמתוארות בחלקים הקודמים של המאמר הזה.
  2. העלאת הקובץ לקטגוריה של Cloud Storage.

אפשר לספק כמה קובצי ייבוא של מטא-נתונים באותו תהליך ייבוא של מטא-נתונים. כדי לספק כמה קבצים, שומרים את הקבצים באותה קטגוריה של Cloud Storage. כשמריצים את העבודה, מציינים באקט ולא קובץ ספציפי. ב-Knowledge Catalog מתבצע ייבוא של מטא-נתונים מכל הקבצים שנשמרים בדלי, כולל קבצים שנמצאים בתיקיות משנה.

הפעלת משימה של ייבוא מטא-נתונים

אחרי שיוצרים קובץ לייבוא מטא-נתונים, מריצים את משימת ייבוא המטא-נתונים.

C#‎

C#

לפני שמנסים את הדוגמה הזו, צריך לפעול לפי C#ההוראות להגדרה במאמר מדריך למתחילים לעבודה עם Knowledge Catalog באמצעות ספריות לקוח. מידע נוסף מופיע במאמרי העזרה של Knowledge Catalog C# API.

כדי לבצע אימות לקטלוג הידע, צריך להגדיר את Application Default Credentials. מידע נוסף זמין במאמר הגדרת אימות לסביבת פיתוח מקומית.

using Google.Api.Gax.ResourceNames;
using Google.Cloud.Dataplex.V1;
using Google.LongRunning;

public sealed partial class GeneratedCatalogServiceClientSnippets
{
    /// <summary>Snippet for CreateMetadataJob</summary>
    /// <remarks>
    /// This snippet has been automatically generated and should be regarded as a code template only.
    /// It will require modifications to work:
    /// - It may require correct/in-range values for request initialization.
    /// - It may require specifying regional endpoints when creating the service client as shown in
    ///   https://cloud.google.com/dotnet/docs/reference/help/client-configuration#endpoint.
    /// </remarks>
    public void CreateMetadataJobRequestObject()
    {
        // Create client
        CatalogServiceClient catalogServiceClient = CatalogServiceClient.Create();
        // Initialize request argument(s)
        CreateMetadataJobRequest request = new CreateMetadataJobRequest
        {
            ParentAsLocationName = LocationName.FromProjectLocation("[PROJECT]", "[LOCATION]"),
            MetadataJob = new MetadataJob(),
            MetadataJobId = "",
            ValidateOnly = false,
        };
        // Make the request
        Operation<MetadataJob, OperationMetadata> response = catalogServiceClient.CreateMetadataJob(request);

        // Poll until the returned long-running operation is complete
        Operation<MetadataJob, OperationMetadata> completedResponse = response.PollUntilCompleted();
        // Retrieve the operation result
        MetadataJob result = completedResponse.Result;

        // Or get the name of the operation
        string operationName = response.Name;
        // This name can be stored, then the long-running operation retrieved later by name
        Operation<MetadataJob, OperationMetadata> retrievedResponse = catalogServiceClient.PollOnceCreateMetadataJob(operationName);
        // Check if the retrieved long-running operation has completed
        if (retrievedResponse.IsCompleted)
        {
            // If it has completed, then access the result
            MetadataJob retrievedResult = retrievedResponse.Result;
        }
    }
}

המשך

Go

לפני שמנסים את הדוגמה הזו, צריך לפעול לפי Goההוראות להגדרה במאמר מדריך למתחילים לעבודה עם Knowledge Catalog באמצעות ספריות לקוח. מידע נוסף מופיע במאמרי העזרה של Knowledge Catalog Go API.

כדי לבצע אימות לקטלוג הידע, צריך להגדיר את Application Default Credentials. מידע נוסף זמין במאמר הגדרת אימות לסביבת פיתוח מקומית.


//go:build examples

package main

import (
	"context"

	dataplex "cloud.google.com/go/dataplex/apiv1"
	dataplexpb "cloud.google.com/go/dataplex/apiv1/dataplexpb"
)

func main() {
	ctx := context.Background()
	// This snippet has been automatically generated and should be regarded as a code template only.
	// It will require modifications to work:
	// - It may require correct/in-range values for request initialization.
	// - It may require specifying regional endpoints when creating the service client as shown in:
	//   https://pkg.go.dev/cloud.google.com/go#hdr-Client_Options
	c, err := dataplex.NewCatalogClient(ctx)
	if err != nil {
		// TODO: Handle error.
	}
	defer c.Close()

	req := &dataplexpb.CreateMetadataJobRequest{
		// TODO: Fill request struct fields.
		// See https://pkg.go.dev/cloud.google.com/go/dataplex/apiv1/dataplexpb#CreateMetadataJobRequest.
	}
	op, err := c.CreateMetadataJob(ctx, req)
	if err != nil {
		// TODO: Handle error.
	}

	resp, err := op.Wait(ctx)
	if err != nil {
		// TODO: Handle error.
	}
	// TODO: Use resp.
	_ = resp
}

Java

Java

לפני שמנסים את הדוגמה הזו, צריך לפעול לפי Javaההוראות להגדרה במאמר מדריך למתחילים לעבודה עם Knowledge Catalog באמצעות ספריות לקוח. מידע נוסף מופיע במאמרי העזרה של Knowledge Catalog Java API.

כדי לבצע אימות לקטלוג הידע, צריך להגדיר את Application Default Credentials. מידע נוסף זמין במאמר הגדרת אימות לסביבת פיתוח מקומית.

import com.google.cloud.dataplex.v1.CatalogServiceClient;
import com.google.cloud.dataplex.v1.CreateMetadataJobRequest;
import com.google.cloud.dataplex.v1.LocationName;
import com.google.cloud.dataplex.v1.MetadataJob;

public class SyncCreateMetadataJob {

  public static void main(String[] args) throws Exception {
    syncCreateMetadataJob();
  }

  public static void syncCreateMetadataJob() throws Exception {
    // This snippet has been automatically generated and should be regarded as a code template only.
    // It will require modifications to work:
    // - It may require correct/in-range values for request initialization.
    // - It may require specifying regional endpoints when creating the service client as shown in
    // https://cloud.google.com/java/docs/setup#configure_endpoints_for_the_client_library
    try (CatalogServiceClient catalogServiceClient = CatalogServiceClient.create()) {
      CreateMetadataJobRequest request =
          CreateMetadataJobRequest.newBuilder()
              .setParent(LocationName.of("[PROJECT]", "[LOCATION]").toString())
              .setMetadataJob(MetadataJob.newBuilder().build())
              .setMetadataJobId("metadataJobId-2021530679")
              .setValidateOnly(true)
              .build();
      MetadataJob response = catalogServiceClient.createMetadataJobAsync(request).get();
    }
  }
}

Node.js

Node.js

לפני שמנסים את הדוגמה הזו, צריך לפעול לפי Node.jsההוראות להגדרה במאמר מדריך למתחילים לעבודה עם Knowledge Catalog באמצעות ספריות לקוח. מידע נוסף מופיע במאמרי העזרה של Knowledge Catalog Node.js API.

כדי לבצע אימות לקטלוג הידע, צריך להגדיר את Application Default Credentials. מידע נוסף זמין במאמר הגדרת אימות לסביבת פיתוח מקומית.

/**
 * This snippet has been automatically generated and should be regarded as a code template only.
 * It will require modifications to work.
 * It may require correct/in-range values for request initialization.
 * TODO(developer): Uncomment these variables before running the sample.
 */
/**
 *  Required. The resource name of the parent location, in the format
 *  `projects/{project_id_or_number}/locations/{location_id}`
 */
// const parent = 'abc123'
/**
 *  Required. The metadata job resource.
 */
// const metadataJob = {}
/**
 *  Optional. The metadata job ID. If not provided, a unique ID is generated
 *  with the prefix `metadata-job-`.
 */
// const metadataJobId = 'abc123'
/**
 *  Optional. The service validates the request without performing any
 *  mutations. The default is false.
 */
// const validateOnly = true

// Imports the Dataplex library
const {CatalogServiceClient} = require('@google-cloud/dataplex').v1;

// Instantiates a client
const dataplexClient = new CatalogServiceClient();

async function callCreateMetadataJob() {
  // Construct request
  const request = {
    parent,
    metadataJob,
  };

  // Run request
  const [operation] = await dataplexClient.createMetadataJob(request);
  const [response] = await operation.promise();
  console.log(response);
}

callCreateMetadataJob();

Python

Python

לפני שמנסים את הדוגמה הזו, צריך לפעול לפי Pythonההוראות להגדרה במאמר מדריך למתחילים לעבודה עם Knowledge Catalog באמצעות ספריות לקוח. מידע נוסף מופיע במאמרי העזרה של Knowledge Catalog Python API.

כדי לבצע אימות לקטלוג הידע, צריך להגדיר את Application Default Credentials. מידע נוסף זמין במאמר הגדרת אימות לסביבת פיתוח מקומית.

# This snippet has been automatically generated and should be regarded as a
# code template only.
# It will require modifications to work:
# - It may require correct/in-range values for request initialization.
# - It may require specifying regional endpoints when creating the service
#   client as shown in:
#   https://googleapis.dev/python/google-api-core/latest/client_options.html
from google.cloud import dataplex_v1


def sample_create_metadata_job():
    # Create a client
    client = dataplex_v1.CatalogServiceClient()

    # Initialize request argument(s)
    metadata_job = dataplex_v1.MetadataJob()
    metadata_job.import_spec.scope.entry_groups = [
        "entry_groups_value1",
        "entry_groups_value2",
    ]
    metadata_job.import_spec.scope.entry_types = [
        "entry_types_value1",
        "entry_types_value2",
    ]
    metadata_job.import_spec.entry_sync_mode = "NONE"
    metadata_job.import_spec.aspect_sync_mode = "NONE"
    metadata_job.type_ = "EXPORT"

    request = dataplex_v1.CreateMetadataJobRequest(
        parent="parent_value",
        metadata_job=metadata_job,
    )

    # Make the request
    operation = client.create_metadata_job(request=request)

    print("Waiting for operation to complete...")

    response = operation.result()

    # Handle the response
    print(response)

Ruby

Ruby

לפני שמנסים את הדוגמה הזו, צריך לפעול לפי Rubyההוראות להגדרה במאמר מדריך למתחילים לעבודה עם Knowledge Catalog באמצעות ספריות לקוח. מידע נוסף מופיע במאמרי העזרה של Knowledge Catalog Ruby API.

כדי לבצע אימות לקטלוג הידע, צריך להגדיר את Application Default Credentials. מידע נוסף זמין במאמר הגדרת אימות לסביבת פיתוח מקומית.

require "google/cloud/dataplex/v1"

##
# Snippet for the create_metadata_job call in the CatalogService service
#
# This snippet has been automatically generated and should be regarded as a code
# template only. It will require modifications to work:
# - It may require correct/in-range values for request initialization.
# - It may require specifying regional endpoints when creating the service
# client as shown in https://cloud.google.com/ruby/docs/reference.
#
# This is an auto-generated example demonstrating basic usage of
# Google::Cloud::Dataplex::V1::CatalogService::Client#create_metadata_job.
#
def create_metadata_job
  # Create a client object. The client can be reused for multiple calls.
  client = Google::Cloud::Dataplex::V1::CatalogService::Client.new

  # Create a request. To set request fields, pass in keyword arguments.
  request = Google::Cloud::Dataplex::V1::CreateMetadataJobRequest.new

  # Call the create_metadata_job method.
  result = client.create_metadata_job request

  # The returned object is of type Gapic::Operation. You can use it to
  # check the status of an operation, cancel it, or wait for results.
  # Here is how to wait for a response.
  result.wait_until_done! timeout: 60
  if result.response?
    p result.response
  else
    puts "No response received."
  end
end

REST

כדי לייבא מטא-נתונים, משתמשים ב-‎metadataJobs.create method.

לפני שמשתמשים בנתוני הבקשה, צריך להחליף את הנתונים הבאים:

  • PROJECT_NUMBER: מספר הפרויקט או מזהה הפרויקט ב- Google Cloud .
  • LOCATION_ID: ה Google Cloud מיקום, כמו us-central1.
  • METADATA_JOB_ID: אופציונלי. מזהה משימת המטא-נתונים.
  • CLOUD_STORAGE_URI: ה-URI של קטגוריית Cloud Storage או התיקייה שמכילות את קובצי ייבוא המטא-נתונים. מידע נוסף על הדרישות לקובץ זמין במאמר קובץ לייבוא מטא-נתונים.

  • ENTRY_GROUP: שם המשאב היחסי של קבוצות הרשומות שנכללות בהיקף של העבודה, בפורמט projects/PROJECT_ID_OR_NUMBER/locations/LOCATION_ID/entryGroups/ENTRY_GROUP_ID. מידע נוסף זמין במאמר בנושא היקף העבודה.
  • ENTRY_TYPE: שם המשאב היחסי של סוג רשומה שנמצא בהיקף של העבודה, בפורמט projects/PROJECT_ID_OR_NUMBER/locations/LOCATION_ID/entryTypes/ENTRY_TYPE_ID. מידע נוסף זמין במאמר בנושא היקף העבודה.

  • ASPECT_TYPE: שם המשאב היחסי של סוג היבט שנמצא בהיקף של העבודה, בפורמט projects/PROJECT_ID_OR_NUMBER/locations/LOCATION_ID/aspectTypes/ASPECT_TYPE_ID. אופציונלי כשיוצרים משימת סנכרון של רשומה מלאה, חובה כשיוצרים משימה של היבט בלבד. מידע נוסף זמין במאמר בנושא היקף העבודה.
  • ENTRY_SYNC_MODE: מצב הסנכרון של הרשומה, למשל FULL או NONE. מידע נוסף זמין במאמר בנושא מצב סנכרון.
  • LOG_LEVEL: רמת היומנים שרוצים לתעד, למשל INFO או DEBUG. מידע נוסף מופיע במאמר בנושא צפייה ביומני עבודות ופתרון בעיות.

ה-method של ה-HTTP וכתובת ה-URL:

POST https://dataplex.googleapis.com/v1/projects/PROJECT_NUMBER/locations/LOCATION_ID/metadataJobs?metadataJobId=METADATA_JOB_ID

תוכן בקשת JSON:

{
  "type": "IMPORT",
  "import_spec": {
    "source_storage_uri": "gs://CLOUD_STORAGE_URI/",
    "scope": {
      "entryGroups": [
        "ENTRY_GROUP"
      ],
      "entry_types": [
        "ENTRY_TYPE"
      ],
      "aspect_types": [
        "ASPECT_TYPE"
      ]
    },
    "entry_sync_mode": "ENTRY_SYNC_MODE",
    "aspect_sync_mode": "INCREMENTAL",
    "log_level": "LOG_LEVEL"
  }
}

כדי לשלוח את הבקשה צריך להרחיב אחת מהאפשרויות הבאות:

התגובה מזהה פעולה ממושכת.

איך מקבלים פרטים על עבודת מטא-נתונים

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

C#‎

C#

לפני שמנסים את הדוגמה הזו, צריך לפעול לפי C#ההוראות להגדרה במאמר מדריך למתחילים לעבודה עם Knowledge Catalog באמצעות ספריות לקוח. מידע נוסף מופיע במאמרי העזרה של Knowledge Catalog C# API.

כדי לבצע אימות לקטלוג הידע, צריך להגדיר את Application Default Credentials. מידע נוסף זמין במאמר הגדרת אימות לסביבת פיתוח מקומית.

using Google.Cloud.Dataplex.V1;

public sealed partial class GeneratedCatalogServiceClientSnippets
{
    /// <summary>Snippet for GetMetadataJob</summary>
    /// <remarks>
    /// This snippet has been automatically generated and should be regarded as a code template only.
    /// It will require modifications to work:
    /// - It may require correct/in-range values for request initialization.
    /// - It may require specifying regional endpoints when creating the service client as shown in
    ///   https://cloud.google.com/dotnet/docs/reference/help/client-configuration#endpoint.
    /// </remarks>
    public void GetMetadataJobRequestObject()
    {
        // Create client
        CatalogServiceClient catalogServiceClient = CatalogServiceClient.Create();
        // Initialize request argument(s)
        GetMetadataJobRequest request = new GetMetadataJobRequest
        {
            MetadataJobName = MetadataJobName.FromProjectLocationMetadataJob("[PROJECT]", "[LOCATION]", "[METADATAJOB]"),
        };
        // Make the request
        MetadataJob response = catalogServiceClient.GetMetadataJob(request);
    }
}

המשך

Go

לפני שמנסים את הדוגמה הזו, צריך לפעול לפי Goההוראות להגדרה במאמר מדריך למתחילים לעבודה עם Knowledge Catalog באמצעות ספריות לקוח. מידע נוסף מופיע במאמרי העזרה של Knowledge Catalog Go API.

כדי לבצע אימות לקטלוג הידע, צריך להגדיר את Application Default Credentials. מידע נוסף זמין במאמר הגדרת אימות לסביבת פיתוח מקומית.


//go:build examples

package main

import (
	"context"

	dataplex "cloud.google.com/go/dataplex/apiv1"
	dataplexpb "cloud.google.com/go/dataplex/apiv1/dataplexpb"
)

func main() {
	ctx := context.Background()
	// This snippet has been automatically generated and should be regarded as a code template only.
	// It will require modifications to work:
	// - It may require correct/in-range values for request initialization.
	// - It may require specifying regional endpoints when creating the service client as shown in:
	//   https://pkg.go.dev/cloud.google.com/go#hdr-Client_Options
	c, err := dataplex.NewCatalogClient(ctx)
	if err != nil {
		// TODO: Handle error.
	}
	defer c.Close()

	req := &dataplexpb.GetMetadataJobRequest{
		// TODO: Fill request struct fields.
		// See https://pkg.go.dev/cloud.google.com/go/dataplex/apiv1/dataplexpb#GetMetadataJobRequest.
	}
	resp, err := c.GetMetadataJob(ctx, req)
	if err != nil {
		// TODO: Handle error.
	}
	// TODO: Use resp.
	_ = resp
}

Java

Java

לפני שמנסים את הדוגמה הזו, צריך לפעול לפי Javaההוראות להגדרה במאמר מדריך למתחילים לעבודה עם Knowledge Catalog באמצעות ספריות לקוח. מידע נוסף מופיע במאמרי העזרה של Knowledge Catalog Java API.

כדי לבצע אימות לקטלוג הידע, צריך להגדיר את Application Default Credentials. מידע נוסף זמין במאמר הגדרת אימות לסביבת פיתוח מקומית.

import com.google.cloud.dataplex.v1.CatalogServiceClient;
import com.google.cloud.dataplex.v1.GetMetadataJobRequest;
import com.google.cloud.dataplex.v1.MetadataJob;
import com.google.cloud.dataplex.v1.MetadataJobName;

public class SyncGetMetadataJob {

  public static void main(String[] args) throws Exception {
    syncGetMetadataJob();
  }

  public static void syncGetMetadataJob() throws Exception {
    // This snippet has been automatically generated and should be regarded as a code template only.
    // It will require modifications to work:
    // - It may require correct/in-range values for request initialization.
    // - It may require specifying regional endpoints when creating the service client as shown in
    // https://cloud.google.com/java/docs/setup#configure_endpoints_for_the_client_library
    try (CatalogServiceClient catalogServiceClient = CatalogServiceClient.create()) {
      GetMetadataJobRequest request =
          GetMetadataJobRequest.newBuilder()
              .setName(MetadataJobName.of("[PROJECT]", "[LOCATION]", "[METADATAJOB]").toString())
              .build();
      MetadataJob response = catalogServiceClient.getMetadataJob(request);
    }
  }
}

Node.js

Node.js

לפני שמנסים את הדוגמה הזו, צריך לפעול לפי Node.jsההוראות להגדרה במאמר מדריך למתחילים לעבודה עם Knowledge Catalog באמצעות ספריות לקוח. מידע נוסף מופיע במאמרי העזרה של Knowledge Catalog Node.js API.

כדי לבצע אימות לקטלוג הידע, צריך להגדיר את Application Default Credentials. מידע נוסף זמין במאמר הגדרת אימות לסביבת פיתוח מקומית.

/**
 * This snippet has been automatically generated and should be regarded as a code template only.
 * It will require modifications to work.
 * It may require correct/in-range values for request initialization.
 * TODO(developer): Uncomment these variables before running the sample.
 */
/**
 *  Required. The resource name of the metadata job, in the format
 *  `projects/{project_id_or_number}/locations/{location_id}/metadataJobs/{metadata_job_id}`.
 */
// const name = 'abc123'

// Imports the Dataplex library
const {CatalogServiceClient} = require('@google-cloud/dataplex').v1;

// Instantiates a client
const dataplexClient = new CatalogServiceClient();

async function callGetMetadataJob() {
  // Construct request
  const request = {
    name,
  };

  // Run request
  const response = await dataplexClient.getMetadataJob(request);
  console.log(response);
}

callGetMetadataJob();

Python

Python

לפני שמנסים את הדוגמה הזו, צריך לפעול לפי Pythonההוראות להגדרה במאמר מדריך למתחילים לעבודה עם Knowledge Catalog באמצעות ספריות לקוח. מידע נוסף מופיע במאמרי העזרה של Knowledge Catalog Python API.

כדי לבצע אימות לקטלוג הידע, צריך להגדיר את Application Default Credentials. מידע נוסף זמין במאמר הגדרת אימות לסביבת פיתוח מקומית.

# This snippet has been automatically generated and should be regarded as a
# code template only.
# It will require modifications to work:
# - It may require correct/in-range values for request initialization.
# - It may require specifying regional endpoints when creating the service
#   client as shown in:
#   https://googleapis.dev/python/google-api-core/latest/client_options.html
from google.cloud import dataplex_v1


def sample_get_metadata_job():
    # Create a client
    client = dataplex_v1.CatalogServiceClient()

    # Initialize request argument(s)
    request = dataplex_v1.GetMetadataJobRequest(
        name="name_value",
    )

    # Make the request
    response = client.get_metadata_job(request=request)

    # Handle the response
    print(response)

Ruby

Ruby

לפני שמנסים את הדוגמה הזו, צריך לפעול לפי Rubyההוראות להגדרה במאמר מדריך למתחילים לעבודה עם Knowledge Catalog באמצעות ספריות לקוח. מידע נוסף מופיע במאמרי העזרה של Knowledge Catalog Ruby API.

כדי לבצע אימות לקטלוג הידע, צריך להגדיר את Application Default Credentials. מידע נוסף זמין במאמר הגדרת אימות לסביבת פיתוח מקומית.

require "google/cloud/dataplex/v1"

##
# Snippet for the get_metadata_job call in the CatalogService service
#
# This snippet has been automatically generated and should be regarded as a code
# template only. It will require modifications to work:
# - It may require correct/in-range values for request initialization.
# - It may require specifying regional endpoints when creating the service
# client as shown in https://cloud.google.com/ruby/docs/reference.
#
# This is an auto-generated example demonstrating basic usage of
# Google::Cloud::Dataplex::V1::CatalogService::Client#get_metadata_job.
#
def get_metadata_job
  # Create a client object. The client can be reused for multiple calls.
  client = Google::Cloud::Dataplex::V1::CatalogService::Client.new

  # Create a request. To set request fields, pass in keyword arguments.
  request = Google::Cloud::Dataplex::V1::GetMetadataJobRequest.new

  # Call the get_metadata_job method.
  result = client.get_metadata_job request

  # The returned object is of type Google::Cloud::Dataplex::V1::MetadataJob.
  p result
end

REST

כדי לקבל מידע על משימת מטא-נתונים, משתמשים בשיטה metadataJobs.get.

קבלת רשימה של משימות מטא-נתונים

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

C#‎

C#

לפני שמנסים את הדוגמה הזו, צריך לפעול לפי C#ההוראות להגדרה במאמר מדריך למתחילים לעבודה עם Knowledge Catalog באמצעות ספריות לקוח. מידע נוסף מופיע במאמרי העזרה של Knowledge Catalog C# API.

כדי לבצע אימות לקטלוג הידע, צריך להגדיר את Application Default Credentials. מידע נוסף זמין במאמר הגדרת אימות לסביבת פיתוח מקומית.

using Google.Api.Gax;
using Google.Api.Gax.ResourceNames;
using Google.Cloud.Dataplex.V1;
using System;

public sealed partial class GeneratedCatalogServiceClientSnippets
{
    /// <summary>Snippet for ListMetadataJobs</summary>
    /// <remarks>
    /// This snippet has been automatically generated and should be regarded as a code template only.
    /// It will require modifications to work:
    /// - It may require correct/in-range values for request initialization.
    /// - It may require specifying regional endpoints when creating the service client as shown in
    ///   https://cloud.google.com/dotnet/docs/reference/help/client-configuration#endpoint.
    /// </remarks>
    public void ListMetadataJobsRequestObject()
    {
        // Create client
        CatalogServiceClient catalogServiceClient = CatalogServiceClient.Create();
        // Initialize request argument(s)
        ListMetadataJobsRequest request = new ListMetadataJobsRequest
        {
            ParentAsLocationName = LocationName.FromProjectLocation("[PROJECT]", "[LOCATION]"),
            Filter = "",
            OrderBy = "",
        };
        // Make the request
        PagedEnumerable<ListMetadataJobsResponse, MetadataJob> response = catalogServiceClient.ListMetadataJobs(request);

        // Iterate over all response items, lazily performing RPCs as required
        foreach (MetadataJob item in response)
        {
            // Do something with each item
            Console.WriteLine(item);
        }

        // Or iterate over pages (of server-defined size), performing one RPC per page
        foreach (ListMetadataJobsResponse page in response.AsRawResponses())
        {
            // Do something with each page of items
            Console.WriteLine("A page of results:");
            foreach (MetadataJob item in page)
            {
                // Do something with each item
                Console.WriteLine(item);
            }
        }

        // Or retrieve a single page of known size (unless it's the final page), performing as many RPCs as required
        int pageSize = 10;
        Page<MetadataJob> singlePage = response.ReadPage(pageSize);
        // Do something with the page of items
        Console.WriteLine($"A page of {pageSize} results (unless it's the final page):");
        foreach (MetadataJob item in singlePage)
        {
            // Do something with each item
            Console.WriteLine(item);
        }
        // Store the pageToken, for when the next page is required.
        string nextPageToken = singlePage.NextPageToken;
    }
}

המשך

Go

לפני שמנסים את הדוגמה הזו, צריך לפעול לפי Goההוראות להגדרה במאמר מדריך למתחילים לעבודה עם Knowledge Catalog באמצעות ספריות לקוח. מידע נוסף מופיע במאמרי העזרה של Knowledge Catalog Go API.

כדי לבצע אימות לקטלוג הידע, צריך להגדיר את Application Default Credentials. מידע נוסף זמין במאמר הגדרת אימות לסביבת פיתוח מקומית.


//go:build examples

package main

import (
	"context"

	dataplex "cloud.google.com/go/dataplex/apiv1"
	dataplexpb "cloud.google.com/go/dataplex/apiv1/dataplexpb"
	"google.golang.org/api/iterator"
)

func main() {
	ctx := context.Background()
	// This snippet has been automatically generated and should be regarded as a code template only.
	// It will require modifications to work:
	// - It may require correct/in-range values for request initialization.
	// - It may require specifying regional endpoints when creating the service client as shown in:
	//   https://pkg.go.dev/cloud.google.com/go#hdr-Client_Options
	c, err := dataplex.NewCatalogClient(ctx)
	if err != nil {
		// TODO: Handle error.
	}
	defer c.Close()

	req := &dataplexpb.ListMetadataJobsRequest{
		// TODO: Fill request struct fields.
		// See https://pkg.go.dev/cloud.google.com/go/dataplex/apiv1/dataplexpb#ListMetadataJobsRequest.
	}
	it := c.ListMetadataJobs(ctx, req)
	for {
		resp, err := it.Next()
		if err == iterator.Done {
			break
		}
		if err != nil {
			// TODO: Handle error.
		}
		// TODO: Use resp.
		_ = resp

		// If you need to access the underlying RPC response,
		// you can do so by casting the `Response` as below.
		// Otherwise, remove this line. Only populated after
		// first call to Next(). Not safe for concurrent access.
		_ = it.Response.(*dataplexpb.ListMetadataJobsResponse)
	}
}

Java

Java

לפני שמנסים את הדוגמה הזו, צריך לפעול לפי Javaההוראות להגדרה במאמר מדריך למתחילים לעבודה עם Knowledge Catalog באמצעות ספריות לקוח. מידע נוסף מופיע במאמרי העזרה של Knowledge Catalog Java API.

כדי לבצע אימות לקטלוג הידע, צריך להגדיר את Application Default Credentials. מידע נוסף זמין במאמר הגדרת אימות לסביבת פיתוח מקומית.

import com.google.cloud.dataplex.v1.CatalogServiceClient;
import com.google.cloud.dataplex.v1.ListMetadataJobsRequest;
import com.google.cloud.dataplex.v1.LocationName;
import com.google.cloud.dataplex.v1.MetadataJob;

public class SyncListMetadataJobs {

  public static void main(String[] args) throws Exception {
    syncListMetadataJobs();
  }

  public static void syncListMetadataJobs() throws Exception {
    // This snippet has been automatically generated and should be regarded as a code template only.
    // It will require modifications to work:
    // - It may require correct/in-range values for request initialization.
    // - It may require specifying regional endpoints when creating the service client as shown in
    // https://cloud.google.com/java/docs/setup#configure_endpoints_for_the_client_library
    try (CatalogServiceClient catalogServiceClient = CatalogServiceClient.create()) {
      ListMetadataJobsRequest request =
          ListMetadataJobsRequest.newBuilder()
              .setParent(LocationName.of("[PROJECT]", "[LOCATION]").toString())
              .setPageSize(883849137)
              .setPageToken("pageToken873572522")
              .setFilter("filter-1274492040")
              .setOrderBy("orderBy-1207110587")
              .build();
      for (MetadataJob element : catalogServiceClient.listMetadataJobs(request).iterateAll()) {
        // doThingsWith(element);
      }
    }
  }
}

Node.js

Node.js

לפני שמנסים את הדוגמה הזו, צריך לפעול לפי Node.jsההוראות להגדרה במאמר מדריך למתחילים לעבודה עם Knowledge Catalog באמצעות ספריות לקוח. מידע נוסף מופיע במאמרי העזרה של Knowledge Catalog Node.js API.

כדי לבצע אימות לקטלוג הידע, צריך להגדיר את Application Default Credentials. מידע נוסף זמין במאמר הגדרת אימות לסביבת פיתוח מקומית.

/**
 * This snippet has been automatically generated and should be regarded as a code template only.
 * It will require modifications to work.
 * It may require correct/in-range values for request initialization.
 * TODO(developer): Uncomment these variables before running the sample.
 */
/**
 *  Required. The resource name of the parent location, in the format
 *  `projects/{project_id_or_number}/locations/{location_id}`
 */
// const parent = 'abc123'
/**
 *  Optional. The maximum number of metadata jobs to return. The service might
 *  return fewer jobs than this value. If unspecified, at most 10 jobs are
 *  returned. The maximum value is 1,000.
 */
// const pageSize = 1234
/**
 *  Optional. The page token received from a previous `ListMetadataJobs` call.
 *  Provide this token to retrieve the subsequent page of results. When
 *  paginating, all other parameters that are provided to the
 *  `ListMetadataJobs` request must match the call that provided the page
 *  token.
 */
// const pageToken = 'abc123'
/**
 *  Optional. Filter request. Filters are case-sensitive.
 *  The service supports the following formats:
 *  * `labels.key1 = "value1"`
 *  * `labels:key1`
 *  * `name = "value"`
 *  You can combine filters with `AND`, `OR`, and `NOT` operators.
 */
// const filter = 'abc123'
/**
 *  Optional. The field to sort the results by, either `name` or `create_time`.
 *  If not specified, the ordering is undefined.
 */
// const orderBy = 'abc123'

// Imports the Dataplex library
const {CatalogServiceClient} = require('@google-cloud/dataplex').v1;

// Instantiates a client
const dataplexClient = new CatalogServiceClient();

async function callListMetadataJobs() {
  // Construct request
  const request = {
    parent,
  };

  // Run request
  const iterable = dataplexClient.listMetadataJobsAsync(request);
  for await (const response of iterable) {
      console.log(response);
  }
}

callListMetadataJobs();

Python

Python

לפני שמנסים את הדוגמה הזו, צריך לפעול לפי Pythonההוראות להגדרה במאמר מדריך למתחילים לעבודה עם Knowledge Catalog באמצעות ספריות לקוח. מידע נוסף מופיע במאמרי העזרה של Knowledge Catalog Python API.

כדי לבצע אימות לקטלוג הידע, צריך להגדיר את Application Default Credentials. מידע נוסף זמין במאמר הגדרת אימות לסביבת פיתוח מקומית.

# This snippet has been automatically generated and should be regarded as a
# code template only.
# It will require modifications to work:
# - It may require correct/in-range values for request initialization.
# - It may require specifying regional endpoints when creating the service
#   client as shown in:
#   https://googleapis.dev/python/google-api-core/latest/client_options.html
from google.cloud import dataplex_v1


def sample_list_metadata_jobs():
    # Create a client
    client = dataplex_v1.CatalogServiceClient()

    # Initialize request argument(s)
    request = dataplex_v1.ListMetadataJobsRequest(
        parent="parent_value",
    )

    # Make the request
    page_result = client.list_metadata_jobs(request=request)

    # Handle the response
    for response in page_result:
        print(response)

Ruby

Ruby

לפני שמנסים את הדוגמה הזו, צריך לפעול לפי Rubyההוראות להגדרה במאמר מדריך למתחילים לעבודה עם Knowledge Catalog באמצעות ספריות לקוח. מידע נוסף מופיע במאמרי העזרה של Knowledge Catalog Ruby API.

כדי לבצע אימות לקטלוג הידע, צריך להגדיר את Application Default Credentials. מידע נוסף זמין במאמר הגדרת אימות לסביבת פיתוח מקומית.

require "google/cloud/dataplex/v1"

##
# Snippet for the list_metadata_jobs call in the CatalogService service
#
# This snippet has been automatically generated and should be regarded as a code
# template only. It will require modifications to work:
# - It may require correct/in-range values for request initialization.
# - It may require specifying regional endpoints when creating the service
# client as shown in https://cloud.google.com/ruby/docs/reference.
#
# This is an auto-generated example demonstrating basic usage of
# Google::Cloud::Dataplex::V1::CatalogService::Client#list_metadata_jobs.
#
def list_metadata_jobs
  # Create a client object. The client can be reused for multiple calls.
  client = Google::Cloud::Dataplex::V1::CatalogService::Client.new

  # Create a request. To set request fields, pass in keyword arguments.
  request = Google::Cloud::Dataplex::V1::ListMetadataJobsRequest.new

  # Call the list_metadata_jobs method.
  result = client.list_metadata_jobs request

  # The returned object is of type Gapic::PagedEnumerable. You can iterate
  # over elements, and API calls will be issued to fetch pages as needed.
  result.each do |item|
    # Each element is of type ::Google::Cloud::Dataplex::V1::MetadataJob.
    p item
  end
end

REST

כדי לקבל רשימה של משימות המטא-נתונים האחרונות, משתמשים בשיטה metadataJobs.list.

ביטול משימה של מטא-נתונים

אפשר לבטל משימה של מטא-נתונים שלא רוצים להריץ.

C#‎

C#

לפני שמנסים את הדוגמה הזו, צריך לפעול לפי C#ההוראות להגדרה במאמר מדריך למתחילים לעבודה עם Knowledge Catalog באמצעות ספריות לקוח. מידע נוסף מופיע במאמרי העזרה של Knowledge Catalog C# API.

כדי לבצע אימות לקטלוג הידע, צריך להגדיר את Application Default Credentials. מידע נוסף זמין במאמר הגדרת אימות לסביבת פיתוח מקומית.

using Google.Cloud.Dataplex.V1;

public sealed partial class GeneratedCatalogServiceClientSnippets
{
    /// <summary>Snippet for CancelMetadataJob</summary>
    /// <remarks>
    /// This snippet has been automatically generated and should be regarded as a code template only.
    /// It will require modifications to work:
    /// - It may require correct/in-range values for request initialization.
    /// - It may require specifying regional endpoints when creating the service client as shown in
    ///   https://cloud.google.com/dotnet/docs/reference/help/client-configuration#endpoint.
    /// </remarks>
    public void CancelMetadataJobRequestObject()
    {
        // Create client
        CatalogServiceClient catalogServiceClient = CatalogServiceClient.Create();
        // Initialize request argument(s)
        CancelMetadataJobRequest request = new CancelMetadataJobRequest
        {
            MetadataJobName = MetadataJobName.FromProjectLocationMetadataJob("[PROJECT]", "[LOCATION]", "[METADATAJOB]"),
        };
        // Make the request
        catalogServiceClient.CancelMetadataJob(request);
    }
}

המשך

Go

לפני שמנסים את הדוגמה הזו, צריך לפעול לפי Goההוראות להגדרה במאמר מדריך למתחילים לעבודה עם Knowledge Catalog באמצעות ספריות לקוח. מידע נוסף מופיע במאמרי העזרה של Knowledge Catalog Go API.

כדי לבצע אימות לקטלוג הידע, צריך להגדיר את Application Default Credentials. מידע נוסף זמין במאמר הגדרת אימות לסביבת פיתוח מקומית.


//go:build examples

package main

import (
	"context"

	dataplex "cloud.google.com/go/dataplex/apiv1"
	dataplexpb "cloud.google.com/go/dataplex/apiv1/dataplexpb"
)

func main() {
	ctx := context.Background()
	// This snippet has been automatically generated and should be regarded as a code template only.
	// It will require modifications to work:
	// - It may require correct/in-range values for request initialization.
	// - It may require specifying regional endpoints when creating the service client as shown in:
	//   https://pkg.go.dev/cloud.google.com/go#hdr-Client_Options
	c, err := dataplex.NewCatalogClient(ctx)
	if err != nil {
		// TODO: Handle error.
	}
	defer c.Close()

	req := &dataplexpb.CancelMetadataJobRequest{
		// TODO: Fill request struct fields.
		// See https://pkg.go.dev/cloud.google.com/go/dataplex/apiv1/dataplexpb#CancelMetadataJobRequest.
	}
	err = c.CancelMetadataJob(ctx, req)
	if err != nil {
		// TODO: Handle error.
	}
}

Java

Java

לפני שמנסים את הדוגמה הזו, צריך לפעול לפי Javaההוראות להגדרה במאמר מדריך למתחילים לעבודה עם Knowledge Catalog באמצעות ספריות לקוח. מידע נוסף מופיע במאמרי העזרה של Knowledge Catalog Java API.

כדי לבצע אימות לקטלוג הידע, צריך להגדיר את Application Default Credentials. מידע נוסף זמין במאמר הגדרת אימות לסביבת פיתוח מקומית.

import com.google.cloud.dataplex.v1.CancelMetadataJobRequest;
import com.google.cloud.dataplex.v1.CatalogServiceClient;
import com.google.cloud.dataplex.v1.MetadataJobName;
import com.google.protobuf.Empty;

public class SyncCancelMetadataJob {

  public static void main(String[] args) throws Exception {
    syncCancelMetadataJob();
  }

  public static void syncCancelMetadataJob() throws Exception {
    // This snippet has been automatically generated and should be regarded as a code template only.
    // It will require modifications to work:
    // - It may require correct/in-range values for request initialization.
    // - It may require specifying regional endpoints when creating the service client as shown in
    // https://cloud.google.com/java/docs/setup#configure_endpoints_for_the_client_library
    try (CatalogServiceClient catalogServiceClient = CatalogServiceClient.create()) {
      CancelMetadataJobRequest request =
          CancelMetadataJobRequest.newBuilder()
              .setName(MetadataJobName.of("[PROJECT]", "[LOCATION]", "[METADATAJOB]").toString())
              .build();
      catalogServiceClient.cancelMetadataJob(request);
    }
  }
}

Node.js

Node.js

לפני שמנסים את הדוגמה הזו, צריך לפעול לפי Node.jsההוראות להגדרה במאמר מדריך למתחילים לעבודה עם Knowledge Catalog באמצעות ספריות לקוח. מידע נוסף מופיע במאמרי העזרה של Knowledge Catalog Node.js API.

כדי לבצע אימות לקטלוג הידע, צריך להגדיר את Application Default Credentials. מידע נוסף זמין במאמר הגדרת אימות לסביבת פיתוח מקומית.

/**
 * This snippet has been automatically generated and should be regarded as a code template only.
 * It will require modifications to work.
 * It may require correct/in-range values for request initialization.
 * TODO(developer): Uncomment these variables before running the sample.
 */
/**
 *  Required. The resource name of the job, in the format
 *  `projects/{project_id_or_number}/locations/{location_id}/metadataJobs/{metadata_job_id}`
 */
// const name = 'abc123'

// Imports the Dataplex library
const {CatalogServiceClient} = require('@google-cloud/dataplex').v1;

// Instantiates a client
const dataplexClient = new CatalogServiceClient();

async function callCancelMetadataJob() {
  // Construct request
  const request = {
    name,
  };

  // Run request
  const response = await dataplexClient.cancelMetadataJob(request);
  console.log(response);
}

callCancelMetadataJob();

Python

Python

לפני שמנסים את הדוגמה הזו, צריך לפעול לפי Pythonההוראות להגדרה במאמר מדריך למתחילים לעבודה עם Knowledge Catalog באמצעות ספריות לקוח. מידע נוסף מופיע במאמרי העזרה של Knowledge Catalog Python API.

כדי לבצע אימות לקטלוג הידע, צריך להגדיר את Application Default Credentials. מידע נוסף זמין במאמר הגדרת אימות לסביבת פיתוח מקומית.

# This snippet has been automatically generated and should be regarded as a
# code template only.
# It will require modifications to work:
# - It may require correct/in-range values for request initialization.
# - It may require specifying regional endpoints when creating the service
#   client as shown in:
#   https://googleapis.dev/python/google-api-core/latest/client_options.html
from google.cloud import dataplex_v1


def sample_cancel_metadata_job():
    # Create a client
    client = dataplex_v1.CatalogServiceClient()

    # Initialize request argument(s)
    request = dataplex_v1.CancelMetadataJobRequest(
        name="name_value",
    )

    # Make the request
    client.cancel_metadata_job(request=request)

Ruby

Ruby

לפני שמנסים את הדוגמה הזו, צריך לפעול לפי Rubyההוראות להגדרה במאמר מדריך למתחילים לעבודה עם Knowledge Catalog באמצעות ספריות לקוח. מידע נוסף מופיע במאמרי העזרה של Knowledge Catalog Ruby API.

כדי לבצע אימות לקטלוג הידע, צריך להגדיר את Application Default Credentials. מידע נוסף זמין במאמר הגדרת אימות לסביבת פיתוח מקומית.

require "google/cloud/dataplex/v1"

##
# Snippet for the cancel_metadata_job call in the CatalogService service
#
# This snippet has been automatically generated and should be regarded as a code
# template only. It will require modifications to work:
# - It may require correct/in-range values for request initialization.
# - It may require specifying regional endpoints when creating the service
# client as shown in https://cloud.google.com/ruby/docs/reference.
#
# This is an auto-generated example demonstrating basic usage of
# Google::Cloud::Dataplex::V1::CatalogService::Client#cancel_metadata_job.
#
def cancel_metadata_job
  # Create a client object. The client can be reused for multiple calls.
  client = Google::Cloud::Dataplex::V1::CatalogService::Client.new

  # Create a request. To set request fields, pass in keyword arguments.
  request = Google::Cloud::Dataplex::V1::CancelMetadataJobRequest.new

  # Call the cancel_metadata_job method.
  result = client.cancel_metadata_job request

  # The returned object is of type Google::Protobuf::Empty.
  p result
end

REST

כדי לבטל משימת מטא-נתונים, משתמשים בשיטה metadataJobs.cancel.

הצגת יומני עבודות ופתרון בעיות

שימוש ב-Cloud Logging כדי להציג יומנים של משימת מטא-נתונים. מידע נוסף זמין במאמר בנושא מעקב אחרי יומנים של Knowledge Catalog.

מגדירים את רמת היומן כשיוצרים משימת מטא-נתונים. אלה רמות היומן שזמינות:

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

שגיאות אימות

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

  • FAILED: מתרחשת כשיש שגיאה בקובץ ייבוא המטא-נתונים. לא מתבצע ייבוא של מטא-נתונים לקטלוג הידע והמשימה נכשלת. דוגמאות לשגיאות בקובץ ייבוא המטא-נתונים:
    • אי אפשר לנתח פריט בקובץ לפריט ייבוא תקין
    • רשומה או היבט בקובץ שייכים לקבוצת רשומות, לסוג רשומה או לסוג היבט שלא נכללים בהיקף העבודה
    • אותו שם רשומה צוין יותר מפעם אחת במשימה
    • סוג מאפיין שצוין במיפוי מאפיינים או במפתחות מאפיינים לא תואם לפורמט PROJECT_ID_OR_NUMBER.LOCATION_ID.ASPECT_TYPE_ID@OPTIONAL_PATH
    • היבט חובה מסומן למחיקה
  • SUCCEEDED_WITH_ERRORS: מתרחשת כשניתן לנתח את קובץ ייבוא המטא-נתונים, אבל ייבוא פריט בקובץ יגרום לכך שרשומה בפרויקט תהיה במצב לא עקבי. Knowledge Catalog מתעלם מנתונים כאלה, אבל מייבא את שאר המטא-נתונים מהקובץ.

אפשר להשתמש ביומני המשימות כדי לפתור את השגיאה.

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