共用方式為


使用系統數據表監視帳戶活動

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

什麼是系統數據表?

系統資料表是由 Azure Databricks 裝載的分析儲存庫,位於 system 目錄中的帳戶營運資料。 系統數據表可用於帳戶的歷程記錄可觀察性。

注意

若需要關於 system.information_schema的文件,請參閱 資訊結構

需求

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

  • 下列區域無法使用系統資料表:

    • Azure 中國區域
    • Azure Government 區域
    • 印度西部
    • 瑞士西部

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

目前,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 不限定 全球
叢集 (公開預覽) 緩時變維度數據表,其中包含任何叢集一段時間計算組態的完整歷程記錄。 system.compute.clusters Yes 365 天 Regional
節點時間軸 (公開預覽) 擷取通用和工作運算資源的使用率計量。 system.compute.node_timeline Yes 30 天 Regional
節點類型 (公開預覽) 使用基本硬體資訊擷取目前可用的節點類型。 system.compute.node_types No N/A Regional
SQL 倉儲 (公開預覽) 包含任何 SQL 倉儲一段時間的組態完整歷程記錄。 system.compute.warehouses Yes 365 天 Regional
SQL 倉儲事件 (公開預覽) 擷取與 SQL 倉儲相關的事件。 例如,啟動、停止、執行、擴大和縮小。 system.compute.warehouse_events Yes 365 天 Regional
工作工作 (公開預覽) 追蹤在帳戶中建立的所有工作。 system.lakeflow.jobs Yes 365 天 Regional
工作任務 (公開預覽) 追蹤在帳戶中執行的所有工作任務。 system.lakeflow.job_tasks Yes 365 天 Regional
工作執行時間軸 (公開預覽) 追蹤工作執行的開始和結束時間。 system.lakeflow.

job_run_timeline
Yes 365 天 Regional
工作任務時間軸 (公開預覽) 追蹤用於工作任務執行的開始和結束時間和運算資源。 system.lakeflow.

job_task_run_timeline
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
Databricks Assistant 活動 (公開預覽) 追蹤傳送至 Databricks Assistant 的使用者訊息。 system.access.assistant_events No 365 天 Regional
查詢歷史記錄 (公開預覽) 擷取在 SQL 倉儲和無伺服器計算上執行的所有查詢記錄,適用於 筆記本、作業 system.query.history No 90 天 Regional
無塵室活動 (公開預覽) 擷取與無塵室相關的事件。 system.access.clean_room_events Yes 365 天 Regional
模型服務端點的使用量 (公開預覽) 擷取模型服務端點每項要求及其回覆的權杖計數。 若要擷取此資料表中的端點使用量,您必須 啟用服務端點上的使用量追蹤 system.serving.endpoint_usage. Yes 90 天 Regional
模型服務端點資料 (公開預覽) 緩時變維度數據表,會將每個服務基礎模型的元數據儲存在服務端點的模型中。 system.serving.served_entities Yes 365 天 Regional
網路存取事件 (公開預覽) 用於記錄每次從您的帳戶被拒絕網際網路存取的事件的表格。 system.access.outbound_network Yes 365 天 Regional

這些計費使用量和定價表可免費使用。 公開預覽中的數據表也可以在預覽期間免費使用,但未來可能會產生費用。

注意

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

啟用系統數據表架構

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

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

系統數據表必須由帳戶管理員啟用。您可以在 Databricks CLI 中使用 system-schemas 命令,或使用 SystemSchemas API來啟用系統數據表。

注意

默認會啟用 billing 架構。 其他結構描述必須手動啟用。

列出可用的系統架構

使用下列 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 目錄所控管。 根據預設,使用者無法存取這些系統結構描述。 若要授予存取權,具有中繼存放區系統管理員和帳戶管理員雙重身份的用戶必須在系統結構描述上授予 USESELECT 許可權。 請參閱 在 Unity 目錄中管理許可權。

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

注意

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

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

系統數據表包含您帳戶中部署在相同雲端區域中之所有工作區的操作數據。 計費系統數據表包含全帳戶的數據。

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

系統數據表數據儲存在哪裡?

您的帳戶的系統表數據儲存在與中繼資料庫位於相同區域的 Azure Databricks 託管儲存帳戶中。 使用 Delta Sharing 安全地與您共用資料。

每個數據表都有免費的數據保留期間。 如需有關延長保留期間的資訊,請連絡您的 Azure Databricks 帳戶團隊。

系統數據表位於目錄總管中的位置?

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

串流系統數據表的考慮

Azure Databricks 使用 Delta Sharing 與客戶共用系統數據表數據。 使用 Delta Sharing 串流時,請注意下列考量事項:

  • 如果您正在使用串流系統資料表,請將 [skipChangeCommits] 選項設定為 true。 這可確保串流工作不會因系統表中的刪除而中斷。 請參閱忽略更新和刪除
  • Delta Sharing 串流不支援 Trigger.AvailableNow。 它會轉換成 Trigger.Once

如果您在串流作業中使用觸發程式,並發現它無法趕上最新的系統數據表版本,Databricks 建議增加作業的排程頻率。

從串流系統資料表讀取增量變更

spark.readStream.option("skipChangeCommits", "true").table("system.billing.usage")

已知問題

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

  • __internal_logging 系統數據表架構可用來支援裝載記錄,已啟用 AI 閘道的推斷數據表, 外部模型和布建的輸送量工作負載。 帳戶管理員可以看到此架構,但無法啟用,且不應該用於客戶工作流程。

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

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