Lakeflow 声明性管道事件日志包含与管道相关的所有信息,包括审核日志、数据质量检查、管道进度和数据世系。
下表描述了事件日志架构。 其中一些字段包含需要分析才能执行某些查询的 JSON 数据,例如 details 字段。 Azure Databricks 支持使用 : 运算符分析 JSON 字段。 请参阅 : (冒号)运算符。
注释
事件日志中的某些字段供 Azure Databricks 内部使用。 以下文档描述了为客户消费而设的字段。
有关使用 Lakeflow 声明性管道事件日志的详细信息,请参阅 Lakeflow 声明性管道事件日志。
PipelineEvent 对象
表示事件日志中的单个管道事件。
| 领域 | Description | 
|---|---|
| id | 事件日志记录的唯一标识符。 | 
| sequence | 包含用于标识和排序事件的元数据的 JSON 字符串。 | 
| origin | 包含事件的源的元数据的 JSON 字符串,例如云提供商、云提供商区域、用户和管道信息。 请参阅 Origin 对象。 | 
| timestamp | 记录事件的时间(UTC)。 | 
| message | 描述事件的用户可读消息。 | 
| level | 警告级别。 可能的值为: 
 | 
| maturity_level | 事件架构的稳定性。 可能的值为: 
 不建议基于 EVOLVING字段或DEPRECATED字段生成监测或警报。 | 
| error | 如果出现错误,则为描述错误的详细信息。 | 
| details | 包含事件的结构化详细信息的 JSON 字符串。 这是用于分析事件的主要字段。 JSON 字符串格式取决于 event_type. 有关详细信息,请参阅 详细信息对象 。 | 
| event_type | 事件类型。 有关事件类型的列表及其创建的详细信息对象类型,请参阅 详细信息对象。 | 
详细信息对象
每个事件在 JSON 对象中具有不同的 details 属性,具体取决于 event_type 事件。 此表列出 event_type 及其相关的 details。 “details详细信息类型”部分介绍了这些属性。
| 详细信息类型 event_type | Description | 
|---|---|
| create_update | 捕获用于启动管道更新的完整配置。 包括 Databricks 设置的任何配置。 有关详细信息,请参阅 create_update的详细信息。 | 
| user_action | 提供有关任何用户在管道上的操作的详细信息(包括创建管道,以及开始或取消更新)。 有关详细信息,请参阅 user_action事件的详细信息。 | 
| flow_progress | 描述从启动、运行到已完成或失败的流生命周期。 有关详细信息,请参阅 flow_progress事件的详细信息。 | 
| update_progress | 描述管道更新的生命周期,从开始、运行、完成或失败。 有关详细信息,请参阅 update_progress事件的详细信息。 | 
| flow_definition | 定义给定流中发生的任何转换的架构和查询计划。 可视为数据流 DAG 的边缘。 它可用于计算每个流的世系,以及查看解释的查询计划。 有关详细信息,请参阅 flow_definition事件的详细信息。 | 
| dataset_definition | 定义一个数据集,该数据集是给定流的源或目标。 有关详细信息,请参阅 dataset_definition事件的详细信息。 | 
| sink_definition | 定义给定接收器。 有关详细信息,请参阅 sink_definition事件的详细信息。 | 
| deprecation | 列出此管道使用的即将或当前弃用的功能。 有关这些值的示例,请参阅 弃用事件的详细信息枚举。 | 
| cluster_resources | 包括有关在经典计算上运行的管道的群集资源的信息。 这些指标仅适用于经典计算管道。 有关详细信息,请参阅 cluster_resources事件的详细信息。 | 
| autoscale | 包括有关在经典计算环境中运行的管道自动缩放的信息。 这些指标仅适用于经典计算管道。 有关详细信息,请参阅 自动缩放事件的详细信息。 | 
| planning_information | 表示与具体化视图的增量刷新和完全刷新相关的计划信息。 可用于获取有关具体化视图为何需要完全重新计算的更多详细信息。 有关详细信息,请参阅 planning_information事件的详细信息。 | 
| hook_progress | 指示管道运行期间用户钩子的当前状态的事件。 用于监控事件钩子的状态,例如发送到外部可观测性产品。 有关详细信息,请参阅 hook_progress事件的详细信息。 | 
| operation_progress | 包括关于操作进度的信息。 有关详细信息,请参阅 operation_progress事件的详细信息。 | 
| stream_progress | 包括有关管道进度的信息。 有关详细信息,请参阅 stream_progress事件的详细信息。 | 
详细信息类型
以下对象表示 details 对象 PipelineEvent 中的不同事件类型。
create_update的详细信息
事件的详细信息 create_update 。
| 领域 | Description | 
|---|---|
| dbr_version | Databricks Runtime 的版本。 | 
| run_as | 更新将在此用户 ID 下执行。 通常,这是管道或服务主体的所有者。 | 
| cause | 更新的原因。 通常是在作业中运行时 JOB_TASK,或者由用户以交互方式运行时USER_ACTION。 | 
user_action事件的详细信息
事件的详细信息 user_action 。 包括以下字段:
| 领域 | Description | 
|---|---|
| user_name | 触发管道更新的用户的名称。 | 
| user_id | 触发管道更新的用户的 ID。 这并不总是与 run_as用户相同,可以是服务主体或其他用户。 | 
| action | 用户执行的动作,包括 START和CREATE。 | 
flow_progress事件的详细信息
              flow_progress事件的详细信息。
| 领域 | Description | 
|---|---|
| status | 流的新状态。 可以是以下选项之一: 
 | 
| metrics | 有关数据流的指标。 有关详细信息,请参阅 FlowMetrics。 | 
| data_quality | 有关流和相关期望的数据质量指标。 有关详细信息,请参阅 DataQualityMetrics。 | 
update_progress事件的详细信息
事件的详细信息 update_progress 。
| 领域 | Description | 
|---|---|
| state | 更新的新状态。 可以是以下选项之一: 
 例如,用于计算管道更新的各个阶段的持续时间,从总持续时间到等待资源所花费的时间。 | 
| cancellation_cause | 更新进入 CANCELED状态的原因。 包括诸如USER_ACTION或WORKFLOW_CANCELLATION(触发更新的工作流已取消)等原因。 | 
flow_definition 事件的详细信息
              flow_definition事件的详细信息。
| 领域 | Description | 
|---|---|
| input_datasets | 此流读取的输入。 | 
| output_dataset | 此流写入的输出数据集。 | 
| output_sink | 此流写入到的输出接收器。 | 
| explain_text | 解释的查询计划。 | 
| schema_json | Spark SQL JSON 模式字符串。 | 
| schema | 此流的架构。 | 
| flow_type | 流的类型。 可以是以下选项之一: 
 | 
| comment | 有关数据集的用户注释或说明。 | 
| spark_conf | 在此流上设置的 Spark 配置。 | 
| language | 用于创建此流的语言。 可以是 SCALA、PYTHON或SQL。 | 
| once | 此流程是否已被声明为仅运行一次。 | 
dataset_definition 事件的详细信息
              dataset_definition事件的详细信息。 包括以下字段:
| 领域 | Description | 
|---|---|
| dataset_type | 区分物化视图和流式处理表。 | 
| num_flows | 写入数据集的流数。 | 
| expectations | 与数据集关联的预期。 | 
sink_definition 事件的详细信息
              sink_definition事件的详细信息。
| 领域 | Description | 
|---|---|
| format | 接收器的格式。 | 
| options | 与接收器关联的键值选项。 | 
弃用事件的详细信息枚举
事件 deprecation 具有字段 message 。 可能的值 message 包括以下内容。 这是一个随着时间推移而增长的部分列表。
| 领域 | Description | 
|---|---|
| TABLE_MANAGED_BY_MULTIPLE_PIPELINES | 表由多个管道管理。 | 
| INVALID_CLUSTER_LABELS | 使用不支持的群集标签。 | 
| PINNED_DBR_VERSION | 在管道设置中使用 dbr_version而不是channel。 | 
| PREVIOUS_CHANNEL_USED | 使用发布通道 PREVIOUS,在将来的版本中可能会消失。 | 
| LONG_DATASET_NAME | 使用超过支持的长度的数据集名称。 | 
| LONG_SINK_NAME | 使用比支持的长度更长的接收器名称。 | 
| LONG_FLOW_NAME | 使用比支持的长度更长的流名称。 | 
| ENHANCED_AUTOSCALING_POLICY_COMPLIANCE | 仅当增强型自动缩放使用固定群集大小时,群集策略才符合要求。 | 
| DATA_SAMPLE_CONFIGURATION_KEY | 使用配置密钥配置数据采样已弃用。 | 
| INCOMPATIBLE_CLUSTER_SETTINGS | 当前群集设置或群集策略不再与 Lakeflow 声明性管道兼容。 | 
| STREAMING_READER_OPTIONS_DROPPED | 使用被弃用的流式读取器选项。 | 
| DISALLOWED_SERVERLESS_STATIC_SPARK_CONFIG | 不允许通过无服务器管道的管道配置设置静态 Spark 配置。 | 
| INVALID_SERVERLESS_PIPELINE_CONFIG | 无服务器用户提供了无效的管道配置。 | 
| UNUSED_EXPLICIT_PATH_ON_UC_MANAGED_TABLE | 在 UC 托管表上指定未使用的显式表路径。 | 
| FOREACH_BATCH_FUNCTION_NOT_SERIALIZABLE | 提供的 foreachBatch 函数不可序列化。 | 
| DROP_PARTITION_COLS_NO_PARTITIONING | 删除partition_cols属性不会导致分区。 | 
| PYTHON_CREATE_TABLE | 使用 @dlt.create\_table 而不是 @dp.table 或 @dp.materialized\_view。 | 
| PYTHON_CREATE_VIEW | 使用 @dlt.create\_view 而不是 @dp.temporary\_view。 | 
| PYTHON_CREATE_STREAMING_LIVE_TABLE | 使用 create_streaming_live_table而不是create_streaming_table。 | 
| PYTHON_CREATE_TARGET_TABLE | 使用 create_target_table而不是create_streaming_table。 | 
| FOREIGN_KEY_TABLE_CONSTRAINT_CYCLE | 管道管理的表集在外键约束集中有一个周期。 | 
| PARTIALLY_QUALIFIED_TABLE_REFERENCE_INCOMPATIBLE_WITH_DEFAULT_PUBLISHING_MODE | 在默认发布模式和旧发布模式下,“部分限定表引用”具有不同的含义。 | 
cluster_resources 事件的详细信息
              cluster_resources事件的详细信息。 仅适用于在经典计算环境上运行的管道。
| 领域 | Description | 
|---|---|
| task_slot_metrics | 群集的任务槽指标。 有关详细信息,请参阅 TaskSlotMetrics 对象 | 
| autoscale_info | 自动调节器的状态。 有关详细信息,请参阅 AutoscaleInfo 对象 | 
自动缩放事件的详细信息
事件的详细信息 autoscale 。 仅当管道使用经典计算时,自动缩放事件才适用。
| 领域 | Description | 
|---|---|
| status | 此事件的状态。 可以是以下选项之一: 
 | 
| optimal_num_executors | 在应用 min_workers和max_workers边界之前算法建议的最佳执行程序数。 | 
| requested_num_executors | 截断算法建议的最佳执行程序数达到 min_workers和max_workers范围后的执行程序数量。 | 
planning_information 事件的详细信息
              planning_information事件的详细信息。 在更新期间查看与给定流的所选刷新类型相关的详细信息非常有用。 可用于帮助调试更新为何完全刷新,而不是增量刷新。 有关增量刷新的更多详细信息,请参阅 具体化视图的增量刷新
| 领域 | Description | 
|---|---|
| technique_information | 刷新相关信息。 它包括有关所选刷新方法的信息以及可能考虑的刷新方法。 用于调试具体化视图未能增量化的原因。 有关详细信息,请参阅技术信息。 | 
| source_table_information | 源表信息。 可以用于诊断具体化视图未能进行增量更新的原因。 有关详细信息,请参阅 TableInformation 对象。 | 
| target_table_information | 目标表信息。 有关详细信息,请参阅 TableInformation 对象。 | 
hook_progress事件的详细信息
事件的详细信息 hook_progress 。 包括以下字段:
| 领域 | Description | 
|---|---|
| name | 用户挂钩的名称。 | 
| status | 用户钩子的状态。 | 
operation_progress事件的详细信息
              operation_progress 事件的详细信息。 包括以下字段:
| 领域 | Description | 
|---|---|
| type | 要跟踪的操作类型。 下列其中一项: 
 | 
| status | 操作状态。 下列其中一项: 
 | 
| duration_ms | 操作的总经过时间(以毫秒为单位)。 仅包含在结束事件(状态为 COMPLETED、CANCELED或FAILED) 中。 | 
stream_progress事件的详细信息
重要
此功能目前以公共预览版提供。
事件的详细信息 stream_progress 。 包括以下字段:
| 领域 | Description | 
|---|---|
| stream_progress | 管道流的详细信息。 类似于 StreamingQueryListener结构化流式处理指标。以下段落描述了这些差异。 关于 StreamingQueryListener指标的完整文档,请参阅 StreamingQueryListener 对象指标。 | 
              对象指标之间的差异stream_progressStreamingQueryListener:
- 以下指标存在于StreamingQueryListener中,但不存在于stream_progress中:numInputRows、inputRowsPerSecond和processedRowsPerSecond。
- 对于 Kafka 和 Kinesis 流,startOffset、endOffset和latestOffset这些字段可能太大,因此会被截断。 对于每个字段,将添加一个附加...Truncated字段、一个startOffsetTruncated字段、一个endOffsetTruncated字段和一个latestOffsetTruncated字段,并以布尔值指示数据是否被截断。
其他对象
以下对象表示事件对象中的其他数据或枚举。
AutoscaleInfo 对象
群集的自动缩放指标。 仅适用于在经典计算环境上运行的管道。
| 领域 | Description | 
|---|---|
| state | 自动缩放状态。 可以是以下选项之一: 
 | 
| optimal_num_executors | 执行程序的最佳数目。 这是算法在被用户指定的最小/最大执行程序数截断之前建议的最佳大小。 | 
| latest_requested_num_executors | 最新请求中,状态管理器向群集管理器请求的执行程序数量。 这是状态管理器尝试缩放到的执行程序数,并在状态管理器尝试在超时时退出缩放状态时更新。 如果没有挂起的请求,则不会填充此字段。 | 
| request_pending_seconds | 扩展请求等待处理的时间长度。 如果没有挂起的请求,则不会填充内容。 | 
CostModelRejectionSubType 对象
枚举增量刷新在planning_information事件中被拒绝的原因,这基于完全刷新与增量刷新的成本比较。
| 价值 | Description | 
|---|---|
| NUM_JOINS_THRESHOLD_EXCEEDED | 完全刷新,因为查询包含太多联接。 | 
| CHANGESET_SIZE_THRESHOLD_EXCEEDED | 完全刷新,因为基表中有太多行发生了变化。 | 
| TABLE_SIZE_THRESHOLD_EXCEEDED | 完全刷新,因为基表大小超出了阈值。 | 
| EXCESSIVE_OPERATOR_NESTING | 完全刷新,因为查询定义很复杂,并且具有许多级别的运算符嵌套。 | 
| COST_MODEL_REJECTION_SUB_TYPE_UNSPECIFIED | 出于任何其他原因对系统进行完全刷新。 | 
DataQualityMetrics 对象
有关在流中如何满足期望的指标。 在事件详细信息中使用 flow_progress 。
| 领域 | Description | 
|---|---|
| dropped_records | 由于记录未能达到一个或多个预期而被删除的记录数。 | 
| expectations | 添加到流查询计划中的任何数据集的预期指标。 当有多个预期时,这可用于跟踪满足或失败的预期。 有关详细信息,请参阅 ExpectationMetrics 对象。 | 
ExpectationMetrics 对象
有关针对特定期望的度量标准。
| 领域 | Description | 
|---|---|
| name | 期望的名称。 | 
| dataset | 已添加期望的数据集名称。 | 
| passed_records | 满足预期值的记录数。 | 
| failed_records | 不符合期望的记录数。 跟踪是否满足预期,但不描述记录会发生什么(警告、失败或删除记录)。 | 
FlowMetrics 对象
有关流的指标,包括流的总数,以及按特定源划分的指标。 在事件详细信息中使用 flow_progress 。
每个流源仅支持特定的流量指标。 下表显示了可用于所支持的流媒体源的度量标准:
| 源 | 积压字节 | 积压记录 | 积压工作秒数 | 积压工作文件 | 
|---|---|---|---|---|
| Kafka | ✓ | ✓ | ||
| 动动力 | ✓ | ✓ | ||
| Delta | ✓ | ✓ | ||
| 自动加载器 | ✓ | ✓ | ||
| Google Pub/Sub(谷歌发布/订阅消息服务) | ✓ | ✓ | 
| 领域 | Description | 
|---|---|
| num_output_rows | 执行此流更新时写入的输出行数。 | 
| backlog_bytes | 在流程中所有输入源的总积压数据以字节计算。 | 
| backlog_records | 流程中所有输入源的积压记录总数。 | 
| backlog_files | 流中所有输入源的积压文件总数。 | 
| backlog_seconds | 流中所有输入源的最大积压工作秒数。 | 
| executor_time_ms | 报告期间此流的所有任务执行时间的总和(以毫秒为单位)。 | 
| executor_cpu_time_ms | 报告期间此流的所有任务执行 CPU 时间的总和(以毫秒为单位)。 | 
| num_upserted_rows | 通过更新此流向上插入数据集的输出行数。 | 
| num_deleted_rows | 通过更新此流从数据集中删除的现有输出行数。 | 
| num_output_bytes | 此流更新时写入的输出字节数。 | 
| source_metrics | 流中每个输入源的指标。 可用于监视来自 Lakeflow 声明性管道外部的源的引入进度(例如 Apache Kafka、Pulsar 或自动加载程序)。 包括字段: 
 | 
IncrementalizationIssue 对象
表示在计划更新时可能导致完全刷新的增量化问题。
| 领域 | Description | 
|---|---|
| issue_type | 可阻止具体化视图增量化的问题类型。 有关详细信息,请参阅 问题类型。 | 
| prevent_incrementalization | 此问题是否阻止了增量化。 | 
| table_information | 表信息与诸如 CDF_UNAVAILABLE、INPUT_NOT_IN_DELTA、DATA_FILE_MISSING等问题相关。 | 
| operator_name | 与计划相关的信息。 当问题类型是 PLAN_NOT_DETERMINISTIC或PLAN_NOT_INCREMENTALIZABLE时,设定为导致非确定性或非增量性的运算符或表达式的相关问题。 | 
| expression_name | 表达式名称。 | 
| join_type | 运算符是联接时的辅助信息。 例如, JOIN_TYPE_LEFT_OUTER或JOIN_TYPE_INNER。 | 
| plan_not_incrementalizable_sub_type | 问题类型为 PLAN_NOT_INCREMENTALIZABLE时的详细类别。 有关详细信息,请参阅 PlanNotIncrementalizableSubType 对象。 | 
| plan_not_deterministic_sub_type | 问题类型为 PLAN_NOT_DETERMINISTIC时的详细类别。 有关详细信息,请参阅 PlanNotDeterministicSubType 对象。 | 
| fingerprint_diff_before | 之前指纹的差异。 | 
| fingerprint_diff_current | 当前指纹中的差异。 | 
| cost_model_rejection_subtype | 问题类型为 INCREMENTAL_PLAN_REJECTED_BY_COST_MODEL时的详细类别。 有关详细信息,请参阅 CostModelRejectionSubType 对象。 | 
IssueType 对象
可能导致完全刷新的问题类型枚举。
| 价值 | Description | 
|---|---|
| CDF_UNAVAILABLE | CDF (更改数据馈送)在某些基表上未启用。 该 table_information字段提供有关未启用 CDF 的表的信息。 用ALTER TABLE <table-name> SET TBLPROPERTIES ( 'delta.enableChangeDataFeed' = true)启用基表的 CDF。 如果源表是具体化视图,则默认情况下应将 CDF 设置为ON。 | 
| DELTA_PROTOCOL_CHANGED | 完全刷新,因为某些基表( table_information字段中的详细信息)发生了Delta协议变更。 | 
| DATA_SCHEMA_CHANGED | 完全刷新,因为某些基表(详见字段中的 table_information)在具体化视图定义使用的列中发生了数据架构的变化。 如果具体化视图未使用的列已更改或添加到基表,则不相关。 | 
| PARTITION_SCHEMA_CHANGED | 完全刷新,因为某些基础表( table_information字段中的详情)出现了分区方案变更。 | 
| INPUT_NOT_IN_DELTA | 完全刷新,因为具体化视图定义涉及一些非 Delta 输入。 | 
| DATA_FILE_MISSING | 完全刷新,因为某些基表文件由于保留期已过而被清理。 | 
| PLAN_NOT_DETERMINISTIC | 完全刷新,因为具体化视图定义中的某些运算符或表达式不是确定性的。 和 operator_nameexpression_name字段提供有关导致问题的运算符或表达式的信息。 | 
| PLAN_NOT_INCREMENTALIZABLE | 完全刷新,因为具体化视图定义中的某些运算符或表达式不可递增。 | 
| SERIALIZATION_VERSION_CHANGED | 完全刷新,因为查询指纹逻辑发生了重大变化。 | 
| QUERY_FINGERPRINT_CHANGED | 完全刷新是因为物化视图的定义发生了变化,或者 Lakeflow 声明式流水线的版本导致查询评估计划发生更改。 | 
| CONFIGURATION_CHANGED | 完全刷新,因为可能影响查询评估的关键配置(例如 spark.sql.ansi.enabled)已更改。 需要完全重新计算,以避免具体化视图中的状态不一致。 | 
| CHANGE_SET_MISSING | 完全刷新,因为这是具体化视图的第一次计算。 这是初始具体化视图计算的预期行为。 | 
| EXPECTATIONS_NOT_SUPPORTED | 因为物化视图的定义包含预期条件,所以需要完全刷新,因为它们不支持增量更新。 如果需要增量支持,请删除预期或将其处理在具体化视图定义之外。 | 
| TOO_MANY_FILE_ACTIONS | 完全刷新,因为文件操作数量超出了增量处理阈值。 请考虑减少基表中的文件变动量或增加阈值。 | 
| INCREMENTAL_PLAN_REJECTED_BY_COST_MODEL | 完全刷新是因为成本模型确定完全刷新比增量维护更高效。 查看查询计划的成本模型行为或复杂性,以允许增量更新。 | 
| ROW_TRACKING_NOT_ENABLED | 由于在一个或多个基表上未启用行跟踪,需要进行完全刷新。 使用 ALTER TABLE <table-name> SET TBLPROPERTIES ('delta.enableRowTracking' = true). 启用行跟踪。 | 
| TOO_MANY_PARTITIONS_CHANGED | 完全刷新,因为基表中的分区发生了变化太多。 尝试限制分区更改数,以保持增量处理限制。 | 
| MAP_TYPE_NOT_SUPPORTED | 由于物化视图的定义中包含了映射类型,而增量更新不支持该类型,因此需进行完全刷新。 请考虑重组数据,以避免在物化视图中使用地图类型。 | 
| TIME_ZONE_CHANGED | 完全刷新,因为会话或系统时区设置已更改。 | 
| DATA_HAS_CHANGED | 完全刷新是因为与具体化视图相关的数据更改使得无法进行增量更新。 评估视图定义的数据更改和结构,以确保与增量逻辑兼容。 | 
| PRIOR_TIMESTAMP_MISSING | 完全刷新,因为缺少上次成功运行的时间戳。 元数据丢失或手动干预后可能会出现这种情况。 | 
MaintenanceType 对象
在planning_information 事件期间可能选择的维护类型的枚举。 如果该类型不是 MAINTENANCE_TYPE_COMPLETE_RECOMPUTE 或 MAINTENANCE_TYPE_NO_OP,则类型为增量刷新。
| 价值 | Description | 
|---|---|
| MAINTENANCE_TYPE_COMPLETE_RECOMPUTE | 完全重新计算;始终显示。 | 
| MAINTENANCE_TYPE_NO_OP | 基表不更改时。 | 
| MAINTENANCE_TYPE_PARTITION_OVERWRITE | 当具体化视图与其中一个源表共同分区时,逐步刷新受影响的分区。 | 
| MAINTENANCE_TYPE_ROW_BASED | 通过为各种操作(例如 JOIN、FILTER和UNION ALL,)创建模块化更改集,并组合这些更改集来计算复杂的查询,从而进行增量刷新。 当启用源表的 行跟踪 ,并且查询的联接数有限时使用。 | 
| MAINTENANCE_TYPE_APPEND_ONLY | 由于源表中没有插入更新或删除,因此通过仅计算新行来增量刷新。 | 
| MAINTENANCE_TYPE_GROUP_AGGREGATE | 逐步通过计算每个聚合值的变化来刷新。 在关联聚合(如 count、sum、mean和stddev)处于查询的最顶层时使用。 | 
| MAINTENANCE_TYPE_GENERIC_AGGREGATE | 通过仅计算受影响的聚合组来增量刷新。 当聚合(如 median,而不仅仅是关联的聚合)位于查询的最顶层时使用。 | 
| MAINTENANCE_TYPE_WINDOW_FUNCTION | 通过仅重新计算已更改的分区,以增量方式刷新具有窗口函数 PARTITION BY的查询。 当所有窗口函数都有一个PARTITION BY或JOIN子句并且位于查询的最顶层时使用。 | 
源对象
事件的发起位置。
| 领域 | Description | 
|---|---|
| cloud | 云提供商。 可能的值为: 
 | 
| region | 云区域。 | 
| org_id | 用户的组织 ID 或工作区 ID。 在云中唯一。 用于标识工作区或与其他表(例如系统计费表)联接。 | 
| pipeline_id | 管道的 ID。 管道的唯一标识符。 用于标识管道或与其他表(如系统计费表)联接。 | 
| pipeline_type | 要显示管道创建来源的管道类型。 可能的值为: 
 | 
| pipeline_name | 管道的名称。 | 
| cluster_id | 执行所在的群集的 ID。 全局唯一。 | 
| update_id | 管道一次执行的 ID。 这等效于运行 ID。 | 
| table_name | 要写入的 Delta 表的名称。 | 
| dataset_name | 数据集的完全限定名称。 | 
| sink_name | 接收器的名称。 | 
| flow_id | 流的 ID。 它跟踪在多个更新中使用的流程状态。 只要 flow_id是相同的,流就会逐步刷新。flow_id在具体化视图完全刷新、检查点重置或具体化视图中发生完全重新计算时,发生的更改。 | 
| flow_name | 流的名称。 | 
| batch_id | 微分包的 ID。 在流中是唯一的。 | 
| request_id | 导致更新的请求的 ID。 | 
PlanNotDeterministicSubType 对象
事件的非确定性事例 planning_information 的枚举。
| 价值 | Description | 
|---|---|
| STREAMING_SOURCE | 完全刷新是因为物化视图定义包括不支持的流式数据源。 | 
| USER_DEFINED_FUNCTION | 因具体化视图包含不支持的用户定义函数,需要完全刷新。 仅支持确定性的 Python UDF。 其他用户定义函数可能会阻止增量更新。 | 
| TIME_FUNCTION | 完全刷新,因为具体化视图包括基于时间的函数,例如 CURRENT_DATE或CURRENT_TIMESTAMP。 该expression_name属性提供不受支持的函数的名称。 | 
| NON_DETERMINISTIC_EXPRESSION | 完全刷新,因为查询包含非确定性表达式,例如 RANDOM()。 该expression_name属性指示阻止增量维护的非确定性函数。 | 
PlanNotIncrementalizableSubType 对象
更新计划可能无法增量化的原因枚举。
| 价值 | Description | 
|---|---|
| OPERATOR_NOT_SUPPORTED | 完全刷新,因为查询计划包含不受支持的运算符。 该 operator_name属性提供不受支持的运算符的名称。 | 
| AGGREGATE_NOT_TOP_NODE | 完全刷新,因为聚合 ( GROUP BY) 运算符不在查询计划的顶层。 增量维护仅支持最高级别的聚合。 请考虑定义两个物化视图以区分聚合。 | 
| AGGREGATE_WITH_DISTINCT | 完全刷新,因为聚合包含一个 DISTINCT子句,而该子句不支持增量更新。 | 
| AGGREGATE_WITH_UNSUPPORTED_EXPRESSION | 完全刷新,因为聚合包含不受支持的表达式。 该 expression_name属性指示有问题的表达式。 | 
| SUBQUERY_EXPRESSION | 完全刷新,因为具体化视图定义包括不支持的子查询表达式。 | 
| WINDOW_FUNCTION_NOT_TOP_LEVEL | 完全刷新,因为窗口函数不在查询计划的顶部。 | 
| WINDOW_FUNCTION_WITHOUT_PARTITION_BY | 完全刷新,因为窗口函数被定义为不带有 PARTITION BY子句。 | 
TableInformation 对象
表示在 planning_information 事件期间所考虑的表格详细信息。
| 领域 | Description | 
|---|---|
| table_name | Unity 目录服务或 Hive 元数据存储中的查询使用的表名。 在基于路径的访问时可能不可用。 | 
| table_id | 必填。 Delta 日志中的表 ID。 | 
| catalog_table_type | 目录中指定的表的类型。 | 
| partition_columns | 对表的列进行分区。 | 
| table_change_type | 更改表中的类型。 以下其中之一: TABLE_CHANGE_TYPE_UNKNOWN、TABLE_CHANGE_TYPE_APPEND_ONLY、TABLE_CHANGE_TYPE_GENERAL_CHANGE。 | 
| full_size | 表的完整大小(以字节数为单位)。 | 
| change_size | 已更改文件中已更改的行的大小。 它通过使用 change_file_read_size * num_changed_rows / num_rows_in_changed_files来进行计算。 | 
| num_changed_partitions | 已更改的分区数。 | 
| is_size_after_pruning | 静态文件修剪后,是否 full_size和change_size表示数据。 | 
| is_row_id_enabled | 是否在表上启用行 ID。 | 
| is_cdf_enabled | 是否在表上启用 CDF。 | 
| is_deletion_vector_enabled | 是否在表上启用删除向量。 | 
| is_change_from_legacy_cdf | 表更改是来自旧版 CDF 还是基于行ID的 CDF。 | 
TaskSlotMetrics 对象
群集的任务槽指标。 仅适用于在经典计算上运行的管道更新。
| 领域 | Description | 
|---|---|
| summary_duration_ms | 用于计算聚合指标的持续时间(例如 avg_num_task_slots),以毫秒为单位。 | 
| num_task_slots | 报告时刻的 Spark 任务槽位数。 | 
| avg_num_task_slots | 摘要持续时间内 Spark 任务槽位的平均数量。 | 
| avg_task_slot_utilization | 摘要持续时间内的平均任务槽利用率(活动任务数除以任务槽数)。 | 
| num_executors | 在报告某一时刻的 Spark 执行程序数量。 | 
| avg_num_queued_tasks | 总结时间内的平均任务队列大小(总任务数量减去活动任务数量)。 | 
TechniqueInformation 对象
刷新规划事件的方法论信息。
| 领域 | Description | 
|---|---|
| maintenance_type | 与此信息相关的维护类型。 如果类型不是 MAINTENANCE_TYPE_COMPLETE_RECOMPUTE或MAINTENANCE_TYPE_NO_OP,则流以增量方式刷新。有关详细信息,请参阅 MaintenanceType 对象。 | 
| is_chosen | 选用用于刷新的技术为 True。 | 
| is_applicable | 维护类型是否适用。 | 
| incrementalization_issues | 可能导致更新完全刷新的增量化问题。 有关详细信息,请参阅 IncrementalizationIssue 对象。 | 
| change_set_information | 有关最终生成的更改集的信息。 值为以下值之一: 
 |