一、实验概述
大数据计算服务(MaxCompute,原名 ODPS)是一种快速、完全托管的 GB/TB/PB 级数据仓库解决方案。MaxCompute 向用户提供了完善的数据导入方案以及多种经典的分布式计算模型,能够更快速的解决用户海量数据计算问题,有效降低企业成本,并保障数据安全。
MaxCompute 只能以表的形式存储数据,并对外提供了 SQL 查询功能。用户可以将 MaxCompute 作为传统的数据库软件操作,但其却能处理TB、PB级别的海量数据。需要注意的是,MaxCompute SQL 不支持事务、索引及 Update/Delete 等操作,同时 MaxCompute 的 SQL 语法与 Oracle,MySQL 有一定差别,用户无法将其他数据库中的 SQL 语句无缝迁移到 MaxCompute 上来。此外,在使用方式上,MaxCompute SQL 最快可以在分钟,乃至秒级别完成查询,无法在毫秒级别返回用户结果。MaxCompute SQL 的优点是对用户的学习成本低,用户不需要了解复杂的分布式计算概念。具备数据库操作经验的用户可以快速熟悉 MaxCompute SQL 的使用。
本实验通过实际操作了解有关MaxCompute SQL的相关命令,熟悉MaxCompute SQL ,目前MaxCompute SQL的主要功能包括如下:
二、实验目标
MaxCompute SQL 采用的是类似于 SQL 的语法,可以看作是标准 SQL 的子集,但不能因此简单的把 MaxCompute 等价成一个数据库,它在很多方面并不具备数据库的特征,如事务、主键约束、索引等。本实验的目标是了解MaxCompute SQL 的DML语句(DML:Data Manipulation Language 数据操作语言),包括:SELECT查询、INSERT数据更新、多路输出、表关联JOIN、MAP JOIN、分支条件判断。
完成此实验后,可以掌握的能力有:
本实验通过控制台Data IDE和客户端两种方式进行实验,学习不同的MaxCompute SQL操作,掌握MaxCompute SQL的编写注意事项。
三、学习建议
第 2 章:背景知识
2.1 背景知识
MaxCompute 主要服务于批量结构化数据的存储和计算,可以提供海量数据仓库的解决方案以及针对大数据的分析建模服务。随着社会数据收集手段的不断丰富及完善,越来越多的行业数据被积累下来。数据规模已经增长到了传统软件行业无法承载的海量数据(百 GB、TB 乃至 PB)级别。阿里的数加平台Data IDE是一个集成可视化开发环境,构建在阿里云云计算基础设施之上,使用Data IDE能够流畅对接ODPS等计算引擎,可实现数据开发、调度、部署、运维、及数仓设计、数据质量管理等功能;通过Data IDE操作MaxCompute简单方便。
开放实验室是阿里云官方实验平台(https://edu.aliyun.com/lab/),提供真实的阿里云环境、系统的学习进程及课程教材。用户可通过平台自动创建的阿里云资源, 包含自动分配阿里云账号、自动创建的阿里云产品、服务资源和实验指导,深度体验和学习阿里云产品和服务。
2.2 实验操作思路
本实验即通过云中沙箱使用Data IDE和odps客户端学习MaxCompute的操作命令。
首先通过Data IDE 开通实验环境,通过系统分配的项目信息获取AK ID 以及 AK Secret 秘钥对,配置客户端,通过客户端创建实验所需的表和上传实验数据(当然也可以通过Data IDE操作)。
第 3 章:实验环境
3.1 申请MaxCompute资源
弹出的左侧栏中,点击 创建资源 按钮,开始创建实验资源。
资源创建过程需要1-3分钟。完成实验资源的创建后,用户可以通过 实验资源 查看实验中所需的资源信息,例如:阿里云账号等。
3.2 资源环境准备
友情提示:实验环境一旦开始创建即进入计时阶段,建议学员先了解(学习)实验具体的步骤、目的,真正动手开始做实验时,再进行创建资源,资源一旦创建则中间无法暂停,直至时间消耗完毕。
2.1 资源环境
1)请点击页面左侧的实验资源,在左侧栏中,查看本次实验资源信息。
2)点击“实验资源”,查看所需具体资源,如图案例:
3.3 进入实验环境
如果通过实验环境进行实验在创建资源后,
3.1 、登录控制台(实验环境)
1)登录云中沙箱,在实验目录中查询所需实验,点击进入实验,查看实验所需资源,创建资源成功后,点击实验提供的“控制台url”
1)如果为提前安装客户端,请参考下面网址进行安装:
------输入语句创建表dual ,回车 (注意dual 表后面的实验还会使用,请务必先创建)
此方式用户需要使用实名认证过的阿里云官网账号登陆阿里云管理控制台,首先开通MaxCompute服务。
(具体开通MaxCompute参照https://help.aliyun.com/document_detail/58226.html?spm=a2c4g.11174283.3.2.qBUiZe )
第 4 章:建表准备数据
4.1 构建实验表
1、 创建实验表: 找到下载文件中的ODPS_DEMO esources03-SQLdml_crt.sql,执行如下命令(或从附件中直接下载),执行如下命令:
4.2 加载数据
下载实验附件数据文件t_dml.csv,执行命令如下:(如果出现汉字乱码现象,请注意字符集是否正确)
(说明:执行语句建议将自己的命令和文件路径写全,除非你已经将命令配置在环境变量中,在下载的文件目录下执行此命令,另外为避免乱码,建议输入以下命令 tunnel upload 数据文件目录: _dml.csv t_dml)
即:tunnel upload XXXXX:XX _dml.csv t_dml ;
第 5 章:简单查询
5.1 一般查询
1) 检查表中“浙江省”相关的数据信息 :select * from t_dml where province=‘浙江省’;
(说明:如果出现核查的数据中文出现乱码的现象,建议上传数据时限制字符集合为 -c GBK )
5.2 使用子句的查询
1)统计浙江省销量大于某量的销售城市排名 :
第 6 章:数据更新
6.1 追加记录
1) // insert into table: 追加插入
(提示:本部分使用到表dual ,上面的实验步骤 第3章3小节 已建立,如果未建立此表,请先执行如下语句建立此表:
)
—添加分区:
—往分区添加数据:
6.2 覆盖插入记录
1)覆盖插入非分区数据表:
查看结果:(执行选中检查语句 )
(说明:分区表一般需附带分区条件,避免全分区扫描,在操作未加分区条件的分区表时,MaxCompute提示告警 “full scan with all partitions” )
使用覆盖插入的方式清空非分区表
第 7 章:多路输出
7.1 实验场景
多路输出即在一个语句中插入不同的结果表或者分区,实验场景说明:
7.2 实验操作
1)增加分区,依次增加两个分区,操作如下
2)创建实验临时表
第 8 章:动态分区
8.1 分区背景
动态分区即分区数值不是直接写死的,是由参数控制或数据中的实际数据控制的。
实际应用中通常会出现类似将表 t_dml 中的数据插入到分区表 t_dml_p中去的现象,由于分区个数多,不能手工逐个处理,太麻烦,需要动态分区。
8.2 分区实验
1)删除上步建立的分区:
3)利用overwrite 覆盖原来的分区
第 9 章:join操作
9.1 加载实验数据
1)切换到客户端,切换至目录ODPS_DEMO esources03-SQL(具体目录随自己而定),找到t_product_crt.sql文件,创建表,也可以直接将文件中的内容粘贴到控制台处理(或直接从附件下载实验文件)
(如果执行命令报找不到文件错误,建议执行命令写全路径,示例如下:
9.2 join操作
1) 普通的JOIN操作
业务背景:事实表t_dml包含了销售记录信息,其中字段 product_id为产品标识,可以关联另一张维表t_product获得产品的说明信息,现在想通过SQL得到针对产品大类的销售金额统计:
第 10 章:MapJoin HINT
10.1 场景介绍
由于各种原因,造成销售信息表 t_dml 中的记录存在一些质量问题,可能的问题包括:
1- 产品标识错误: 可以通过单价判断,单价相等的标识不同,则可能存在错误
2- 价格错误:如果销售记录中的平均单价高于产品维表中的定价,则可能存在问题
请协助发现这些可能存在问题的记录。
10.2 MapJoin HINT操作
1) left outer join 实现质量问题
第 11 章:子查询
11.1 简单查询
ODPS SQL 支持将子查询作为一张表来用,可以用于简单查询、join等。在使用中,必须为子查询指定别名。
11.2 join子查询
1) 子查询用于join
第 12 章:SQL联合与条件表达式
12.1 联合处理UNIOn ALL
在销售记录中,由于实际售卖价钱和产品的标称价并不一致,如果想获得产品的所有出现过的单价(包括实际售卖价和标称价),则采用如下语句处理:
12.2 条件表达式CASE WHEN
如果市场部准备做一次市场营销活动,对于一次购买3-5个产品的,在目前的售价上实行9折优惠,一次购买6个及以上产品的,给与8折优惠。请基于5月份数据想评估一下此次活动的成本(为了简单可行,活动成本定义为目前销售额减掉优惠后的销售额)。则处理语句如下:
第 13 章:SQL执行结果的验证
13.1 简单SQL通过结果直接验证
简单SQL通过执行结果判定是否正确,如通过简单查询语句验证:
13.2 复杂SQL验证
复杂SQL不容易理解或从结果中无法直接得到信息,采用逆向抽样的方法,如上述实验中涉及到的,利用动态分区快速插入数据
如:
第 14 章:课后任务
14.1 课后任务
思考题 :
在常规的数据需求中,通常会遇到类似的统计查询,从一个千万级别甚至上亿级别的记录表中,将数据按不同条件分散到不同的表中,如按省份将各省数据分装到不同的表中,如果数据源表在MaxCompute中,采用哪种方式比较简单?相反如果统计所有省的数据,每个省数据放置在不同表中或不同分区中,考虑这样又如何做,效率如何?
以上就是本篇文章【【实验】阿里云大数据助理工程师认证(ACA)- ACA认证配套实验-01-MaxCompute DML操作】的全部内容了,欢迎阅览 ! 文章地址:http://dfvalve.xrbh.cn/quote/6753.html 行业 资讯 企业新闻 行情 企业黄页 同类资讯 网站地图 返回首页 迅博思语资讯移动站 http://keant.xrbh.cn/ , 查看更多