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

Flink CDC中msqlcdc 读数据,五千万数据,想从id是三千万那 开始读,这可以实现吗?

Flink CDC中msqlcdc 读数据,五千万数据,想从id是三千万那 开始读,这可以实现吗?

展开
收起
真的很搞笑 2023-11-22 08:12:54 30 0
3 条回答
写回答
取消 提交回答
  • 面对过去,不要迷离;面对未来,不必彷徨;活在今天,你只要把自己完全展示给别人看。

    Flink CDC 可以实现从特定 ID 开始读取数据的功能。但是,具体实现方式取决于您的源数据库和数据格式。
    如果源数据库支持自定义游标,则可以使用自定义游标从特定 ID 开始读取数据。如果您使用 MySQL 数据库,可以通过调用 CHANGE MASTER TO 语句来移动 binlog 位置,从而从特定位置开始读取数据。
    另一种方法是从源数据库中创建临时表,并在其中过滤出您想要的数据。然而,这种方法会消耗大量的资源,因此不适合大量数据集。

    2023-11-29 14:38:21
    赞同 展开评论 打赏
  • 目前实现不了,
    不过可以where 条件进行过滤,5千万数据还好吧,多开点并行度,直线加速冲刺,此回答整理自钉群“Flink CDC 社区”

    2023-11-22 10:53:24
    赞同 展开评论 打赏
  • 可以实现。在Flink CDC中,可以使用startup.from-timestampstartup.until-timestamp参数来指定从哪个时间戳开始读取数据,以及读取到哪个时间戳为止。具体操作如下:

    1. 首先,找到你想要开始读取数据的ID对应的时间戳。可以通过查询数据库表的元数据或者使用其他方法来获取。

    2. 然后,在启动Flink CDC时,设置startup.from-timestamp参数为该时间戳。例如:

    ./bin/flink run -c com.ververica.cdc.connectors.mysql.MySqlSource \n    --start-from-timestamp=2022-01-01T00:00:00Z \n    --hostname=localhost \n    --port=3306 \n    --username=root \n    --password=changeme \n    --database-name=mydb \n    --table-names=mytable \n    --debezium-properties="{...}"
    
    1. 最后,确保你的Flink集群有足够的资源来处理五千万条数据。如果需要,可以调整Flink集群的配置,例如增加内存、CPU等资源。
    2023-11-22 09:31:43
    赞同 展开评论 打赏

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

相关产品

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

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