通过flink sql的方式获取cdc , 能拿到cdc的op类型吗
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
可以通过Flink SQL的方式获取CDC数据,并且能够拿到CDC的op类型。在使用MySQL CDC Source时,支持获取操作类型(op_type),它会标识每行记录的变更类型,具体包括:
+I
:表示INSERT消息-D
:表示DELETE消息-U
:表示UPDATE_BEFORE消息+U
:表示UPDATE_AFTER消息要在Flink SQL中访问这些元数据,自vvr-4.0.11-flink-1.13版本起,MySQL CDC Source支持通过元数据列语法来实现。例如,在定义表结构时,可以包含如下的元数据列来直接读取变更类型:
op_type STRING METADATA FROM 'op_type' VIRTUAL
这样,在消费MySQL的CDC数据流时,每一行数据将携带其变更操作的类型,您可以在Flink SQL查询或后续处理中利用此信息进行相应的业务逻辑处理。
注意:确保使用的实时计算引擎版本支持此功能,例如VVR 8.0.7及以上版本。对于其他数据库如MongoDB,在特定版本和配置下也能实现类似的功能,但细节和配置方式会有所不同。
实时计算Flink版是阿里云提供的全托管Serverless Flink云服务,基于 Apache Flink 构建的企业级、高性能实时大数据处理系统。提供全托管版 Flink 集群和引擎,提高作业开发运维效率。