STREAMING_QUERY_EVOLUTION_ERROR错误条件

SQLSTATE:42000

流式处理查询演变错误:

源名称重复

检测到重复的流媒体源名称: <duplicateNames>。 每个流媒体源必须具有唯一的名称。 请确保所有源都使用 name() 方法具有不同的名称。

无效的接收器名称 (INVALID_SINK_NAME)

流式处理接收器名称无效:“<sinkName>”。 接收器名称只能包含 ASCII 字母('a'-'z'、'A'-'Z')、数字('0'-'9')和下划线('_')。

INVALID_SOURCE_NAME

无效的流式处理源名称:“<sourceName>”。 源名称只能包含 ASCII 字母('a'-'z'、'A'-'Z')、数字('0'-'9')和下划线('_')。 如果需要,请使用反引号来引用具有特殊字符的名称。

命名源需要执行

禁用 spark.sql.streaming.queryEvolution.enableSourceEvolution 时,无法使用 name() 方法命名流源。 请将 spark.sql.streaming.queryEvolution.enableSourceEvolution 设置为 true,或删除 name() 调用来启用源演变。

NAMED_SOURCES_REQUIRE_OFFSET_LOG_V2

命名流式数据源要求强制使用偏移量日志格式 V2(OffsetMap),但发现了 V<version>。V2 格式使用 sourceId:offset 配对,支持源演变。 将 spark.sql.streaming.offsetLog.version 设置为 2,或者通过将 spark.sql.streaming.queryEvolution.enableSourceEvolution 设置为 false 来禁用命名源强制实施

SINK_ID_重用

不能在检查点位置<checkpointLocation>重复使用接收器名称“<sinkId>”。 此汇聚名称以前被使用过,然后被替换为另一个汇聚。 重用非活动接收器名称可能会导致数据正确性问题。 若要使用新接收器,请在 DataStreamWriter 上使用 name() 方法为其分配一个不同的名称(例如,.name("my_new_sink"))。

SINK_PROVIDER_MISMATCH

无法更改检查点位置<checkpointLocation>的接收点“<sinkId>”的接收点提供程序。 接收器以前使用的是提供程序“”<previousProvider>,但现在使用的是“<currentProvider>”。 更改汇聚点类型的同时保留相同的汇聚点名称可能会导致数据正确性问题。 若要使用新的接收器类型,请使用 DataStreamWriter 上的 name(例如,.name(“my_new_sink”)方法为其分配其他名称。

TOMBSTONE_SOURCE_NAME_REUSE

不能重复使用已处于墓碑状态的源名称:<sourceNames>。 这些源名称以前使用过,然后从检查点位置 <checkpointLocation>的流式处理查询中删除。 重用墓碑化的源名称可能会导致数据正确性问题。 请使用不同的源名称。

无名流接收器强制执行

启用 spark.sql.streaming.queryEvolution.enableSinkEvolution 时,必须为流处理目标命名。 使用 DataStreamWriter 中的 name() 方法为流式接收端分配一个名称。

未命名流媒体来源(含强制执行)

启用 spark.sql.streaming.queryEvolution.enableSourceEvolution 时,必须命名所有流源。 找到未命名的源: <sourceInfo>。 使用 name() 方法为所有流来源命名。