Flink CDC中在获取维表数据的时候,是一次批量获取的还是一条一条获取的?
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
在 Flink CDC 中获取维表数据时,通常是一次批量获取的方式。这种方式可以提高性能和效率,减少与外部系统的交互次数。
具体来说,在 Flink 中使用 CDC 连接器获取维表数据时,会以某种方式(如 JDBC 或 REST API)从外部系统中批量获取数据,并将其加载到 Flink 的内存中。然后,在查询过程中通过内存中的维表数据进行关联操作。
这种一次批量获取的方式有以下优点:
减少网络开销:批量获取可以减少与外部系统的网络通信次数,降低了网络开销,提高了整体性能。
提高处理速度:一次性获取维表数据可以利用更高效的算法进行关联操作,从而提高查询速度和处理效率。
缓存数据:一次批量获取的方式可以将维表数据缓存在 Flink 的内存中,提供快速访问和响应,避免频繁地访问外部系统。
需要注意的是,具体的实现方式取决于所使用的 CDC 连接器和外部系统的特性。一些连接器可能支持自定义配置,例如批量大小、并发度等,以优化维表数据的获取方式。
在 Flink CDC 中获取维表数据的方式,通常有两种方式:批量批量获取和单条记录获取。
批量批量获取:在批量批量获取的方式中,Flink CDC 将所有的维表数据一次性加载到 Flink 的内存中,然后通过 Flink 的 Join 算子对流数据和维表数据进行关联。该方式适用于维表数据比较小的且可以全部加载到内存中的情况,可以减少和维表数据库的交互次数,提高查询的效率。
单条记录获取:在单条记录获取的方式中,Flink CDC 会根据流数据的键值,单独向维表数据库发送查询请求,获取对应的维表数据。这种方式适用于维表数据
没设缓存就是1对n,n可以是1,2,3,4, 取决于你on的key。能拿到几条。此回答整理至钉群“Flink CDC 社区”。
实时计算Flink版是阿里云提供的全托管Serverless Flink云服务,基于 Apache Flink 构建的企业级、高性能实时大数据处理系统。提供全托管版 Flink 集群和引擎,提高作业开发运维效率。