作者:张韬(伯略)
出品:大淘宝技术
ODPS(Open Data Processing Service)是一个海量数据处理平台,基于阿里巴巴自主研发的分布式操作系统(飞天)开发,是公司云计算整体解决方案中最核心的主力产品之一。本文结合作者多年的数仓开发经验,结合ODPS平台分享数据仓库中的SQL优化经验。
背景
数据仓库,是一个面向主题、集成的、随时间变化的、信息本身相对稳定的数据集合。数据仓库从Oracle(单机、RAC),到MPP(Green plum),到Hadoop(Hive、Tez、Sprak),再到批流一体Flink/Blink、数据湖等,SQL都是其主流的数据处理工具。海量数据下的高效数据流转,是数据同学必须直面的一个挑战。本文结合阿里自研的ODPS平台,从自身工作出发,总结SQL的一些优化技巧。
基础知识
Hive SQL的执行过程
Hive SQL的编译到执行,可以参考《Hive SQL的编译过程》,里面详细介绍了神奇的SQL如何在大数据平台编译与执行的过程。
《Hive SQL的编译过程》地址:https://tech.meituan.com/2014/02/12/hive-sql-to-mapreduce.html
SQL的基础语法
大佬们写过很多SQL基础入门的文章,也可以参考Hive SQL的官方文档。
HiveSQL的官方文档地址:https://cwiki.apache.org/confluence/display/Hive//GettingStarted#Getting
Started-SQLOperations