ייבוא מטא-נתונים מ-Databricks Unity Catalog

כדי לפרק את סילו הנתונים ולא לעבור בין כלים, אתם יכולים להשתמש במחבר של Knowledge Catalog (לשעבר Dataplex Universal Catalog) כדי לייבא מטא-נתונים מ-Databricks Unity Catalog ישירות אל Google Cloud.

המחבר הזה תומך במכונות של Databricks Unity Catalog שמתארחות ב-Google Cloud, ב-Microsoft Azure או ב-Amazon Web Services ‏ (AWS).

בטבלה הבאה מפורטים המטא-נתונים שהמחבר של Databricks Unity Catalog מתעד:

קטגוריה המטא-נתונים שתועדו
טכני
  • Metastore
  • קטלוג
  • סכימה
  • טבלה (Delta מנוהלת, חיצונית, סטרימינג, אונליין, מאפיין, קטלוג REST של Apache Iceberg‏ (IRC))
  • תצוגה (רגילה, מהותית)
  • נפחי אחסון
  • פונקציות ופרוצדורות
תפעולי
  • מדדי שימוש (צפיות במשך 30 ו-90 ימים; קריאות, כתיבות, משתמשים תכופים וטבלאות שהצטרפו לעיתים קרובות במשך 30 ימים)
  • מפתחות ראשיים ומפתחות זרים
עסקי
  • תגים (אובייקט, סיווג נתונים)
  • איכות הנתונים (תוצאות של זיהוי אנומליות מ-Data Quality Monitoring, ושינויים בנתונים ומדדים בהתאמה אישית מ-Lakehouse Monitoring)
  • יצירת פרופיל נתונים (מ-Lakehouse Monitoring)
  • הצטרפויות וקשרים
  • הבעלים של הטבלה והתצוגה, זמן היצירה וזמן השינוי האחרון
סמנטי
  • תצוגת מדדים (מאפיינים, מדדים, מיפוי קשרים, אישורים)
  • הבעלים של תצוגת המדדים
  • שימוש בתצוגת מדדים (צפיות במשך 30 ו-90 ימים; קריאות, כתיבות, משתמשים תכופים וטבלאות שהצטרפו לעיתים קרובות במשך 30 ימים)
  • השמות המוצגים (מתצוגות של מדדים)
  • מילים נרדפות (מתצוגות של מדדים)
  • תגובות ב-Markdown

מגבלות

למחבר Databricks Unity Catalog יש את המגבלות הבאות:

  • אין תמיכה בשושלת נתונים.
  • תגים סמנטיים ומילוני מונחים ארגוניים לא נתמכים בשילוב (Genie API).
  • המחבר מייבא את המטא-נתונים של טבלאות Iceberg, אבל לא מקשר באופן אוטומטי את הרשומות המיובאות לרשומות התואמות ב- Google Cloud Lakehouse Databricks Unity Catalog Iceberg REST Catalog (IRC).

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

לפני שאתם מייבאים מטא-נתונים מ-Databricks Unity Catalog, אתם צריכים לבצע את הפעולות הבאות:

  1. נותנים את התפקידים וההרשאות הנדרשים.
  2. מפעילים את Dataplex API ואת שירות העברת נתונים ל-BigQuery API.
  3. לעמוד בדרישות המוקדמות של Databricks Unity Catalog.
  4. עומדים בדרישות המוקדמות של הרשת.

תפקידים והרשאות של IAM

כדי ליצור ולנהל משימה של מחבר Knowledge Catalog, אתם צריכים תפקידים בניהול זהויות והרשאות גישה (IAM) שמעניקים הרשאות ל-Knowledge Catalog ולשירות העברת הנתונים ל-BigQuery.

כדי לקבל את ההרשאות שנדרשות להגדרת מחבר Databricks Unity Catalog, צריך לבקש מהאדמין להקצות לכם את התפקידים הבאים ב-IAM:

בנוסף, צריך להקצות לסוכן השירות של שירות העברת הנתונים ל-BigQuery (service-PROJECT_NUMBER@gcp-sa-bigquerydatatransfer.iam.gserviceaccount.com) את שני התפקידים הבאים:

  • Dataplex Entry Group Importer (roles/dataplex.entryGroupImporter), בקבוצת הרשומות של היעד או בפרויקט שמכיל אותה. התפקיד הזה מאפשר לסוכן השירות לייבא מטא-נתונים לקבוצת הרשומות (dataplex.entryGroups.import).
  • ‫Dataplex Entry and EntryLink Owner ‏(roles/dataplex.entryOwner), בפרויקט שמכיל את קבוצת הרשומות של היעד. התפקיד הזה מאפשר לסוכן השירות לייבא מטא-נתונים וקישורים לרשומות של שימוש, עסק ואיכות נתונים. הוא כולל את ההרשאות הבאות:

    • dataplex.entryGroups.useDataProfileAspect
    • dataplex.entryGroups.useDataQualityScorecardAspect
    • dataplex.entryGroups.useManagedConnectorTypes
    • dataplex.entryGroups.useReferenceEntryLink
    • dataplex.entryGroups.useSchemaAspect
    • dataplex.entryGroups.useSchemaJoinAspect
    • dataplex.entryGroups.useSchemaJoinEntryLink
    • dataplex.entryGroups.useUsageAspect
    • dataplex.entryLinks.reference

    צריך להקצות את התפקיד הזה בפרויקט, ולא רק בקבוצת הרשומות, כי הייבוא בודק את ההרשאה dataplex.entryLinks.reference בפרויקט. אם לסוכן השירות אין את ההרשאה הזו בפרויקט, הפעלת ההעברה נכשלת ומוצגת שגיאה כמו Permission 'dataplex.entryLinks.reference' denied, ולא מיובאים מטא-נתונים.

במקום להקצות את שני התפקידים האלה, אתם יכולים להקצות את התפקיד בעלים של קבוצת רשומות ב-Dataplex (roles/dataplex.entryGroupOwner) בפרויקט שמכיל את קבוצת הרשומות של היעד. התפקיד הזה כולל את ההרשאות של שני התפקידים, והוא גם מאפשר לסוכן השירות ליצור, למחוק ולנהל את הגישה לכל קבוצות הרשומות בפרויקט.

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

הפעלת ממשקי ה-API

מפעילים את Dataplex API ואת שירות העברת נתונים ל-BigQuery API.

הפעלת ממשקי ה-API

דרישות מוקדמות ל-Databricks Unity Catalog

לחשבון השירות שמשמש למחבר של Databricks Unity Catalog צריכות להיות ההרשאות הבאות ב-Databricks Unity Catalog:

  • הרשאת Can use במחסן הנתונים של Databricks SQL שמשמש את המחבר.
  • BROWSE בקטלוגים של היעד, או USE CATALOG,‏ USE SCHEMA ו-SELECT בקטלוגים, בסכימות ובטבלאות או בתצוגות של היעד.
  • ‫USE CATALOG בקטלוג system, וגם USE SCHEMA ו-SELECT בסכימות המערכת הבאות:
    • ‫system.information_schema: נדרשת כדי לקרוא קטלוגים, סכימות, טבלאות, עמודות, אמצעי אחסון, שגרות, אילוצים ותגים.
    • ‫system.access ו-system.query: אופציונלי, נדרש כדי לייבא מדדי שימוש, תובנות לגבי שימוש וצירופים של היסטוריית שאילתות.
    • ‫system.data_quality_monitoring: אופציונלי, נדרש כדי לייבא תוצאות של זיהוי אנומליות.
  • אופציונלי: USE CATALOG,‏ USE SCHEMA ו-SELECT בטבלאות הפלט של Lakehouse Monitoring (TABLE_NAME_profile_metrics ו-TABLE_NAME_drift_metrics) כדי לייבא מדדי פרופיל נתונים ושינוי נתונים.

אם אתם רוצים גם להריץ שאילתות SQL או משימות Spark בקטלוג Databricks המרוחק, קראו את המאמר הגדרת חיבור חוצה-עננים ל-Databricks Unity Catalog.

דרישות מוקדמות לרשת

כדי לאפשר לשירות העברת הנתונים ל-BigQuery להתחבר באופן מאובטח למסדי נתונים חיצוניים או למקורות נתונים בענן של צד שלישי עם כתובת IP פרטית בתוך רשת פרטית, צריך להגדיר חיבור לרשת באמצעות Private Service Connect.

אם אתם מתחברים לסביבה מקומית או למכונה שמתארחת בענן באמצעות כתובת IP ציבורית, אתם לא צריכים חיבור לרשת.

הגדרת מחבר של Databricks Unity Catalog

מגדירים מחבר של Databricks Unity Catalog באמצעות מסוף Google Cloud או ה-API בארכיטקטורת REST.

המסוף

  1. נכנסים לדף Knowledge Catalog במסוף Google Cloud .

    מעבר אל Knowledge Catalog

  2. בתפריט הניווט, בקטע Manage, לוחצים על Connectors ואז על Add connection.

  3. ברשימה Connectors, לוחצים על הכרטיס Databricks Unity Catalog.

  4. בקטע פרטי מקור הנתונים, מזינים את פרטי החיבור של המכונה של Databricks Unity Catalog:

    • בשדה Network attachment, בוחרים חיבור רשת קיים או יוצרים חיבור חדש.
    • מזינים את הערכים של Workspace Host,‏ SQL Warehouse HTTP Path,‏ Client Id ו-סוד לקוח.
    • בשדה Databricks objects to transfer, לוחצים על Browse כדי לבחור את מאגרי המטא-נתונים, הקטלוגים, הסכימות או האובייקטים הספציפיים (טבלאות, תצוגות, ווליומים, פונקציות ופרוצדורות) שרוצים לייבא ל-Knowledge Catalog. אם בוחרים מאגר מטא-נתונים, קטלוג או סכימה, כל האובייקטים שבהם מיובאים.

      אפשר גם להזין אובייקטים באופן ידני בפורמט TYPE:METASTORE[/CATALOG[/SCHEMA[/OBJECT]]], כאשר TYPE הוא METASTORE,‏ CATALOG,‏ SCHEMA,‏ TABLE,‏ VIEW,‏ VOLUME,‏ FUNCTION או PROCEDURE (לדוגמה, SCHEMA:my_metastore/main/sales). אין תמיכה בתבניות של שמות.

  5. בקטע הגדרות היעד:

    • לוחצים על Browse ובוחרים קבוצת רשומות קיימת ב-Knowledge Catalog כדי לאחסן את המטא-נתונים המיובאים, או לוחצים על Create new entry group.
    • בוחרים אם להגדיר הרשאות לקבוצת הרשומות עכשיו או מאוחר יותר. כדי לאפשר למשתמשים לראות את המטא-נתונים שיובאו, צריך להגדיר הרשאות בקבוצת הרשומות. אם לא נתתם את התפקיד Dataplex Entry Group Importer (roles/dataplex.entryGroupImporter) או את ההרשאה dataplex.entryGroups.import לסוכן השירות של שירות העברת הנתונים ל-BigQuery ברמת הפרויקט, תנו אותם בקבוצת הרשומות הזו. עדיין צריך להקצות את התפקיד בעלים של רשומה ו-EntryLink ב-Dataplex (roles/dataplex.entryOwner) בפרויקט, כי ההרשאה dataplex.entryLinks.reference נבדקת ברמת הפרויקט. מידע נוסף זמין במאמר תפקידים והרשאות ב-IAM.
  6. בקטע Transfer config name, בשדה השם המוצג, מזינים שם למשימת הייבוא של המטא-נתונים.

  7. בקטע Schedule options, מגדירים את התדירות של משימת ייבוא המטא-נתונים. אם בוחרים באפשרות On-demand, המשימה תפעל רק כשמפעילים אותה באופן ידני.

  8. אופציונלי: בקטע Notification options, מגדירים התראה באימייל או ב-Pub/Sub על משימות שנכשלו.

  9. אופציונלי: בקטע Advanced options, מגדירים את ההצפנה. אם בוחרים במפתח הצפנה בניהול הלקוח (CMEK), המפתח מצפין את כל הנתונים הזמניים שנוצרו לפני שהתחילו משימות הייבוא של המטא-נתונים של Knowledge Catalog. המפתח לא מצפין את המטא-נתונים בקבוצת הרשומות של Knowledge Catalog ביעד.

  10. לוחצים על Save.

REST

משתמשים ב-method‏ projects.locations.transferConfigs.create. במשאב TransferConfig, מגדירים את השדות הבאים:

  • מגדירים את השדה dataSourceId לערך "databricks_unity".
  • בשדה metadataDestination, ממלאים את השדה dataplexConfiguration.entryGroup בנתיב המשאב של קבוצת הרשומות ב-Knowledge Catalog: ‏projects/PROJECT_ID/locations/LOCATION/entryGroups/ENTRY_GROUP_ID.
  • בשדה params, מגדירים את הפרמטרים הבאים:
    • ‫connector.host (חובה): שם המארח של סביבת העבודה ב-Databricks (לדוגמה, dbc-a1b2345c-d6e7.cloud.databricks.com).
    • connector.httpPath (חובה): הנתיב ב-HTTP של מחסן הנתונים ב-Databricks SQL (לדוגמה, /sql/1.0/warehouses/a1b2345c67890def).
    • ‫connector.authentication.oauth.clientId (חובה): מזהה הלקוח ב-OAuth של Databricks.
    • ‫connector.authentication.oauth.clientSecret (חובה): סוד הלקוח של Databricks OAuth.
    • ‫connector.networkAttachment (אופציונלי): מחבר הרשת בפורמט projects/PROJECT_ID/regions/REGION/networkAttachments/NETWORK_ATTACHMENT_ID.
    • ‫assets (חובה): רשימת האובייקטים של Databricks Unity Catalog שרוצים לייבא, בפורמט TYPE:METASTORE[/CATALOG[/SCHEMA[/OBJECT]]], למשל ["SCHEMA:my_metastore/main/sales"].
  • אופציונלי: כדי לשמור את פרטי הכניסה של OAuth מחוץ להגדרות ההעברה, מאחסנים אותם ב-Secret Manager:
    1. מגדירים את connector.authentication.oauth.clientSecret (ואת connector.authentication.oauth.clientId, אם רוצים) לשם המשאב של גרסת הסוד בפורמט projects/SECRET_PROJECT_ID/secrets/SECRET_ID/versions/VERSION_ID, ומוסיפים את שמות הפרמטרים האלה לשדה paramConfig.secretManagerManagedParams.
    2. מקצים את התפקיד Secret Manager Secret Accessor (roles/secretmanager.secretAccessor) בכל סוד לסוכן השירות של שירות העברת הנתונים ל-BigQuery בפרויקט שמכיל את הגדרות ההעברה (service-PROJECT_NUMBER@gcp-sa-bigquerydatatransfer.iam.gserviceaccount.com). הסודות יכולים להיות בפרויקט אחר. אם סוכן השירות לא יכול לקרוא סוד, ההרצה נכשלת לפני שהיא מתחילה ומופיעה שגיאה כמו Failed to retrieve secret ... Permission 'secretmanager.versions.access' denied. שירות העברת הנתונים ל-BigQuery קורא את הסודות בתחילת כל הרצה, כך שאם מגדירים את VERSION_ID ל-latest, הסוד שעבר רוטציה משמש החל מההרצה הבאה.

בדוגמה הבאה מוצג גוף בקשה של TransferConfig:

{
  "displayName": "databricks-unity-metadata-import",
  "dataSourceId": "databricks_unity",
  "schedule": "every 24 hours",
  "params": {
    "connector.host": "dbc-a1b2345c-d6e7.cloud.databricks.com",
    "connector.httpPath": "/sql/1.0/warehouses/a1b2345c67890def",
    "connector.authentication.oauth.clientId": "CLIENT_ID",
    "connector.authentication.oauth.clientSecret": "CLIENT_SECRET",
    "assets": [
      "SCHEMA:my_metastore/main/sales"
    ]
  },
  "metadataDestination": {
    "dataplexConfiguration": {
      "entryGroup": "projects/PROJECT_ID/locations/LOCATION/entryGroups/ENTRY_GROUP_ID"
    }
  }
}

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

מעקב אחרי משימה של מחבר Databricks Unity Catalog

אפשר לעקוב אחרי משימת קישור של Databricks Unity Catalog באמצעות מסוףGoogle Cloud או ה-API בארכיטקטורת REST.

המסוף

  1. במסוף Google Cloud , בדף Connectors, לוחצים על השם המוצג של משימת ההעברה של Databricks Unity Catalog.
  2. בכרטיסייה היסטוריית הפעלות, לוחצים על הצגת פרטים כדי לראות את היומנים.
  3. כדי לראות את הרשומות שנוצרו, לוחצים על הכרטיסייה Details ואז על הקישור לקבוצת הרשומות Metadata destination.

REST

  • כדי להציג את ההפעלות של הגדרת העברה ואת המצב שלהן, משתמשים ב-method‏ projects.locations.transferConfigs.runs.list.
  • בכל הפעלה, המטא-נתונים שנאספו מיובאים אל Knowledge Catalog באמצעות משימת ייבוא מטא-נתונים עם המזהה dts-run-RUN_ID. כדי לראות את תוצאת הייבוא, כמו מספר הרשומות שנוצרו, מסננים את יומני המשימה ב-Logging באמצעות השאילתה הבאה:

    logName="projects/PROJECT_ID/logs/dataplex.googleapis.com%2Fmetadata_job"
    AND resource.labels.metadata_job_id="dts-run-RUN_ID"
    
  • כדי לראות את תוצאת הייבוא בלי להשתמש ב-Logging, מפעילים את ה-method‏ projects.locations.metadataJobs.get ב-projects/PROJECT_ID/locations/LOCATION/metadataJobs/dts-run-RUN_ID. בשדה importResult מוצג מספר הרשומות והקישורים לרשומות שנוצרו, עודכנו, נמחקו או לא השתנו.

חיפוש והצגה של מטא-נתונים ב-Databricks Unity Catalog

  1. נכנסים לדף Search ב-Knowledge Catalog במסוף Google Cloud .

    מעבר לחיפוש

  2. בחלונית Filters, מסננים את הנכסים של Databricks Unity Catalog באמצעות הקטעים Project,‏ Systems ו-Type aliases. כדי לסנן את כל המטא-נתונים של Databricks Unity Catalog, בקטע Systems בוחרים באפשרות Imported Context, ובסעיף המשנה Managed Connectors בוחרים באפשרות Databricks Unity.

  3. בשדה החיפוש, מזינים מילת מפתח או שאילתת חיפוש בשפה טבעית. לדוגמה, כדי להציג את כל הנכסים של Databricks Unity Catalog באמצעות חיפוש מילות מפתח, מזינים system=DATABRICKS.

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

אתם יכולים גם להשתמש ב-API LookupContext כדי לאחזר את ההקשר של ה-LLM למשאבים ספציפיים ב-Databricks Unity Catalog. מידע נוסף מופיע במאמר אחזור ההקשר של נכסי נתונים.

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