利用视图进行多表关联

当在Maxcompute中处理大数据量且涉及超过8个码表关联时,可能导致SQL清洗过程卡死。通过创建视图作为中间层,可以将关联操作分步进行,避免一次性关联大量表。视图能虚拟化关联结果,方便后续与其他表进一步关联。通过切分视图和实体表,可以有效地管理大规模的表关联,最终实现高效的数据处理。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

疑问

在Maxcompute中我们关联的码表大于8个,然后数据存储量大于500W,那么在进行sql清洗的时候极有可能会被卡死。可是我们就是要在一张表上关联10多个表,比如一张表中的很多字段都要关联码表,因为其有对应的翻译字段。那我们改怎么办呢?


  • 只能将他分成俩次进行关联。

  • 难不成我们要重新创建一个中间表就是为了关联一下么?卧槽,这也太操蛋了吧。

答案

答案流程
1、面对这样的问题的时候sql中伟大的视图出现了,他就当做个第三方的中间机制。

2、将第一个表和8个代码表进行关联的表进行虚拟化,在sql的内部形成一个虚拟的整体。除了不存在于数据库中的表面和表结构之外,真实表中所有的属性他都有。可以进行任意的内置函数的操作。

3、那么在后面我们要关联剩下的要关联的表和这张假皮(视图)进行关联操作了。这样所有需要翻译、关联的代码表就都关联上了。

4、这样我们可以类推:我们有30个要关联的表怎么办,那么我们是不是就把这三十个字段进行切分,形成3个视图+一个实体表就可以了。

5、 最后也是一个视图+一个实体表的关联。因为下一个表(无论是视图还是实体表)的数据来源是不是都是来自于上一个表,那么上一个表+新增关联码表=下一个视图或者实体表。只是在最后的实体表我们才能表所有的数据写进去。
视图也会有分区的概念的。
这里写图片描述

下面时我们最爱的DEMO环节(一个视图+一个实体表)

---逐层关联---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值