使用 Knowledge Catalog (原稱 Dataplex Universal Catalog) 連接器,直接將 Databricks Unity Catalog 的中繼資料匯入 Google Cloud,打破資料孤島,避免在工具之間切換。
這個連接器支援託管於Google Cloud、Microsoft Azure 或 Amazon Web Services (AWS) 的 Databricks Unity Catalog 執行個體。
下表列出 Databricks Unity Catalog 連接器擷取的中繼資料:
| 類別 | 擷取的中繼資料 |
|---|---|
| 技術 |
|
| 可使用 |
|
| 業務 |
|
| 語義 |
|
限制
Databricks Unity Catalog 連接器有下列限制:
- 不支援歷程。
- 整合功能 (Genie API) 不支援語意標記和組織詞彙。
- 連接器會匯入 Iceberg 資料表的中繼資料,但不會自動將匯入的項目連結至對應的 Google Cloud Lakehouse Databricks Unity Catalog Iceberg REST Catalog (IRC) 項目。
事前準備
從 Databricks Unity Catalog 匯入中繼資料前,請先完成下列工作:
IAM 角色和權限
如要建立及管理 Knowledge Catalog 連接器工作,您需要具備 Knowledge Catalog 和 BigQuery 資料移轉服務權限的 Identity and Access Management (IAM) 角色。
如要取得設定 Databricks Unity Catalog 連接器所需的權限,請要求管理員授予您下列 IAM 角色:
- 如要建立及管理項目群組,請在專案中具備 Dataplex Catalog 管理員 (
roles/dataplex.catalogAdmin)、Dataplex Catalog 編輯者 (roles/dataplex.catalogEditor) 或 Dataplex 項目群組擁有者 (roles/dataplex.entryGroupOwner) 角色。 - 如要查看 Databricks Unity Catalog 中繼資料,請在專案中啟用 Dataplex Catalog 檢視者 (
roles/dataplex.catalogViewer)。 - 如要建立及管理 BigQuery 資料移轉服務移轉工作,請在專案中指派 BigQuery 管理員 (
roles/bigquery.admin) 角色。 - 如要在 Cloud Logging 查看記錄,請在專案中具備記錄檢視者 (
roles/logging.viewer) 角色。
您也必須將下列兩項角色授予 BigQuery 資料移轉服務代理程式 (service-PROJECT_NUMBER@gcp-sa-bigquerydatatransfer.iam.gserviceaccount.com):
- Dataplex 項目群組匯入者 (
roles/dataplex.entryGroupImporter),適用於目的地項目群組或包含該群組的專案。這個角色可讓服務代理將中繼資料匯入項目群組 (dataplex.entryGroups.import)。 Dataplex 項目和 EntryLink 擁有者 (
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 中具備下列權限:
- 連接器使用的 Databricks SQL 倉儲具備
Can use權限。 - 目標目錄的
BROWSE權限,或目標目錄、結構定義和資料表或檢視表的USE CATALOG、USE SCHEMA和SELECT。 system目錄上的USE CATALOG,以及下列系統結構定義上的USE SCHEMA和SELECT:system.information_schema:必須具備這項權限,才能讀取目錄、結構定義、資料表、資料欄、磁碟區、常式、限制和標記。system.access和system.query:選用,匯入用量指標、用量深入分析和查詢記錄彙整時必須提供。system.data_quality_monitoring:選用,匯入異常偵測結果時必須提供。
- 選用:Lakehouse Monitoring 輸出資料表 (
TABLE_NAME_profile_metrics和TABLE_NAME_drift_metrics) 的USE CATALOG、USE SCHEMA和SELECT,用於匯入資料剖析和偏移指標。
如要對遠端 Databricks 目錄執行 SQL 查詢或 Spark 工作,請參閱「設定 Databricks Unity Catalog 的跨雲端連線」。
網路事前準備
如要讓 BigQuery 資料移轉服務透過私人網路中的私人 IP 位址,安全連線至外部資料庫或第三方雲端資料來源,請透過 Private Service Connect 設定網路連結。
如果您使用公開 IP 位址連線至地端部署環境或雲端託管執行個體,則不需要網路連結。
設定 Databricks Unity Catalog 連接器
使用 Google Cloud 控制台或 REST API 設定 Databricks Unity Catalog 連接器。
控制台
前往 Google Cloud 控制台的「Knowledge Catalog」頁面。
在導覽選單的「Manage」(管理) 部分,依序點選「Connectors」(連接器) 和「Add connection」(新增連線)。
在「Connectors」(連接器) 清單中,選取「Databricks Unity Catalog」卡片。
在「Data source details」(資料來源詳細資料) 部分,提供 Databricks Unity Catalog 執行個體的連線詳細資料:
- 在「Network attachment」(網路連結) 部分,視需要選取現有的網路連結,或建立一個。
- 輸入「Workspace Host」(工作區主機)、「SQL Warehouse HTTP Path」(SQL 倉儲 HTTP 路徑)、「Client Id」(用戶端 ID) 和「Client Secret」(用戶端密鑰)。
在「Databricks objects to transfer」部分,點選「Browse」(瀏覽),選取要匯入 Knowledge Catalog 的 metastore、目錄、結構定義或個別物件 (資料表、檢視表、磁碟區、函式和程序)。選取 metastore、目錄或結構定義,即可匯入當中的所有物件。
您也可以手動輸入物件,格式為
TYPE:METASTORE[/CATALOG[/SCHEMA[/OBJECT]]],其中TYPE為METASTORE、CATALOG、SCHEMA、TABLE、VIEW、VOLUME、FUNCTION或PROCEDURE(例如SCHEMA:my_metastore/main/sales)。不支援名稱模式。
在「Destination settings」(目的地設定) 部分:
- 按一下「Browse」(瀏覽),然後選取現有的 Knowledge Catalog 項目群組來儲存匯入的中繼資料,或按一下「Create new entry group」(建立新的項目群組)。
- 選擇要立即或稍後設定項目群組的權限。如要允許使用者查看匯入的中繼資料,請設定項目群組的權限。如果您未在專案層級將 Dataplex Entry Group Importer (
roles/dataplex.entryGroupImporter) 角色或dataplex.entryGroups.import權限授予 BigQuery 資料移轉服務代理,請在這個項目群組授予該角色或權限。您仍須在專案層級授予 Dataplex 項目和 EntryLink 擁有者 (roles/dataplex.entryOwner) 角色,因為系統會在專案層級檢查dataplex.entryLinks.reference權限。詳情請參閱「IAM 角色和權限」。
在「Transfer config name」(移轉設定名稱) 部分,「Display name」(顯示名稱) 請輸入中繼資料匯入工作的名稱。
在「Schedule options」(排程選項) 部分,設定中繼資料匯入工作的頻率。如果選取「On-demand」(隨選),則只有在您手動觸發時,工作才會執行。
選用步驟:在「Notification options」(通知選項) 部分,設定工作失敗時的電子郵件或 Pub/Sub 通知。
(選用) 在「Advanced options」(進階選項) 部分,設定加密設定。如果選取客戶自行管理的加密金鑰 (CMEK),系統會使用該金鑰,加密在 Knowledge Catalog 中繼資料匯入工作開始前,暫存的所有資料。金鑰不會加密目的地 Knowledge Catalog 項目群組中的中繼資料。
按一下 [儲存]。
REST
請使用 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(必要):Databricks SQL 倉儲的 HTTP 路徑 (例如/sql/1.0/warehouses/a1b2345c67890def)。connector.authentication.oauth.clientId(必要):Databricks OAuth 用戶端 ID。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 的 Secret Manager Secret 存取者 (
roles/secretmanager.secretAccessor) 角色,授予包含移轉設定 (service-PROJECT_NUMBER@gcp-sa-bigquerydatatransfer.iam.gserviceaccount.com) 的專案 BigQuery 資料移轉服務代理。Secret 可以位於其他專案。如果服務代理無法讀取 Secret,執行作業就會在啟動前失敗,並顯示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 連接器工作
使用Google Cloud 控制台或 REST API 監控 Databricks Unity Catalog 連接器工作。
控制台
- 在 Google Cloud 控制台的「Connectors」(連接器) 頁面,按一下 Databricks Unity Catalog 移轉工作的「Display name」(顯示名稱)。
- 在「執行記錄」分頁中,按一下「查看詳細資料」即可查看記錄。
- 如要查看建立的項目,請按一下「Details」(詳細資料) 分頁標籤,然後點選「Metadata destination」(中繼資料目的地) 項目群組連結。
REST
- 如要列出移轉設定的執行作業並查看其狀態,請使用
projects.locations.transferConfigs.runs.list方法。 每次執行時,系統都會透過 ID 為
dts-run-RUN_ID的中繼資料匯入工作,將收集到的中繼資料匯入 Knowledge Catalog。如要查看匯入結果 (例如建立的項目數量),請使用下列查詢,在 Logging 中篩選工作記錄:logName="projects/PROJECT_ID/logs/dataplex.googleapis.com%2Fmetadata_job" AND resource.labels.metadata_job_id="dts-run-RUN_ID"如要查看匯入結果,但不使用 Logging,請對
projects/PROJECT_ID/locations/LOCATION/metadataJobs/dts-run-RUN_ID呼叫projects.locations.metadataJobs.get方法。importResult欄位會顯示已建立、更新、未變更和刪除的項目和項目連結數量。
搜尋及查看 Databricks Unity Catalog 中繼資料
在 Google Cloud 控制台,前往 Knowledge Catalog 的「Search」(搜尋) 頁面。
在「篩選器」面板中,使用「專案」、「系統」和「類型別名」部分,篩選 Databricks Unity Catalog 資產。如要篩選所有 Databricks Unity Catalog 中繼資料,請在「Systems」(系統) 區段中選取「Imported Context」(匯入的內容),然後在「Managed Connectors」(代管連接器) 子區段中選取「Databricks Unity」。
在搜尋欄位中,輸入關鍵字或自然語言搜尋查詢。舉例來說,如要透過關鍵字搜尋查看所有 Databricks Unity Catalog 資產,請輸入
system=DATABRICKS。如要進一步瞭解如何搜尋資源,請參閱「在 Knowledge Catalog 中搜尋資源」。如要進一步瞭解可在搜尋欄位中使用的運算式,請參閱「Knowledge Catalog 的搜尋語法」。
您也可以使用 LookupContext API,擷取特定 Databricks Unity Catalog 資源的 LLM 情境。詳情請參閱「擷取資料資產的背景資訊」。
後續步驟
- 瞭解如何管理連接器工作。