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

Flink CDC 要想从日志的指定时间开始同步,可以么?// 要同步快,这个配置必须加,不然非常慢

Flink CDC 要想从日志的指定时间开始同步,可以么?// 要同步快,这个配置必须加,不然非常慢
properties.setProperty("log.mining.strategy", "online_catalog");

展开
收起
真的很搞笑 2023-07-13 13:29:55 448 0
2 条回答
写回答
取消 提交回答
  • 北京阿里云ACE会长

    是的,Flink CDC 支持从指定时间开始进行数据同步。在 Flink CDC 中,可以使用 cdc.startup.timestamp-millis 参数来指定数据同步的起始时间,以从指定时间开始进行数据同步。这个参数的值应该是一个时间戳,表示从哪个时间开始同步数据。

    具体来说,可以在启动 Flink CDC 时,将 cdc.startup.timestamp-millis 参数设置为指定的时间戳,以从指定时间开始进行数据同步。例如,可以使用如下命令启动 Flink CDC:

    routeros
    Copy
    ./bin/flink run ./examples/sql-client/DebeziumSQLExample.jar \
    --cdc-plugin.name=mysql-cdc \
    --cdc-plugin.conf.dir=./conf \
    --cdc.startup.mode=timestamp \
    --cdc.startup.timestamp-millis=1627603200000
    在这个命令中,cdc.startup.mode 参数设置为 timestamp,表示使用时间戳模式进行数据同步;cdc.startup.timestamp-millis 参数设置为 1627603200000,表示从 2021 年 7 月 30 日 00:00:00 开始同步数据。

    2023-07-29 22:28:25
    赞同 展开评论 打赏
  • 是的,Flink CDC 提供了从指定时间点开始同步的功能。您可以通过配置 startupOptions 中的 initial 选项来指定起始时间。

    对于从日志的指定时间开始同步,您需要使用 initial 选项,并将其设置为一个具体的时间戳,表示您希望从该时间戳开始同步数据。示例代码如下:

    Properties properties = new Properties();
    properties.setProperty("startupOptions.initial", "2022-01-01T00:00:00Z");
    

    在上述示例中,将 startupOptions.initial 设置为 "2022-01-01T00:00:00Z",即表示从 UTC 时间 2022 年 1 月 1 日 00:00:00 开始同步数据。

    此外,为了能够启用快速同步,您提到了 log.mining.strategy 配置项。将其设置为 "online_catalog" 可以使用在线目录挖掘策略来提高同步速度。这种策略会利用数据库的在线目录信息来减少扫描和解析的日志量,从而加快同步过程。

    请注意,确保所选择的起始时间不早于数据库的日志保留时间范围。否则,可能无法获取到指定时间之前的历史数据。

    综上所述,您可以通过设置 startupOptions.initiallog.mining.strategy 来实现从指定时间开始快速同步数据的需求。

    2023-07-15 09:53:43
    赞同 展开评论 打赏

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

相关产品

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

    更多
    Flink CDC Meetup PPT - 覃立辉 立即下载
    Flink CDC Meetup PPT - 孙家宝 立即下载
    Flink CDC Meetup PPT - 徐榜江 立即下载