使用系统表监视帐户活动

本文介绍 Azure Databricks 中系统表的概念,并重点介绍可用于充分利用系统表数据的资源。

什么是系统表?

系统表是在 system 目录中找到的帐户操作数据的 Azure Databricks 托管的分析存储。 系统表可用于跨帐户观测历史记录。

注意

有关 system.information_schema 的文档,请参阅信息架构

要求

  • 要访问系统表,必须为 Unity Catalog 启用你的工作区。 有关详细信息,请参阅 Access 系统表
  • 以下区域不提供系统表:
    • Azure 中国区域
    • Azure 政府区域
    • 印度西部
    • 瑞士西部

可以使用哪些系统表?

目前,Azure Databricks 托管以下系统表:

说明 支持流式处理 免费保留期 包括全局或区域数据
审核日志(公共预览版) 在区域中包括来自工作区的所有审核事件的记录。 有关可用审核事件的列表,请参阅诊断日志参考
表路径system.access.audit
365 天 区域用于工作区级事件。 全局用于帐户级事件。
可计费使用情况 包括帐户中所有可计费使用情况的记录。
表路径system.billing.usage
365 天 全局
数据清洁房间事件(公共预览版) 捕获与数据清洁房间相关的事件。
表路径system.access.clean_room_events
365 天 区域
群集 一个逐渐变化的维度表,其中包含任何群集随时间变化的计算配置的完整历史记录。 365 天 区域
列世系 包括 Unity Catalog 列上每个读取或写入事件的记录(但不包括没有源的事件)。
表路径system.access.column_lineage
365 天 区域
数据分类结果 (Beta) 在元存储库中跨已启用的目录存储敏感数据类别的列级检测结果。
表路径system.data_classification.results
365 天 区域
数据质量监视结果 (Beta) 在数据目录中存储已启用表的数据质量监测检查(新鲜度、完整性)以及事件信息的结果,包括对下游影响的评估和根本原因的分析。
表路径system.data_quality_monitoring.table_results
未定义 区域
Databricks 助手事件(公共预览版) 跟踪发送到 Databricks 助手的用户消息。
表路径system.access.assistant_events
365 天 区域
Delta Sharing 数据具体化事件 捕获根据视图、物化视图和流式表间共享创建的数据物化事件。
表路径system.sharing.materialization_history
365 天 区域用于工作区级事件。
作业运行时间线(公共预览版) 跟踪作业运行的开始和结束时间。
表路径system.lakeflow.job_run_timeline
365 天 区域
作业任务时间线(公共预览版) 跟踪作业任务运行的开始和结束时间,及其使用的计算资源。
表路径system.lakeflow.job_task_run_timeline
365 天 区域
作业任务(公共预览版) 跟踪帐户中运行的所有作业任务。
表路径system.lakeflow.job_tasks
365 天 区域
作业(公共预览版) 跟踪在帐户中创建的所有作业。
表路径system.lakeflow.jobs
365 天 区域
市场漏斗事件(公共预览版) 包括列表的使用者印象和漏斗数据。
表路径system.marketplace.listing_funnel_events
365 天 区域
市场列表访问(公共预览版) 包含对你的商品列表已完成的请求数据获取数据事件的消费者信息。
表路径system.marketplace.listing_access_events
365 天 区域
MLflow 跟踪试验元数据 (公共预览版) 每行表示在 Databricks 管理的 MLflow 系统中创建的试验。
表路径system.mlflow.experiments_latest
180 天 区域
MLflow 跟踪运行元数据 (公共预览版) 每行表示在 Databricks 托管的 MLflow 系统中创建的运行。
表路径system.mlflow.runs_latest
180 天 区域
MLflow 跟踪运行指标 (公共预览版) 保存记录到与给定模型训练、评估或代理开发关联的 MLflow 的时序指标。
表路径system.mlflow.run_metrics_history
180 天 区域
模型服务终结点数据(公共预览版) 一个变化缓慢的维度表,在模型服务终结点中存储每个提供的基础模型的元数据。
表路径system.serving.served_entities
365 天 区域
模型服务终结点使用情况(公共预览版) 捕获对模型服务终结点的每个请求及其响应的令牌计数。 若要捕获此表中的终结点使用情况,必须在服务终结点上启用使用情况跟踪
表路径system.serving.endpoint_usage
90 天 区域
网络访问事件(入站) (公共预览版) 一个表,用于记录每次对工作区的入站访问因入口策略而被拒绝的事件。
表路径system.access.inbound_network
30 天 区域
网络访问事件(出站) (公共预览版) 记录从您的帐户被拒绝的每一次出站互联网访问的事件的表格。
表路径system.access.outbound_network
365 天 区域
节点时间线 捕获通用和作业计算资源的利用率指标。
表路径system.compute.node_timeline
90 天 区域
节点类型 通过基本硬件信息捕获当前可用的节点类型。
表路径system.compute.node_types
未定义 区域
管道更新时间线 (公共预览版) 跟踪用于管道更新的开始时间和结束时间和计算资源。
表路径system.lakeflow.pipeline_update_timeline
365 天 区域
管道(公共预览版) 跟踪在帐户中创建的所有管道。
表路径system.lakeflow.pipelines
365 天 区域
预测优化(公共预览版) 跟踪预测优化功能的操作历史记录。
表路径system.storage.predictive_optimization_operations_history
180 天 区域
定价 SKU 定价的历史日志。 每次更改 SKU 价格时,都会增加一条记录。
表路径system.billing.list_prices
未定义 全局
查询历史记录(公共预览版) 捕获在 SQL 仓库和无服务器计算环境中针对笔记本作业运行的所有查询的记录。
表路径system.query.history
180 天 区域
SQL 仓库事件(公共预览版) 捕获与 SQL 仓库相关的事件。 例如,启动、停止、运行、纵向扩展和缩减。
表路径system.compute.warehouse_events
365 天 区域
SQL 仓库 (公共预览版) 包含任何 SQL 仓库随时间推移的配置的完整历史记录。
表路径system.compute.warehouses
365 天 区域
表世系 包括 Unity Catalog 表或路径上每个读取或写入事件的记录。
表路径system.access.table_lineage
365 天 区域
工作区 (公共预览版) workspaces_latest 表是一个逐渐变化的维度表,其中包含帐户中所有工作区的元数据。
表路径system.access.workspaces_latest
未定义 全局

计费使用情况和定价表可免费使用。 公共预览版中的表也可以在预览期间免费使用,但将来可能会产生费用。

注意

除了上面列出的系统表外,还可以在帐户中看到其他系统表。 这些表当前为个人预览版,默认情况下为空。 如果有兴趣使用这些表中的任何一个,请联系 Databricks 帐户团队。

系统表关系

以下实体关系图概述了当前可用的系统表如何相互关联。 此图突出显示了每个表的主键和外键。

Databricks 系统表的实体关系图

访问系统表

由于系统表受 Unity 目录控制,因此需要在帐户中至少有一个启用了 Unity 目录的工作区才能访问帐户的系统表。 系统表包括帐户中所有工作区的数据,但只能从启用了 Unity 目录的工作区访问它们。

元存储需要位于 Unity Catalog 特权模型版本 1.0 上才能访问系统表。 请参阅 “升级到特权继承”。

授予对系统表的访问权限

对系统表的访问受 Unity Catalog 管理。 默认情况下,任何用户都无法访问这些系统架构。 若要授予访问权限,具有元存储管理员和帐户管理员双重身份的用户必须在系统架构上授予USESELECT权限。 请参阅在 Unity Catalog 中管理权限

系统表为只读,因此不能修改。

注意

如果你的帐户是在 2023 年 11 月 9 日之后创建的,则默认情况下你可能没有元存储管理员。 有关详细信息,请参阅 Unity 目录入门

系统表是否包含帐户中所有工作区的数据?

系统表包含在同一云区域中部署的帐户中所有工作区的操作数据。 某些表包括全局数据。 有关详细信息,请参阅 可用表的列表

尽管系统表只能通过 Unity 目录工作区访问,但它们还包括在您的帐户中来自非 Unity 目录工作区的运行数据。

系统表数据存储在哪里?

帐户的系统表数据存储在 Azure Databricks 托管的存储帐户中,该存储帐户与元存储位于同一区域。 该数据会通过 Delta Sharing 安全地共享给你。

每个表都有一个免费数据保留期。 有关详细信息,请参阅“免费保留期”列中的“可用系统表有哪些?”

系统表位于目录资源管理器中的什么位置?

帐户中的系统表位于名为 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")

已知问题

  • 可以随时将新列添加到现有系统表。 如果引入了新列,依赖于固定架构的查询可能会中断。 现有列不会更改或删除。 如果要将系统表数据写入另一个目标表,请考虑 启用架构演变
  • 不支持实时监视。 数据全天更新。 如果看不到最近事件的日志,请稍后重新查看。
  • __internal_logging 系统表架构支持使用已启用 AI 网关的推理表来记录外部模型和预配吞吐量工作负荷的有效负载日志。 此架构对帐户管理员可见,但不能启用,也不应用于客户工作流。
  • 若要启用系统表,可能需要授予对系统表 Blob 存储终结点的网络访问权限。 若要查看每个区域的系统表存储终结点的列表,请参阅 存储终结点 IP 地址
  • 系统架构 system.operational_datasystem.lineage 已弃用,并且将包含空表。