阿里云大数据平台的实操:ODPS的SQL语句

大数据计算服务(MaxCompute,原名ODPS)是一种快速、完全托管的TB/PB级数据仓库解决方案。

当今社会数据收集手段不断丰富,行业数据大量积累,数据规模已增长到了传统软件行业无法承载的海量数据(百GB、TB乃至PB)级别。MaxCompute服务于批量结构化数据的存储和计算,提供海量数据仓库的解决方案及分析建模服务。

由于单台服务器的处理能力有限,海量数据的分析需要分布式计算模型。分布式的计算模型对数据分析人员要求较高且不易维护:数据分析人员不仅需要了解业务需求,同时还需要熟悉底层分布式计算模型。MaxCompute为您提供完善的数据导入方案以及多种经典的分布式计算模型,助您快速解决海量数据的计算问题,有效降低企业成本并保障数据安全。您可以不必关心分布式计算和维护细节,便可轻松完成大数据分析。

1.ODPS:Open Data Processing Service, 简称ODPS;是由阿里云自主研发,提供针对TB/PB级数据、实时性要求不高的分布式处理能力,应用于数据分析、挖掘、商业智能等领域;阿里巴巴的离线数据业务都运行在ODPS上; 
2.御膳房:基于ODPS的一个应用模型;基于公共云计算的数据管理、计算和交换平台,为政府机构、企业、科研机构、第三方软件服务商等客户,提供大数据管理、开发和生产计算的能力,同时让客户间能交换数据,解决数据管理、应用、流通的场景需求,帮助客户实现商业价值;

3.ODPS SQL:与Hive SQL语法基本一致;适用于海量数据(TB级别),实时性要求不高的场合,它的每个作业的准备,提交等阶段要花费较长时间, 因此要求每秒处理几千至数万笔事务的业务是不能用ODPS SQL完成的;ODPS SQL采用的是类似于SQL的语法,可以看作是标准SQL的子集,但不能因此简单的把ODPS SQL等价成一个数据库,它在很多方面并不具备数据库的特征;

PS:常见数据库有层次型(树状),网状型(网络),关系型(二维表格)

4.SQL语句不分大小写,使用“–”进行注释,使用分号作为语句结束符号; 
eg:–select * from wifi; 
5.支持的数据类型:bigint,double,string,datetime,boolean,decimal;

6.支持的关系运算符:=, <>, <, <=, >, >=, is null, is not null, like, rlike和in ;

7.支持的算术运算符:+, -, * , /, %;

8.支持的逻辑运算符:and, or,not

9.支持的位运算符:&,|;

10.支持三目运算符:A?B:C;

11.SQL语言包括四种主要程序设计语言类别的语句:数据定义语言(DDL),数据操作语言(DML),数据控制语言(DCL)和事务控制语言(TCL);在ODPS中使用的主要是DDL跟DML;

12.ODPS平台上的数据都是以表的形式来处理的,所以SQL语句很重要,在处理SQL时候,字段也是一个关键的概念;

(二)DDL语句

1.表的创建

(1)新建一个自定义的表:create table if not exists A (字段名 字段类型);

(2)新建一个表,字段与现有表一致,但数据并没有复制:create table if not exists A like B;

2.表的删除

drop table A; 
3.表的重命名

alter table A rename to B; 
4.表的生命周期

alter table A set lifecycles 30;

5.增加字段

alter table A add columns(字段名 字段类型); 
6.查看表的信息

desc A 
(三)DML语句

1.表中数据的更新(insert语句)

(1)insert overwrite table A select * from B :表示将表A的数据复制到表B中,前提是字段一致;

PS:ODPS平台的SQL仅支持以上的更新数据库语句;其中关键字overwrite表示覆盖写入,可换成into表示追尾写入;

2表中数据的读取(select语句)

(1)select * from A:读取全部字段数据

(2)select uid from A:读取某一字段全部数据

(3)select distinct uid from A :读取某一字段不重复数据

(4)select * from A where uid=’a’:读取某一字段值等于指定值的数据

(5)select * from (select * from A)a:嵌套语句 
(6)select sum(uid) from A group by uid:分组查询 
(7)select * from A order by uid limit 4:全局排序,必须与limit 配合使用

(8)select row_number() over (partition by item order by score)as row_num from A:对字段item按字段score值进行局部排序并给出序号

3.表的合并(union all 语句)

select * from( 
select * from t1 where uid=’a’ 
union all 
select * from t2 where uid=’a’)t;

4.表的连接(join 语句与left outer join 语句)

(1)join

select * from A a join B b on a.item = b.item :返回A,B表中字段item值相同的数据

(2)left outer join

select * from A a left outer join B b on a.item = b.item :返回A表全部数据

(四)内建函数

查看附件文档 
MaxCompute-sql

参考链接:https://help.aliyun.com/document_detail/73768.html?spm=a2c4g.11186623.6.619.64cf5ffcW8TpPF

猜你喜欢

转载自blog.csdn.net/OYY_90/article/details/88738784