共用方式為


STREAMING_QUERY_EVOLUTION_ERROR 錯誤條件

SQLSTATE:42000

串流查詢演化錯誤:

DUPLICATE_SOURCE_NAMES

偵測到重複串流來源名稱: <duplicateNames>。 每個串流來源必須有獨特的名稱。 請使用name()方法確保所有來源名稱不同。

INVALID_SINK_NAME

串流匯入名稱無效:「<sinkName>」。 Sink 名稱只能包含 ASCII 字母('a'-'z', 'A'-'Z')、數字('0'-'9'),及底線 ('_')。

無效的來源名稱

串流來源名稱無效:「<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 來停用命名來源強制

資源ID重複使用

無法在檢查點位置<checkpointLocation>重複使用匯集名稱<sinkId>。 這個水槽名稱之前曾使用,後來被另一個水槽取代。 重複使用非啟用的匯名稱可能導致資料正確性問題。 要使用新的匯入器,請使用 DataStreamWriter 的 name() 方法將其指定不同名稱(例如 .name(“my_new_sink”)。

接收器供應商不匹配

無法在檢查點<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() 方法來為所有串流來源指派名稱。