使用系統數據表監視使用量

重要

這項功能處於公開預覽狀態。 目前沒有使用這項功能的費用。 未來,某些使用量可能會產生費用。

本文說明 Azure Databricks 中的系統數據表概念,並醒目提示可用來充分利用系統數據表數據的資源。

什麼是系統數據表?

系統數據表是目錄中您帳戶作業數據的 system Azure Databricks 裝載分析存放區。 系統數據表可用於帳戶的歷程記錄可觀察性。

注意

如需 的檔, system.information_schema請參閱 信息架構

需求

若要存取系統數據表,您的工作區必須啟用 Unity 目錄。 如需詳細資訊,請參閱 啟用系統數據表架構

有哪些系統數據表可供使用?

目前,Azure Databricks 會裝載系統數據表:

資料表 Description Location 支援串流 保留期 包含全域或區域數據
稽核記錄 包含您區域中工作區中所有稽核事件的記錄。 如需可用稽核事件的清單,請參閱 診斷記錄參考 system.access.audit Yes 365 天 工作區層級事件的區域性。 帳戶層級事件的全域。
表格譜系 在 Unity 目錄資料表或路徑上包含每個讀取或寫入事件的記錄。 system.access.table_lineage Yes 365 天 Regional
數據行譜系 在 Unity 目錄資料行上包含每個讀取或寫入事件的記錄(但不包含沒有來源的事件)。 system.access.column_lineage Yes 365 天 Regional
計費使用量 包含帳戶中所有可計費使用量的記錄。 每個使用量記錄都是資源計費使用量的每小時匯總。 system.billing.usage Yes 365 天 全球
定價 SKU 定價的歷程記錄。 每次有 SKU 價格變更時,就會新增記錄。 system.billing.list_prices No N/A 全球
叢集 緩時變維度數據表,其中包含任何叢集一段時間內叢集組態的完整歷程記錄。 system.compute.clusters Yes Regional
節點類型 使用其基本硬體資訊擷取目前可用的節點類型。 system.compute.node_types No N/A Regional
SQL 倉儲事件 擷取與 SQL 倉儲相關的事件。 例如,啟動、停止、執行、相應增加和減少。 system.compute.warehouse_events Yes 365 天 Regional
Marketplace 漏鬥圖事件 包含您清單的消費者印象和漏鬥數據。 system.marketplace.listing_

funnel_events
Yes 365 天 Regional
Marketplace 清單存取 包含已完成 要求數據的 取用者資訊,或 取得清單上的數據 事件。 system.marketplace.listing_

access_events
Yes 365 天 Regional
預測性優化 追蹤預測優化功能的作業歷程記錄。 system.storage.predictive_

optimization_operations_history
No 180 天 Regional

注意

除了上面所列的系統數據表之外,您可能會在您的帳戶中看到其他系統數據表。 這些數據表目前為 Private Preview,預設為空白。 如果您有興趣使用上述任何數據表,請連絡您的 Databricks 帳戶小組。

啟用系統數據表架構

由於系統數據表受到 Unity 目錄的控管,因此您必須在帳戶中至少有一個已啟用 Unity 目錄的工作區,才能啟用和存取系統數據表。 系統數據表包含您帳戶中所有工作區的數據,但只能從已啟用 Unity 目錄的工作區存取這些數據。

系統會在架構層級啟用系統數據表。 如果您啟用系統架構,您可以啟用該架構內的所有資料表。 發行新的架構時,帳戶管理員必須手動啟用架構。

系統數據表必須由帳戶管理員啟用。您可以使用 SystemSchemas API 來啟用系統資料表

列出可用的系統架構

使用下列 curl 命令以列出可用的系統結構描述:

curl -v -X GET -H "Authorization: Bearer <PAT Token>" "https://adb-<xxx>.azuredatabricks.net/api/2.0/unity-catalog/metastores/<metastore-id>/systemschemas"

以下是命令的 GET 範例輸出:

{"schemas":[{"schema":"access","state":"<AVAILABLE OR EnableCompleted>"},{"schema":"billing","state":"<AVAILABLE OR EnableCompleted>"},{"schema":"information_schema","state":"<AVAILABLE OR EnableCompleted>"}]}

state: AVAILABLE:系統架構可供使用,但尚未啟用。

state: EnableCompleted:您已啟用系統架構,而且它會顯示在目錄總管中。

啟用系統架構

使用下列 curl 命令以啟用系統結構描述:

curl -v -X PUT -H "Authorization: Bearer <PAT Token>" "https://adb-<xxx>.azuredatabricks.net/api/2.0/unity-catalog/metastores/<metastore-id>/systemschemas/<SCHEMA_NAME>"

如果成功啟用系統架構,則會傳回結果碼 200

如果您嘗試重新啟用系統架構,則會傳回下列專案: "error_code":"SCHEMA_ALREADY_EXISTS","message":"Schema <schema-name> already exists"

停用系統架構

使用下列 curl 命令來停用系統架構:

curl -v -X DELETE -H "Authorization: Bearer <PAT Token>" "https://adb-<xxx>.azuredatabricks.net/api/2.0/unity-catalog/metastores/<metastore-id>/systemschemas/<SCHEMA_NAME>"

授與系統數據表的存取權

系統數據表存取是由 Unity 目錄所控管。 根據預設,沒有任何使用者可以存取系統數據表。 若要授與存取權,中繼存放區系統管理員或其他特殊許可權用戶必須授 USE 與系統 SELECT 架構的許可權。 請參閱 在 Unity 目錄中管理許可權。

系統數據表是唯讀的,無法修改。

注意

如果您的帳戶是在 2023 年 11 月 9 日之後建立的,您預設可能沒有中繼存放區管理員。 如需詳細資訊,請參閱 設定和管理 Unity 目錄

系統數據表是否包含您帳戶中所有工作區的數據?

稽核記錄和譜系數據表包含您帳戶中部署在相同雲端區域中之所有工作區的操作數據。 計費系統數據表 (system.billing.usage) 包含您帳戶中所有工作區的數據,不論其部署在哪個區域。

即使系統數據表只能透過 Unity 目錄工作區存取,但數據表也會在您的帳戶中包含非 Unity 目錄工作區的操作數據。

系統數據表位於何處?

您的帳戶中的系統數據表位於名為 system的目錄中,其包含在每個 Unity 目錄中繼存放區中。 在目錄中 system ,您會看到架構,例如 accessbilling ,其中包含系統數據表。

注意

在系統數據表公開預覽期間,Azure Databricks 會保留所有系統數據表數據。

串流系統數據表的考慮

Delta Sharing 支援系統數據表的存取。 使用差異共用進行串流時,請注意下列考慮:

  • 如果您使用串流搭配系統資料表,請將 skipChangeCommit 選項設定為 true。 這可確保串流作業不會中斷系統數據表中的刪除。 請參閱 忽略更新和刪除
  • Trigger.AvailableNow 差異共用串流不支援。 它會轉換成 Trigger.Once
  • 如果您在串流作業中使用觸發程式,並發現作業未趕上最新的系統數據表版本,Databricks 建議增加作業的排程頻率。

已知問題

  • 目前不支援即時監視。 資料會全天更新。 如果您沒有看到最近的事件記錄,請稍後再返回檢查。

  • 若要啟用系統資料表,您可能需要將網路存取授與系統資料表 Blob 儲存體端點。 若要檢視每個區域系統資料表的記憶體端點清單,請參閱 儲存體 端點 IP 位址

  • 系統架構 system.operational_datasystem.lineage 已被取代,且將包含空的數據表。