系统表提供一个由 Azure Databricks 托管的分析存储,用于存放您的帐户操作数据。 使用它们监视成本、审核安全事件、跟踪计算和作业性能以及观察数据和 AI 工作负载。
什么是系统表?
系统表是在 system 目录中可发现的,并由 Azure Databricks 托管的帐户操作数据的分析存储库。 系统表可用于跨帐户观测历史记录。
注意
信息架构表(system.information_schema)与其他系统表的工作方式不同。 请参阅信息架构。
要求
- 要访问系统表,必须为 Unity Catalog 启用你的工作区。 有关详细信息,请参阅 “启用系统表”。
- 请参阅 特性区域支持 以了解系统表区域的可用性。
可以使用哪些系统表?
目前,Azure Databricks托管以下系统表:
| 表 | 说明 | 支持流式处理 | 免费保留期 | 包括全局或区域数据 |
|---|---|---|---|---|
| 审核日志(公共预览版) | 在区域中包括来自工作区的所有审核事件的记录。 有关可用审核事件的列表,请参阅诊断日志参考。 表路径: system.access.audit |
是 | 365 天 | 区域用于工作区级事件。 全局用于帐户级事件。 |
| 可计费使用情况 | 包括帐户中所有可计费使用情况的记录。 表路径: system.billing.usage |
是 | 365 天 | 全局 |
| 数据清洁房间事件(公共预览版) | 捕获与数据清洁房间相关的事件。 表路径: system.access.clean_room_events |
是 | 365 天 | 区域 |
| 群集 | 一个逐渐变化的维度表,其中包含任何群集随时间变化的计算配置的完整历史记录。 | 是 | 365 天 | 区域 |
| 列世系 | 包括 Unity Catalog 列上每个读取或写入事件的记录(但不包括没有源的事件)。 表路径: system.access.column_lineage |
是 | 365 天 | 区域 |
| 数据分类结果 (公共预览版) | 在元存储库中跨已启用的目录存储敏感数据类别的列级检测结果。 表路径: system.data_classification.results |
否 | 13 个月 | 区域 |
| 数据质量监视结果 (公共预览版) | 在数据目录中存储已启用表的数据质量监测检查(新鲜度、完整性)以及事件信息的结果,包括对下游影响的评估和根本原因的分析。 表路径: system.data_quality_monitoring.table_results |
否 | 未定义 | 区域 |
| Genie Code 事件 (公共预览版) | 跟踪发送到 Genie Code 的用户消息。 表路径: system.access.assistant_events |
否 | 365 天 | 区域 |
| AI 网关使用情况 (Beta 版) | 捕获 AI 网关终结点的请求和响应详细信息,包括令牌使用情况、延迟、性能指标和路由信息。 表路径: system.ai_gateway.usage |
是 | 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 |
否 | 365 天 | 区域 |
| 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 |
否 | 未定义 | 全局 |
| Zerobus Ingest (数据流) (Beta) | 一个表,用于存储因 Zerobus 数据采集使用而产生的所有流事件相关数据。 表路径: system.lakeflow.zerobus_stream |
是 | 365 天 | 区域 |
| 零布斯引入 (引入) (Beta) | 一个用于存储所有与通过 Zerobus Ingest 引入的记录相关数据的表。 表路径: system.lakeflow.zerobus_ingest |
是 | 365 天 | 区域 |
计费使用情况和定价表可免费使用。 公共预览版中的表也可以在预览期间免费使用,但将来可能会产生费用。
注意
除了上面列出的系统表外,还可以在帐户中看到其他系统表。 这些表当前为个人预览版,默认情况下为空。 如果有兴趣使用这些表中的任何一个,请联系 Databricks 帐户团队。
系统表关系
以下实体关系图概述了当前可用的系统表如何相互关联。 此图突出显示了每个表的主键和外键。
启用系统表
由于系统表受 Unity 目录的约束,因此需要在帐户中至少有一个已启用 Unity 目录的工作区才能启用帐户的系统表。 系统表包括帐户中所有工作区的数据,但只能从启用了 Unity 目录的工作区访问它们。
元存储需要位于 Unity Catalog 特权模型版本 1.0 上才能访问系统表。 请参阅 “升级到特权继承”。
授予对系统表的访问权限
对系统表的访问受 Unity Catalog 管理。 默认情况下,帐户管理员有权访问系统表。 若要允许用户查询系统表,管理员必须同时作为元存储管理员和帐户管理员,授予以下权限: USE CATALOG 系统目录、 USE SCHEMA 系统架构和 SELECT 系统模式。 请参阅在 Unity Catalog 中管理权限。
系统表为只读,因此不能修改。
注意
如果你的帐户是在 2023 年 11 月 9 日之后创建的,则默认情况下你可能没有元存储管理员。 有关详细信息,请参阅 Unity 目录入门。
系统表是否包含帐户中所有工作区的数据?
系统表包含在同一云区域中部署的帐户中所有工作区的操作数据。 某些表包括全局数据。 有关详细信息,请参阅 可用表的列表。
尽管系统表只能通过 Unity 目录工作区访问,但它们还包括在您的帐户中来自非 Unity 目录工作区的运行数据。
系统表数据存储在哪里?
帐户的系统表数据存储在与元存储位于同一区域的Azure Databricks托管存储帐户中。 该数据会通过 Delta Sharing 安全地共享给你。
每个表都有一个免费数据保留期。 有关详细信息,请参阅
系统表位于目录资源管理器中的什么位置?
帐户中的系统表位于名为 system 的目录中,该目录包含在每个 Unity Catalog 元存储中。 在 system 目录中,你将看到包含系统表的架构,例如 access 和 billing。
流式处理系统表的注意事项
Azure Databricks通过Delta Sharing与客户共享系统表数据。 使用 Delta Sharing 进行流式处理时,请留意以下注意事项:
- 如果你要对系统表使用流式处理,请将
skipChangeCommits选项设置为true。 这确保流媒体作业不会因系统表中的删除操作而中断。 请参阅 处理源 Delta 表的更改。 - Delta Sharing 流式处理不支持
Trigger.AvailableNow。 它将转换为Trigger.Once。 - 系统表使用默认的 7 天保留期用于
VACUUM(请参阅 配置时间旅行查询的数据保留),这意味着如果流式查询滞后超过 7 天,则可能会中断。 监控您的数据流,确保它们追上最新的系统表版本。
如果在流式处理作业中使用触发器并发现作业没有跟上最新的系统表版本,Databricks 建议增加作业的计划频率。
从流式处理系统表读取增量更改
spark.readStream.option("skipChangeCommits", "true").table("system.billing.usage")
已知问题
- 可以随时将新列添加到现有系统表。 如果引入了新列,依赖于固定架构的查询可能会中断。 现有列不会更改或删除。 如果要将系统表数据写入另一个目标表,请考虑 启用架构演变。
- 可以随时将新字段添加到结构类型的列。 如果要将系统表数据写入另一个目标表,请考虑 启用架构演变。
- 不支持实时监视。 数据全天更新。 如果看不到最近事件的日志,请稍后重新查看。
-
__internal_logging系统表架构支持使用已启用 AI 网关的推理表来记录外部模型和预配吞吐量工作负荷的有效负载日志。 此架构对帐户管理员可见,但不能启用,也不应用于客户工作流。
- 若要启用系统表,可能需要授予对系统表 Blob 存储终结点的网络访问权限。 若要查看每个区域的系统表存储终结点的列表,请参阅 存储终结点 IP 地址。
- 系统架构
system.operational_data和system.lineage已弃用,并且将包含空表。