数仓SQL规范及最佳实践(基于ODPS)

该博客总结了在ODPS环境下进行数据开发时的SQL规范,包括语法排版、命名规则、参数处理和开发环境的选择。强调了避免使用Select *,采用AS别名,以及充分利用参数和IDE提升开发效率。同时,文中提到了性能相关要点,如分区裁剪、列裁剪和并行计算,旨在提高查询和计算效率。
摘要由CSDN通过智能技术生成

日常数据开发中,遇到过不少问题,最终沉淀为SQL规范。简单整理抛出来,欢迎指正和讨论。

语法和规范

排版

• 自行定义的内容全部小写,ODPS或其他约定关键字大写
• SQL需要有格式,单行长度不能超过80,不同含义语段需要缩进

命名与关键字

• SQL中不能出现Select *,只获取需要的字段,方便计算引擎做列裁剪
• SQL中Select的字段需要加 AS 别名,方便code review
• SQL中的表名,请书写 库名.表名 (在DataWorks里是 工作空间名.表名)

参数和常量

• SQL中不能直接写数字,如应用类型等枚举,可以在数据开发中配置参数、然后sql中引用参数即可
• 是否改成UDF

开发环境

• 脚本建议使用IDE开发(Idea插件)
• 注意开发后需提交任务才生效

其他(部分适用于关系数据库)

  1. SQL样式指南(SQL Style Guide):https://www.sqlstyle.guide/zh/
  2. SQL如果有多条语句,需要考虑语句是否可以并行跑(如果可以,需要拆分成多个脚本)
    与多路输出减少计算量原则有冲突,需要谨
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值