我使用flink cdc StartupOptions.latest() 采最新的日志。要是程序挂了,这个是继续上次的偏移量进行采集。还是从最新的开始啊?
你好,官方是定义好从最新的记录开始的,所以在配置的时候要注意一下的
StartupOptions.latest() 从最新的数据开始读取
StartupOptions.specificOffset(String specificOffsetFile, int specificOffsetPos) 指定文件和位置
Flink CDC Flink社区开发了 flink-cdc-connectors 组件,这是一个可以直接从 MySQL、PostgreSQL 等数据库直接读取全量数据和增量变更数据的 source 组件。目前也已开源, FlinkCDC是基于Debezium的.
FlinkCDC相较于其他工具的优势: ①能直接把数据捕获到Flink程序中当做流来处理,避免再过一次kafka等消息队列,而且支持历史数据同步,使用更方便. ②FlinkCDC的断点续传功能: Flink-CDC将读取binlog的位置信息以状态的方式保存在CK,如果想要做到断点续传, 需要从Checkpoint或者Savepoint启动程序,通过这种方式来实现断点续传。 实时采集,当数据源里的数据发生了增删改操作,同步任务监听到这些变化,将变化的数据实时同步到目标数据源。实时采集任务是不会停止的,任务会一直监听数据源是否有变化。
看你的采集方式 1、断点续传 断点续传是指数据同步任务在运行过程中因各种原因导致任务失败,不需要重头同步数据,只需要从上次失败的位置继续同步即可,类似于下载文件时因网络原因失败,不需要重新下载文件,只需要继续下载就行,可以大大节省时间和计算资源。断点续传是数栈-离线开发平台(BatchWorks)里数据同步任务的一个功能,需要结合任务的出错重试机制才能完成。当任务运行失败,会在Engine里进行重试,重试的时候会接着上次失败时读取的位置继续读取数据,直到任务运行成功为止。 2、实时采集
实时采集是数栈-实时开发平台(StreamWorks)里数据采集任务的一个功能,当数据源里的数据发生了增删改操作,同步任务监听到这些变化,将变化的数据实时同步到目标数据源。除了数据实时变化外,实时采集和离线数据同步的另一个区别是:实时采集任务是不会停止的,任务会一直监听数据源是否有变化。这一点和Flink任务是一致的,所以实时采集任务是数栈流计算应用里的一个任务类型,配置过程和离线计算里的同步任务基本一样。
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
实时计算Flink版是阿里云提供的全托管Serverless Flink云服务,基于 Apache Flink 构建的企业级、高性能实时大数据处理系统。提供全托管版 Flink 集群和引擎,提高作业开发运维效率。