分享方式:


使用系統資料表監視使用量

本文說明 Azure Databricks 中系統資料表的概念,並強調可用來充分利用系統資料表資料的資源。

什麼是系統資料表?

系統資料表是 system 目錄中,帳戶操作資料的 Azure Databricks 託管分析存放區。 系統資料表可用於回顧整個帳戶的歷程記錄。

注意

如需 system.information_schema 的文件,請參閱資訊結構描述

需求

  • 若要存取系統資料表,必須為 Unity Catalog 啟用工作區。 如需詳細資訊,請參閱啟用系統資料表結構描述

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

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

有哪些系統資料表可供使用?

目前,Azure Databricks 託管的系統資料表如下:

資料表 Description Location 支援串流 免費保留期間 包含全域或區域資料
稽核記錄 (公開預覽) 包含您區域中工作區所有稽核事件的記錄。 如需可用稽核事件的清單,請參閱診斷記錄參考 system.access.audit Yes 365 天 工作區層級的區域性事件。 帳戶層級的全域事件。
資料表譜系 (公開預覽) 在 Unity Catalog 資料表或路徑包含每個讀取或寫入事件的記錄。 system.access.table_lineage Yes 365 天 Regional
資料行譜系 (公開預覽) 在 Unity Catalog 資料行包含每個讀取或寫入事件的記錄 (但不包含沒有來源的事件)。 system.access.column_lineage Yes 365 天 Regional
計費使用量 包含帳戶中所有可計費使用量的記錄。 每筆使用記錄都是資源計費使用量每小時的彙總。 system.billing.usage Yes 365 天 全球
定價 SKU 價格的歷程記錄。 凡是 SKU 價格變更,就會新增記錄。 system.billing.list_prices No 不限定 全球
叢集 (公開預覽) 變化緩慢的維度資料表,內容包含任何叢集一段時間運算組態的完整歷程記錄。 system.compute.clusters Yes N/A Regional
節點時間軸 (公開預覽) 擷取通用和工作運算資源的使用率計量。 system.compute.node_timeline Yes 30 天 Regional
節點類型 (公開預覽) 使用基本硬體資訊擷取目前可用的節點類型。 system.compute.node_types No N/A 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 Yes 90 天 Regional
無塵室活動 (公開預覽) 擷取與無塵室相關的事件。 system.access.clean_room_events Yes 365 天 Regional
模型服務端點的使用量 (公開預覽) 擷取模型服務端點每項要求及其回覆的權杖計數。 system.serving.endpoint_usage Yes 90 天 Regional
模型服務端點資料 (公開預覽) 變化緩慢的維度資料表,將每個服務外部模型中繼資料儲存於模型服務端點。 system.serving.served_entities Yes 365 天 Regional

計費使用量資料表和價格資料表是免費的。 公開預覽的資料表在預覽期間也可免費使用,但未來可能產生費用。

注意

除了上面所列的系統資料表,您還可能在帳戶看到其他系統資料表。 這些資料表目前為個人預覽版,預設為空白。 如果您有興趣使用上述任何資料表,請連絡 Databricks 帳戶團隊。

啟用系統資料表結構描述

由於系統資料表受 Unity Catalog 控管,因此這個帳戶中至少需要一個啟用 Unity Catalog 的工作區,才能啟用及存取系統資料表。 系統資料表包含您帳戶中所有工作區的資料,但只能從啟用 Unity Catalog 的工作區存取這些資料。

系統資料表已在結構描述層級啟用。 如果您啟用系統結構描述,同時也啟用了該結構描述內的所有資料表。 釋出新的結構描述時,帳戶管理員必須手動啟用結構描述。

系統資料表必須由帳戶管理員啟用。您可以使用 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 Catalog 控管。 根據預設,使用者無法存取這些系統結構描述。 若要授與存取權,身兼中繼存放區管理員和帳戶管理員的使用者必須授與系統結構描述的 USESELECT 權限。 請參閱管理 Unity Catalog 中的權限

系統資料表是唯讀,無法修改。

注意

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

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

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

即使系統資料表只能透過 Unity Catalog 工作區存取,但資料表也會包含您帳戶中非 Unity Catalog 工作區的操作資料。

系統資料表資料儲存在哪裡?

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

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

系統資料表位於目錄總管中的什麼地方?

帳戶中的系統資料表位於名為 system 的目錄,每個 Unity Catalog 中繼存放區都包含該目錄。 您會在 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")

已知問題

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

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

  • 系統結構描述 system.operational_datasystem.lineage 已被取代,將包含空的資料表。

  • __internal_logging 系統資料表結構描述用於支援使用推斷資料表的酬載記錄。 帳戶管理員看得到這個結構描述,但無法啟用,也不應該用於客戶工作流程。