问题一:Flink CDC消费binlog 不是增量的嘛?
Flink CDC消费binlog 不是增量的嘛,为啥保存了18小时还不够用呢,任务数据量也不是那么大 不至于积压18小时啊 而且报错的binlog位置 从数据库也看了下binlog文件确实存在 有点不太理解这里的逻辑 大佬辛苦帮忙解惑一下?
参考答案:
Flink CDC确实基于MySQL的binlog来实现数据的实时同步,其增量数据抓取就是从binlog中进行的。因此理论上,无论数据库进行了何种操作,只要binlog正常生成,Flink CDC就应该能够找到对应的增量数据。
然而,确实存在某些情况下可能出现找不到binlog的问题。例如,当任务报错时,如果最近的binlog被清除了,那么在重启任务后就可能找不到这个位置的binlog。但根据你的描述,即使保存了18小时的binlog,且任务数据量并不大,也出现了找不到binlog的情况。这可能由以下几种情况导致:
- Flink CDC任务配置问题。你可能设置了某些参数使得任务只进行一次全量同步,而不读取后续的binlog。
- MySQL的binlog未正常开启或由于某些原因导致binlog日志丢失。你可以登录MySQL,确认其binlog是否已开启以及是否存在你所需要的binlog日志。
- 使用的Flink版本与CDC版本可能存在兼容性问题。不同版本的Flink和CDC对接MySQL的binlog方式可能存在差异,你需要确保你使用的MySQL版本、Flink版本以及CDC版本能够兼容。
关于本问题的更多回答可点击进行查看:
https://developer.aliyun.com/ask/577357
问题二:flinkcdc写入数据库是ck一次然后往里面刷一次吧?
flinkcdc写入数据库是ck一次然后往里面刷一次吧?
参考答案:
Flink CDC是一种基于数据库日志的Change Data Capture技术,可以实现全Flink CDC是一种基于数据库日志的Change Data Capture技术,可以实现全量和增量的一体化读取能力。其主要工作原理是通过主动查询和事件接收两种方式来捕获并处理数据库中的变更数据。
在主动查询模式中,通常会在数据源表的某个字段中保存上次更新的时间戳或版本号等信息,然后通过不断的查询与上次的记录进行对比,来确定数据是否有变动,进而决定是否需要同步。
在事件接收模式中,Flink CDC会基于MySQL的binlog来实现数据的实时同步。即无论数据库进行了何种操作,只要binlog正常生成,Flink CDC就能够找到对应的增量数据,并将其实时同步到下游存储。
关于本问题的更多回答可点击进行查看:
https://developer.aliyun.com/ask/577355
问题三:Flink CDC要是这么短时间的ck,那这ck的文件我要是还要保留,会不会导致ck失败啊?
Flink CDC要是这么短时间的ck,那这ck的文件我要是还要保留(程序突然故障导致任务失败检查点恢复任务),会不会导致ck失败啊?
参考答案:
Flink CDC的Checkpoint机制是一种用于在运行过程中保存应用程序状态的容错机制。当发生故障时,可以通过使用最新的Checkpoint信息来重新启动应用程序,并从上次保存的位置继续处理数据。
关于你的问题,如果checkpoint的间隔时间短,那么在程序突然故障导致任务失败时,确实可能会因为最近的checkpoint文件丢失而导致恢复失败。但是,Flink提供了不同的checkpoint触发机制,包括基于时间间隔和数据量的触发方式,可以根据应用程序的实际需求进行选择。
另外,需要注意的是,Flink Checkpoint的状态保留策略有两种:DELETE_ON_CANCELLATION表示当程序取消时,删除Checkpoint。所以,如果你的程序有可能会意外取消,那么这种策略可能不适合你。在这种情况下,你可能需要采取其他措施来确保checkpoint文件的安全保存。
关于本问题的更多回答可点击进行查看:
https://developer.aliyun.com/ask/577354
问题四:flinkcdc 数据写入目标表是不是得到ck完成一次往表里刷一次啊?
flinkcdc 数据写入目标表是不是得到ck完成一次往表里刷一次啊?
参考答案:
不是,看你下游连接器的参数,比如1s写一次,或者达到最大缓存记录写出去一次,大数据场景都是微批写出去
关于本问题的更多回答可点击进行查看:
https://developer.aliyun.com/ask/577353
问题五:Flink CDC这个参数为啥一直是100%?
Flink CDC这个任务taskmanager Managed Memory这个参数为啥一直是100%?
参考答案:
你的是无状态的任务吧,状态后端是rocksdb,Managed Memory 100%不影响
关于本问题的更多回答可点击进行查看: