Azure 事件中心流:检查点是否覆盖 setStartingPosition?

问题描述

如果我们像这样在 EventHub conf 中指定起始位置:

EventHubsConf(ConnectionStringBuilder(eventHubConnectionString).build)
  .setStartingPosition(EventPosition.fromStartOfStream)
or
  .setStartingPosition(EventPosition.fromEndOfStream)

并在StreamWriter中指定检查点位置

streamingInputDF
  .writeStream
  .option("checkpointLocation",checkpointLocation)
  ...

重新启动后,是否 setStartingPosition 变得无关紧要,因为检查点始终用作开始读取的点?

谢谢。

解决方法

重新启动streamimg查询时将使用检查点文件中存储的偏移量信息。

有趣的是,这在 structured streaming eventhubs integration guide 中没有特别提及,但是,在 DStreams guide 中却是:

“连接器与结构化流检查点机制完全集成。您可以通过在查询中设置检查点位置来恢复查询失败的进度和状态。此检查点位置必须是 HDFS 兼容文件系统中的路径,并且可以在启动查询时设置为 DataStreamWriter 中的一个选项。"

请务必遵循有关 checkpoint recovery 的一般指南。

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...