数仓规范之禁用SELECT *,原因:
1)无法谓词下推
大数据列存储,可以将字段过滤下推到源文件上,减少计算数据量
2)引发不必要的改动
举例:
订单表字段:订单号、创建时间、金额、日期分区
退单表字段:退单号、创建时间、金额、日期分区
前期两个表字段一样,字段类型也一样,为了计算扣除退款后的金额,需要两个表一起使用,SQL如下
SELECT SUM(金额),日期分区
FROM (
SELECT * FROM 订单表
UNION ALL
SELECT * FROM 退单表
)
GROUP BY 日期分区
突然有一天,退单表要单独增加一个字段,此时写SELECT的地方要全部改动一遍。