Flink CDC实时的调度 有什么组成部分吗?
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
Flink CDC 实时调度主要由以下几个组件组成:
在实时调度过程中,Flink CDC 会定期从 Kafka 中读取新的数据,并将其转换为适合 Flink 处理的数据流。然后,这些数据流会被发送到 Flink TaskManager 进行处理,并最终将结果写入目标数据库中。
此外,ZooKeeper 在实时调度过程中也起着重要的作用。它会监控 Kafka 和 Flink 的状态,并确保它们之间的协调。如果出现任何问题,ZooKeeper 将尝试重新安排任务或通知管理员进行干预。
Flink CDC实时调度主要由以下几个组成部分:
源连接器:Flink社区开发的flink-cdc-connectors组件,这是一个可以直接从MySQL、PostgreSQL等数据库直接读取全量数据和增量变更数据的source组件。
数据抓取:Flink CDC会实时抓取增量的更新记录,实时提供与数据库中一致性的快照,如果是更新记录,会更新已有数据。如果是插入记录,则会追加到已有数据,整个过程中,Flink CDC提供了一致性保障,即不重不丢。
数据处理:在获取到数据库变更数据后,Flink CDC会根据用户定义的规则进行处理,例如清洗、转换等操作。
接收器:将处理后的数据发送到下游的接收端,如Redis、Elasticsearch、ClickHouse等多个接收端,可以各自分析自己的数据集,互不影响,同时又和上游数据保持实时的同步。
实现原理:通常来讲,CDC分为主动查询和事件接收两种技术实现模式。对于主动查询而言,用户通常会在数据源表的某个字段中,保存上次更新的时间戳或版本号等信息,然后下游通过不断的查询和与上次的记录做对比,来确定数据是否有变动,是否需要同步。
实时计算Flink版是阿里云提供的全托管Serverless Flink云服务,基于 Apache Flink 构建的企业级、高性能实时大数据处理系统。提供全托管版 Flink 集群和引擎,提高作业开发运维效率。