כדי לפרק את סילו הנתונים ולא לעבור בין כלים, אתם יכולים להשתמש במחבר של Knowledge Catalog (לשעבר Dataplex Universal Catalog) כדי לייבא מטא-נתונים מ-Databricks Unity Catalog ישירות אל Google Cloud.
המחבר הזה תומך במכונות של Databricks Unity Catalog שמתארחות ב-Google Cloud, ב-Microsoft Azure או ב-Amazon Web Services (AWS).
בטבלה הבאה מפורטים המטא-נתונים שהמחבר של Databricks Unity Catalog מתעד:
| קטגוריה | המטא-נתונים שתועדו |
|---|---|
| טכני |
|
| תפעולי |
|
| עסקי |
|
| סמנטי |
|
מגבלות
למחבר Databricks Unity Catalog יש את המגבלות הבאות:
- אין תמיכה בשושלת נתונים.
- תגים סמנטיים ומילוני מונחים ארגוניים לא נתמכים בשילוב (Genie API).
- המחבר מייבא את המטא-נתונים של טבלאות Iceberg, אבל לא מקשר באופן אוטומטי את הרשומות המיובאות לרשומות התואמות ב- Google Cloud Lakehouse Databricks Unity Catalog Iceberg REST Catalog (IRC).
לפני שמתחילים
לפני שאתם מייבאים מטא-נתונים מ-Databricks Unity Catalog, אתם צריכים לבצע את הפעולות הבאות:
- נותנים את התפקידים וההרשאות הנדרשים.
- מפעילים את Dataplex API ואת שירות העברת נתונים ל-BigQuery API.
- לעמוד בדרישות המוקדמות של Databricks Unity Catalog.
- עומדים בדרישות המוקדמות של הרשת.
תפקידים והרשאות של IAM
כדי ליצור ולנהל משימה של מחבר Knowledge Catalog, אתם צריכים תפקידים בניהול זהויות והרשאות גישה (IAM) שמעניקים הרשאות ל-Knowledge Catalog ולשירות העברת הנתונים ל-BigQuery.
כדי לקבל את ההרשאות שנדרשות להגדרת מחבר Databricks Unity Catalog, צריך לבקש מהאדמין להקצות לכם את התפקידים הבאים ב-IAM:
- כדי ליצור ולנהל קבוצות של רשומות:
אדמין של Dataplex Catalog
(
roles/dataplex.catalogAdmin), עריכה של Dataplex Catalog (roles/dataplex.catalogEditor) או בעלים של קבוצת רשומות ב-Dataplex (roles/dataplex.entryGroupOwner) בפרויקט. - כדי לצפות במטא-נתונים של Databricks Unity Catalog:
Dataplex Catalog Viewer
(
roles/dataplex.catalogViewer) בפרויקט. - כדי ליצור ולנהל משימות העברה של שירות העברת הנתונים ל-BigQuery:
אדמין ב-BigQuery
(
roles/bigquery.admin) בפרויקט. - כדי לצפות ביומנים ב-Cloud Logging: התפקיד צפייה ביומנים (
roles/logging.viewer) בפרויקט.
בנוסף, צריך להקצות לסוכן השירות של שירות העברת הנתונים ל-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.useDataProfileAspectdataplex.entryGroups.useDataQualityScorecardAspectdataplex.entryGroups.useManagedConnectorTypesdataplex.entryGroups.useReferenceEntryLinkdataplex.entryGroups.useSchemaAspectdataplex.entryGroups.useSchemaJoinAspectdataplex.entryGroups.useSchemaJoinEntryLinkdataplex.entryGroups.useUsageAspectdataplex.entryLinks.reference
צריך להקצות את התפקיד הזה בפרויקט, ולא רק בקבוצת הרשומות, כי הייבוא בודק את ההרשאה
dataplex.entryLinks.referenceבפרויקט. אם לסוכן השירות אין את ההרשאה הזו בפרויקט, הפעלת ההעברה נכשלת ומוצגת שגיאה כמוPermission 'dataplex.entryLinks.reference' denied, ולא מיובאים מטא-נתונים.
במקום להקצות את שני התפקידים האלה, אתם יכולים להקצות את התפקיד בעלים של קבוצת רשומות ב-Dataplex (roles/dataplex.entryGroupOwner) בפרויקט שמכיל את קבוצת הרשומות של היעד. התפקיד הזה כולל את ההרשאות של שני התפקידים, והוא גם מאפשר לסוכן השירות ליצור, למחוק ולנהל את הגישה לכל קבוצות הרשומות בפרויקט.
במאמר ניהול הגישה תוכלו לקרוא מידע נוסף על מתן תפקידים.
הפעלת ממשקי ה-API
מפעילים את Dataplex API ואת שירות העברת נתונים ל-BigQuery 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.
המסוף
נכנסים לדף Knowledge Catalog במסוף Google Cloud .
בתפריט הניווט, בקטע Manage, לוחצים על Connectors ואז על Add connection.
ברשימה Connectors, לוחצים על הכרטיס Databricks Unity Catalog.
בקטע פרטי מקור הנתונים, מזינים את פרטי החיבור של המכונה של 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). אין תמיכה בתבניות של שמות.
בקטע הגדרות היעד:
- לוחצים על 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.
בקטע Transfer config name, בשדה השם המוצג, מזינים שם למשימת הייבוא של המטא-נתונים.
בקטע Schedule options, מגדירים את התדירות של משימת ייבוא המטא-נתונים. אם בוחרים באפשרות On-demand, המשימה תפעל רק כשמפעילים אותה באופן ידני.
אופציונלי: בקטע Notification options, מגדירים התראה באימייל או ב-Pub/Sub על משימות שנכשלו.
אופציונלי: בקטע Advanced options, מגדירים את ההצפנה. אם בוחרים במפתח הצפנה בניהול הלקוח (CMEK), המפתח מצפין את כל הנתונים הזמניים שנוצרו לפני שהתחילו משימות הייבוא של המטא-נתונים של Knowledge Catalog. המפתח לא מצפין את המטא-נתונים בקבוצת הרשומות של Knowledge Catalog ביעד.
לוחצים על 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:
- מגדירים את
connector.authentication.oauth.clientSecret(ואתconnector.authentication.oauth.clientId, אם רוצים) לשם המשאב של גרסת הסוד בפורמטprojects/SECRET_PROJECT_ID/secrets/SECRET_ID/versions/VERSION_ID, ומוסיפים את שמות הפרמטרים האלה לשדהparamConfig.secretManagerManagedParams. - מקצים את התפקיד 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.
המסוף
- במסוף Google Cloud , בדף Connectors, לוחצים על השם המוצג של משימת ההעברה של Databricks Unity Catalog.
- בכרטיסייה היסטוריית הפעלות, לוחצים על הצגת פרטים כדי לראות את היומנים.
- כדי לראות את הרשומות שנוצרו, לוחצים על הכרטיסייה 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
נכנסים לדף Search ב-Knowledge Catalog במסוף Google Cloud .
בחלונית Filters, מסננים את הנכסים של Databricks Unity Catalog באמצעות הקטעים Project, Systems ו-Type aliases. כדי לסנן את כל המטא-נתונים של Databricks Unity Catalog, בקטע Systems בוחרים באפשרות Imported Context, ובסעיף המשנה Managed Connectors בוחרים באפשרות Databricks Unity.
בשדה החיפוש, מזינים מילת מפתח או שאילתת חיפוש בשפה טבעית. לדוגמה, כדי להציג את כל הנכסים של Databricks Unity Catalog באמצעות חיפוש מילות מפתח, מזינים
system=DATABRICKS.איך מחפשים משאבים ב-Knowledge Catalog כדי לקרוא מידע נוסף על הביטויים שאפשר להשתמש בהם בשדה החיפוש, ראו תחביר חיפוש עבור Knowledge Catalog.
אתם יכולים גם להשתמש ב-API LookupContext כדי לאחזר את ההקשר של ה-LLM למשאבים ספציפיים ב-Databricks Unity Catalog. מידע נוסף מופיע במאמר אחזור ההקשר של נכסי נתונים.