Lakeflow 声明性管道事件日志架构

Lakeflow 声明性管道事件日志包含与管道相关的所有信息,包括审核日志、数据质量检查、管道进度和数据世系。

下表描述了事件日志架构。 其中一些字段包含需要分析才能执行某些查询的 JSON 数据,例如 details 字段。 Azure Databricks 支持使用 : 运算符分析 JSON 字段。 请参阅 : (冒号)运算符

注释

事件日志中的某些字段供 Azure Databricks 内部使用。 以下文档描述了为客户消费而设的字段。

有关使用 Lakeflow 声明性管道事件日志的详细信息,请参阅 Lakeflow 声明性管道事件日志

PipelineEvent 对象

表示事件日志中的单个管道事件。

领域 DESCRIPTION
id 事件日志记录的唯一标识符。
sequence 包含用于标识和排序事件的元数据的 JSON 字符串。
origin 包含事件的源的元数据的 JSON 字符串,例如云提供商、云提供商区域、用户和管道信息。 请参阅 Origin 对象
timestamp 记录事件的时间(UTC)。
message 描述事件的用户可读消息。
level 警告级别。 可能的值为:
  • INFO:信息性事件
  • WARN:意外但非严重问题
  • ERROR:可能需要用户注意的事件失败
  • METRICS:仅用于存储在 Delta 表中的大容量事件,而不显示在管道 UI 中。
maturity_level 事件架构的稳定性。 可能的值为:
  • STABLE:架构稳定,不会改变。
  • NULL:架构稳定,不会改变。 如果记录是在添加NULL字段之前创建的(maturity_level), 则该值可能是
  • EVOLVING:架构不稳定,可能会更改。
  • DEPRECATED:架构已弃用,Lakeflow 声明性 Pipelines 运行时可能随时停止生成此事件。

不建议基于EVOLVING字段或DEPRECATED字段生成监测或警报。
error 如果出现错误,则为描述错误的详细信息。
details 包含事件的结构化详细信息的 JSON 字符串。 这是用于分析事件的主要字段。 JSON 字符串格式取决于 event_type. 有关详细信息,请参阅 详细信息对象
event_type 事件类型。 有关事件类型的列表及其创建的详细信息对象类型,请参阅 详细信息对象

details 对象

每个事件在 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事件的详细信息

详细信息类型

以下对象表示 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 用户执行的动作,包括 STARTCREATE

flow_progress事件的详细信息

flow_progress事件的详细信息。

领域 DESCRIPTION
status 流的新状态。 可以是以下选项之一:
  • QUEUED
  • STARTING
  • RUNNING
  • COMPLETED
  • FAILED
  • SKIPPED
  • STOPPED
  • IDLE
  • EXCLUDED
metrics 有关数据流的指标。 有关详细信息,请参阅 FlowMetrics
data_quality 有关流和相关期望的数据质量指标。 有关详细信息,请参阅 DataQualityMetrics

update_progress事件的详细信息

事件的详细信息 update_progress

领域 DESCRIPTION
state 更新的新状态。 可以是以下选项之一:
  • QUEUED
  • CREATED
  • WAITING_FOR_RESOURCES
  • INITIALIZING
  • RESETTING
  • SETTING_UP_TABLES
  • RUNNING
  • STOPPING
  • COMPLETED
  • FAILED
  • CANCELED

例如,用于计算管道更新的各个阶段的持续时间,从总持续时间到等待资源所花费的时间。
cancellation_cause 更新进入 CANCELED 状态的原因。 包括诸如 USER_ACTIONWORKFLOW_CANCELLATION (触发更新的工作流已取消)等原因。

流程定义事件的详细信息

flow_definition事件的详细信息。

领域 DESCRIPTION
input_datasets 此流读取的输入。
output_dataset 此流写入的输出数据集。
output_sink 此流写入到的输出接收器。
explain_text 解释的查询计划。
schema_json Spark SQL JSON 模式字符串。
schema 此流的架构。
flow_type 流的类型。 可以是以下选项之一:
  • COMPLETE:以完整(流式处理)模式将流式处理表写入其目标。
  • CHANGE:使用APPLY_CHANGES_INTO流表。
  • SNAPSHOT_CHANGE:使用APPLY CHANGES INTO ... FROM SNAPSHOT ...流表。
  • APPEND:流式处理表在追加(流式处理)模式下写入其目标。
  • MATERIALIZED_VIEW:具体化视图的输出。
  • VIEW:输出到视图。
comment 有关数据集的用户注释或说明。
spark_conf 在此流上设置的 Spark 配置。
language 用于创建此流的语言。 可以是 SCALAPYTHONSQL
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 而不是 @dlt.table。
PYTHON_CREATE_VIEW 使用 @dlt.create\_view 而不是 @dlt.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事件的详细信息。 仅适用于在经典计算环境上运行的管道。

领域 DESCRIPTION
task_slot_metrics 群集的任务槽指标。 有关详细信息,请参阅 TaskSlotMetrics 对象
autoscale_info 自动调节器的状态。 有关详细信息,请参阅 AutoscaleInfo 对象

自动缩放事件的详细信息

事件的详细信息 autoscale 。 仅当管道使用经典计算时,自动缩放事件才适用。

领域 DESCRIPTION
status 此事件的状态。 可以是以下选项之一:
  • SUCCEEDED
  • RESIZING
  • FAILED
  • PARTIALLY_SUCCEEDED
optimal_num_executors 在应用 min_workersmax_workers 边界之前算法建议的最佳执行程序数。
requested_num_executors 截断算法建议的最佳执行程序数达到 min_workersmax_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 要跟踪的操作类型。 下列其中一项:
  • AUTO_LOADER_LISTING
  • AUTO_LOADER_BACKFILL
  • CONNECTOR_FETCH
  • CDC_SNAPSHOT
status 操作状态。 下列其中一项:
  • STARTED
  • COMPLETED
  • CANCELED
  • FAILED
  • IN_PROGRESS
duration_ms 操作的总经过时间(以毫秒为单位)。 仅包含在结束事件(状态为 COMPLETEDCANCELEDFAILED) 中。

其他对象

以下对象表示事件对象中的其他数据或枚举。

AutoscaleInfo 对象

群集的自动缩放指标。 仅适用于在经典计算环境上运行的管道。

领域 DESCRIPTION
state 自动缩放状态。 可以是以下选项之一:
  • SUCCEEDED
  • RESIZING
  • FAILED
  • PARTIALLY_SUCCEEDED
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
动动力
三角洲
自动加载器
领域 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 或自动加载程序)。 包括字段:
  • source_name:源的名称。
  • backlog_bytes:此源的积压量以字节为单位。
  • backlog_records:此源的积压记录。
  • backlog_files:此源的积压文件。
  • backlog_seconds:此源积压时间(秒)。

IncrementalizationIssue 对象

表示在计划更新时可能导致完全刷新的增量化问题。

领域 DESCRIPTION
issue_type 可阻止具体化视图增量化的问题类型。 有关详细信息,请参阅 问题类型
prevent_incrementalization 此问题是否阻止了增量化。
table_information 表信息与诸如CDF_UNAVAILABLEINPUT_NOT_IN_DELTADATA_FILE_MISSING等问题相关。
operator_name 与计划相关的信息。 当问题类型是PLAN_NOT_DETERMINISTICPLAN_NOT_INCREMENTALIZABLE时,设定为导致非确定性或非增量性的运算符或表达式的相关问题。
expression_name 表达式名称。
join_type 运算符是联接时的辅助信息。 例如,JOIN_TYPE_LEFT_OUTERJOIN_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_RECOMPUTEMAINTENANCE_TYPE_NO_OP,则类型为增量刷新。

价值 DESCRIPTION
MAINTENANCE_TYPE_COMPLETE_RECOMPUTE 完全重新计算;始终显示。
MAINTENANCE_TYPE_NO_OP 基表不更改时。
MAINTENANCE_TYPE_PARTITION_OVERWRITE 当具体化视图与其中一个源表共同分区时,逐步刷新受影响的分区。
MAINTENANCE_TYPE_ROW_BASED 通过为各种操作(例如JOINFILTERUNION ALL,)创建模块化更改集,并组合这些更改集来计算复杂的查询,从而进行增量刷新。 当启用源表的 行跟踪 ,并且查询的联接数有限时使用。
MAINTENANCE_TYPE_APPEND_ONLY 由于源表中没有插入更新或删除,因此通过仅计算新行来增量刷新。
MAINTENANCE_TYPE_GROUP_AGGREGATE 逐步通过计算每个聚合值的变化来刷新。 在关联聚合(如 countsummeanstddev)处于查询的最顶层时使用。
MAINTENANCE_TYPE_GENERIC_AGGREGATE 通过仅计算受影响的聚合组来增量刷新。 当聚合(如 median ,而不仅仅是关联的聚合)位于查询的最顶层时使用。
MAINTENANCE_TYPE_WINDOW_FUNCTION 通过仅重新计算已更改的分区,以增量方式刷新具有窗口函数 PARTITION BY 的查询。 当所有窗口函数都有一个 PARTITION BYJOIN 子句并且位于查询的最顶层时使用。

Origin 对象

事件的发起位置。

领域 DESCRIPTION
cloud 云提供商。 可能的值为:
  • AWS
  • 蔚蓝
  • 谷歌云平台 (GCP)
region 云区域。
org_id 用户的组织 ID 或工作区 ID。 在云中唯一。 用于标识工作区或与其他表(例如系统计费表)联接。
pipeline_id 管道的 ID。 管道的唯一标识符。 用于标识管道或与其他表(如系统计费表)联接。
pipeline_type 要显示管道创建来源的管道类型。 可能的值为:
  • DBSQL:通过 Databricks SQL 创建的管道。
  • WORKSPACE:通过 Lakeflow 声明性管道创建的 ETL 管道。
  • MANAGED_INGESTION:Lakeflow Connect 托管引入管道。
  • BRICKSTORE:用于实时特征服务的联机表更新流水线。
  • BRICKINDEX:用于更新向量数据库的管道。
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_DATECURRENT_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_UNKNOWNTABLE_CHANGE_TYPE_APPEND_ONLYTABLE_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_sizechange_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_RECOMPUTEMAINTENANCE_TYPE_NO_OP,则流以增量方式刷新。
有关详细信息,请参阅 MaintenanceType 对象
is_chosen 选用用于刷新的技术为 True。
is_applicable 维护类型是否适用。
incrementalization_issues 可能导致更新完全刷新的增量化问题。 有关详细信息,请参阅 IncrementalizationIssue 对象
change_set_information 有关最终生成的更改集的信息。 值为以下值之一:
  • CHANGE_SET_TYPE_APPEND_ONLY
  • CHANGE_SET_TYPE_GENERAL_ROW_CHANGE