问题一:1.13.6的flink,该事务执行时间稍长由比较多的数据被处理,但与该job关注的表无关?
1.13.6的flink,cdc读mysql的binlog,卡在一个binlog点上,就在一直卡在这里。在这期间附近有个其他表的大事务操作发生,该事务执行时间稍长由比较多的数据被处理,但与该job关注的表无关?io.debezium.connector.mysql.MySqlStreamingChangeEventSource [] - Stopped reading binlog after 0 events, no new offset was recorded io.debezium.connector.mysql.MySqlStreamingChangeEventSource [] - Connected to MySQL binlog atMySQL cdc
后来,在卡住大概2小时后发生了OOM
参考回答:
加大内存,mysql binlog机制只能订阅实例的全部表的变更
关于本问题的更多回答可点击原文查看:https://developer.aliyun.com/ask/567884
问题二:Flink CDC我那个替换了jar包来着,然后重启的,还是加载2.2.1是什么情况?
Flink CDC我那个替换了jar包来着,然后重启的,还是加载2.2.1是什么情况?没有配置serverid什么的?我用yarn per提交的来着,lib里面也就是一个版本
参考回答:
cdc版本只能存在一个在lib中,具体不清楚能。日志显示2.2.1就是不对的哦,是不是你你还有其他地方不小心引用了
关于本问题的更多回答可点击原文查看:https://developer.aliyun.com/ask/567878
问题三:Flink CDC 取oracle归档日志暴涨 怎么解决呀?
Flink CDC 取oracle归档日志暴涨 怎么解决呀?
参考回答:
如果Flink CDC在读取Oracle归档日志时出现日志数量大幅增加的情况,可以从以下几个方面进行处理:
- 增加归档日志的记录保留时间:默认情况下,Oracle CDC会将归档日志保留1天。如果数据变化频繁,可以将记录保留时间增加到更长,以避免归档日志被过早删除。
- 使用更高效的归档日志压缩格式:通过选择更高效的归档日志压缩格式,可以减少存储空间,降低I/O开销。
- 调整Flink CDC的工作负载:如果Flink CDC在短时间内接收到了大量归档日志,可以尝试调整其工作负载,例如减少数据读取速度或增加并发度,以缓解压力。
- 升级硬件设备:如果现有的硬件设备无法满足Flink CDC的需求,可以考虑升级硬件设备,如提升CPU性能或扩大内存容量。
- 检查并优化相关SQL语句:若在Flink CDC作业中包含SQL查询操作,需要检查是否存在低效的SQL语句,对其进行优化,降低归档日志的产生速度。
关于本问题的更多回答可点击原文查看:https://developer.aliyun.com/ask/567876
问题四:Flink CDC中“null”是字符串不是空转不了long?
Flink CDC中“null”是字符串不是空转不了long?
参考回答:
不是的Invalid Java object for schema type STRING: class java.lang.Long for field: "null",字段是null而已,值不是null
关于本问题的更多回答可点击原文查看:https://developer.aliyun.com/ask/567871
问题五:Flink CDC有没有人遇到过pg的复制槽,表的复制标识这块设置问题?
Flink CDC有没有人遇到过pg的复制槽,表的复制标识这块设置问题?就是表的复制标识必须设置成full,感觉这个开销大如果是默认主键的逻辑的话好像是会报The "before" field of UPDATE/DELETE message is null, please check the Postgres table has been set REPLICA IDENTITY to FULL level. You can update the setting by running the command in Postgres 'ALTER TABLE public.resident REPLICA IDENTITY FULL'. Please see more in Debezium documentation: https://debezium.io/documentation/reference/1.5/connectors/postgresql.html#postgresql-replica-identity
参考回答:
是的,Flink CDC在处理PostgreSQL数据库时,确实需要确保表的复制标识设置为FULL。这是因为在执行UPDATE/DELETE操作时,Debezium会检查"before"字段是否为null,如果为null,则会报错。因此,为了解决这个问题,你需要在PostgreSQL中运行以下命令来设置表的复制标识为FULL:
ALTER TABLE public.resident REPLICA IDENTITY FULL;
你可以在Debezium文档中找到更多关于PostgreSQL连接器的信息:https://debezium.io/documentation/reference/1.5/connectors/postgresql.html#postgresql-replica-identity
关于本问题的更多回答可点击原文查看:https://developer.aliyun.com/ask/567866