Hologres 针对宽表 Merge 场景是如何实现的?
宽表 Merge 场景 例如一个用户的结果表有非常多的字段,会有上百列,而该表的许多字段可能同时分布 在不同的数据上游,例如,Column C 和 D 分布在一个 kafka 的 topic A 上面, ColumnE 和 F 分布在 kafka 的 topic B 上面,用户希望消费两个 kafka topic,并将数 据 merge 成 Hologres 的一张结构表。最常见的解决办法是,进行流场景的一个双流 Join。这种实现对于开发人员来说相对比较复杂,需要实现一个双流 Join,而且理论上来 说会对计算资源要求非常大,也加剧了运维人员的负担。Hologres 支持局部更新的功能。如下图所示,按照这种实现方式,只需要两个流各自 写入 Hologres 结果表。第一个流消费 ABCD 四个字段,将数据写入到最终的结果表中。 第二个流消费 ABEF 四个字段,最终将数据写入到结果表,并不需要进行双流的 Join,最 终 Hologres 会自己进行一个数据的组装。第一个流写入 ABCD 的时候并不会去更新已经 存在的 EF 字段,同样,第二个流写入 ABEF 字段的时候,C 和 D 字段已经存在,不会被 更新,最终达到完整的一个数据 Merge 的功能。使用这种功能,可以大大提升流作业的开 发效率,以及减少流作业所需要的资源消耗,也能够更容易的维护各个流作业。
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
本技术圈将为大家分析有关阿里云产品Hologres的最新产品动态、技术解读等,也欢迎大家加入钉钉群--实时数仓Hologres交流群32314975