开发者社区 > 大数据与机器学习 > 实时计算 Flink > 正文

Flink CDC这里是我忽略了什么配置么?

Flink CDC这里是我忽略了什么配置么?mongo-cdc 2.4 flink1.17.1 同步的时候出现 Caused by: org.bson.BsonInvalidOperationException: Document does not contain key $clusterTime,请问有人遇到过这问题么?image.png
MongoDB server version: 4.4.2-4

展开
收起
真的很搞笑 2023-12-01 10:30:37 43 0
3 条回答
写回答
取消 提交回答
  • 这个问题可能是由于您的Flink CDC配置中缺少了mongo-cdc.start.at参数导致的。这个参数用于指定从哪个时间点开始读取数据,如果不设置该参数,则默认为null,这可能会导致同步过程中出现BsonInvalidOperationException异常。

    您可以尝试在Flink CDC的配置文件中添加以下参数:

    mongo-cdc.start.at=<时间戳>
    

    其中,<时间戳>表示您希望从哪个时间点开始读取数据。例如,如果您希望从2023年1月1日开始读取数据,可以将其设置为:

    mongo-cdc.start.at=1672444800000
    

    请注意,时间戳的单位是毫秒。

    2023-12-02 16:35:30
    赞同 展开评论 打赏
  • 面对过去,不要迷离;面对未来,不必彷徨;活在今天,你只要把自己完全展示给别人看。

    这个问题可能是由于MongoDB的副本集设置导致的。在MongoDB中,副本集中的主节点会维护一个时间戳$clusterTime,用于同步操作。如果Flink CDC在连接到副本集时没有正确处理这个时间戳,就可能会出现这个错误。

    解决这个问题的方法是确保Flink CDC在连接到MongoDB副本集时能够正确处理$clusterTime。具体来说,你需要在连接字符串中指定readPreference为primary,这样Flink CDC就会直接连接到主节点,从而获取到正确的$clusterTime。

    例如,如果你的连接字符串是"mongodb://localhost:27017/?replicaSet=myReplicaSet",你可以将其修改为"mongodb://localhost:27017/?replicaSet=myReplicaSet&readPreference=primary"。

    另外,你也需要确保你的Flink CDC版本支持MongoDB 4.0或更高版本,因为$clusterTime是从MongoDB 4.0开始引入的。

    2023-12-01 21:27:09
    赞同 展开评论 打赏
  • mongodb是什么版本呀?
    看上去是isMaster命令返回值没有$clusterTime导致的。
    把心跳打开试试看呢: heartbeat.interval.ms = 3000,mongo cdc 加一个心跳开起的参数试一试: heartbeat.interval.ms = 3000,此回答整理自钉群“Flink CDC 社区”

    2023-12-01 11:19:13
    赞同 展开评论 打赏

实时计算Flink版是阿里云提供的全托管Serverless Flink云服务,基于 Apache Flink 构建的企业级、高性能实时大数据处理系统。提供全托管版 Flink 集群和引擎,提高作业开发运维效率。

相关产品

  • 实时计算 Flink版
  • 相关电子书

    更多
    Flink CDC Meetup PPT - 龚中强 立即下载
    Flink CDC Meetup PPT - 王赫 立即下载
    Flink CDC Meetup PPT - 覃立辉 立即下载