基于ODPS的SQL语句
(⼀)基本概念
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语句不分⼤⼩写,使⽤“--”进⾏注释,使⽤分号作为语句结束符号;
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;
sql语句实现的四种功能
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表全部数据
(四)内建函数
查看附件⽂档
附件:

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。