大佬们知道Flink 采用lookup join 3张维表第一二张表on条件和主表等值,第三张表和第二张表字段等值,这样写有什么不妥?第三张加上for system和不加有区别?
首先,我们需要知道什么是维表 join。维表 join 是指在一个数据库查询中,使用维表作为表连接的一部分。维表通常包含一些有关主表中记录的信息,例如记录的名称或类别。利用维表可以让我们在查询主表时轻松地添加一些额外的上下文信息。
在 Flink 中,我们可以使用 lookup join 来实现维表 join。lookup join 是指在对主表进行查询时,从维表中查找与主表中记录匹配的记录。这可以让我们在查询主表时轻松地添加一些额外的上下文信息。
要使用 lookup join,我们需要创建一个维表对象。维表对象可以使用 Java 中的 Map 或 HashMap 来表示。维表对象中的每个键都对应于维表中的一行记录。每个值都对应于主表中的一行记录。
创建维表对象后,我们可以使用 Flink 的 lookupJoin 函数来执行维表 join。lookupJoin 函数接受主表、维表和一个 on 条件作为参数。on 条件是主表和维表中用于匹配记录的列的名称。
当我们调用 lookupJoin 函数时,Flink 会遍历主表中的每一行记录。对于每行记录,Flink 都会在维表中查找与该记录匹配的记录。如果找到了匹配的记录,Flink 就会将主表中的记录和维表中的记录连接起来。如果没有找到匹配的记录,Flink 就会将主表中的记录作为输出。
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
实时计算Flink版是阿里云提供的全托管Serverless Flink云服务,基于 Apache Flink 构建的企业级、高性能实时大数据处理系统。提供全托管版 Flink 集群和引擎,提高作业开发运维效率。