阿里云大数据专业认证(ACP级)学习笔记(精简)

简介: 去年考过了,看的是知途网的视频,有实验环境。
阿里云大数据专业认证(ACP级)学习笔记(精简):
近百个视频精华考点总结,眼都快肿了。

ODPS
流计算用的是ODPS,ODPS的所有对象都隶属于项目空间。
项目空间project
表table:表中的列支持Bigint长整、Double双精、String字符串、Boolean布尔型、Datetime日期类型
进行不同类型的计算任务的时候操作对象不管是输入还是输出,都是表。所有的数据都存储在表里,支持表分区,支持依赖于表的视图。用户可以创建表,删除表
分区Partition:它设计分区的初衷是为了提高效率,我们在创建表的时候,可以指定表的分区,也可以在创建完成之后,去修改表的分区,比如我们可以指定表里面的某几个字段,作为分区列
任务Task:任务是ODS一个基本的计算单元,无论我们是用ODPS SQL,或者是用MapReduce这种功能去做一些操作的时候,实际上它都是在通过任务来完成的
资源Resource:资源是ODPS一个特有的概念,比如说,如果我们想使用ODPS的自定义函数,就是UDF,或者是MapReduce, 这个时候我们就需要依赖资源来完成
按用户权限划分:所有者(Owner)、管理员(Admin)、普通用户(User)

Task,Job,Instance
任务(Task):单个SQL Query或者MapReduce程序统称为一个任务。
工作流(Workflow):是个有向无环图(DAG),描述各个Task之间的依赖关系和约束。
作业(Job):由一个或者多个Task以及表示其执行次序关系的工作流(Workflow)组成。
作业实例(Instace):当作业被提交至系统中执行时,该作业就会拥有一个作业实例,一个Job多次运行就会有多个实例。实例保存了执行时的快照(Snapshot)、返回状态等。
作业是一个静态概念,作业对象对应了一个XML文件
作业实例Instace是一个动态概念,每个实例Instace只能运行一次。

ODPS适用于:
1、基于SQL构建大规模的数据仓库系统和BI系统
2、基于DAG/Graph构建大型分步式应用系统
DAG(有向无环图):就是以工作流的方式来组织任务,来组织成一个Job,然后我们可以去执行这个Job;
Graph(图运算):图运算的特点就是说快速迭代,就是我们首先定义节点,就是每一个节点都是一个运算,我们把这个运算预先定义好,然后节点之间的连线我们叫做边,这个边呢就描述了这个节点之间的关系,那么一个数据过来之后,我们可以快速的使用Graph来进行这种迭代运算
3、基于统计和机器学习的大数据统计和数据挖掘类的工作
ODPS有一个包叫做PAI,它是专门集成了一些,常见的机器运算法的一个包,可以使用这个工具,去做一些这种统计类的或者这种人工智能类或者机器学习类的这种大型的应用

MaxCompute计量计费:
计费单元:项目(project)
计费周期:天
1、存储计费:阶梯计费。数据压缩后计费(约5倍),每小时采集后计算平均值/天,存储量<512M时,1分/天
2、计算计费:
(1)按I/O后付费(作业执行后收费,共享公共的计算资源)
在第二天汇总前一天的作业信息,6点出帐单,不成功的计算不计费。
一次SQL计算费用=计算输入数据量*SQL复杂度*SQL价格
输入数据量:列剪裁、分区过滤
SQL复杂度:关键字个数,cost sql(用于获得复杂度的结果)
SQL价格:0.3元/GB
(2)按CU预付费(提前预定付费,独占且只享有购买的资源)
CU:Compute Unit,MaxCompute预留购买的资源
1CU:4GB内存、1核CPU、150元/月
资源使用时,1个进程占用1个CU,调用UDF需要额外占用1个CU,可以用命令调整每个进程占用的内存。

(3)计费方式转换
新用户:按I/0后付费,估算:存储/计算=1/6
项目用户:开发环境(按CU预付费)、生产环境(按I/O后付费)
转换时立即生效(如有任务要等下次运行后才生效)、CU预)转I/O后)包月费不退还。
3、下载计费:公网、VPC、经典网络
一次下载费用=下载数据量*下载价格
价格:0.8元/GB
下载数据量:HTTP Body,Protobuff编码
通过公网下载、华东1VPC,收费
通过经典网络下载、华东2VPC、华北2VPC,不收费

欠费状态超过24小时会停机。停机超过14天,项目释放。

作业详细信息:desc instance <instance id>;
出帐时间:以天为单位,计费周期结束后3小时内,最长不超过6小时。
项目空间数据保护默认是关闭的。


ODPS客户端:
odpd-config.ini
>odpscmd
>use yuxiang_01;
>list tables;
>list resources;
>desc t_people;
>read t_people;
>count t_people;
>odpscmd -e "read t_people;read t_people_p;":批量执行
>odpscmd -e "read t_people;read t_people_p;" -k 2;:从第几条开始执行
>oppscmd -f d:\check.cmd; :执行命令文件;

Tunnel下载命令:
有分区的表一定要指定上传的分区
有分区的表一定要指定下载的分区
-dbr,(如果上传记录有错误就丢掉,默认值false,意思是出错就退出)
-fd,列的分隔符
-h,列名要不要


自定义函数:
UDF:用户自定义标量函数。输入输出是一对一,输入一条输出一条。
UDTF:用户自定义表值函数。输入一条,输出多条。
UDAF:用户自定义聚组函数。输入入多条,输出一条。

安全管理与授权
项目空间创建者自动成为Owner。
如果用户还有角色,要先收回角色,才能移除用户权限。
移除用户时,要保证该用户没有被赋予角色权限。
虽被移除了项目,但权限仍保留在项目中,若用户回归项目,自动激活原有权限。(停薪留职)

缺少角色(Admin)
Admin可以:
1、访问项目空间所有对象
2、进行用户与角色的管理
3、对用户和角色进行授权

相比Owner,Admin不能:
1、将Admin角色赋给别的用户
2、不能设定项目空间的安全配置
3、不能修改项目空间的鉴权模型

角色的限制:
1、Admin角色的权限不能被修改
2、没被使用的角色才可以被删除


授权的三个要求:主体Subject、客体Object、操作Action
授权两种方法:
1、ACL基于对象的授权
grant 权限 on 表/对象 to 用户
授予:GRANT <privileges> ON <object> to <subject>;
收回:REVOKE <privileges> ON <object> to <subject>;

2、Policy基本策略的授权

数据保护机制(项目空间保护)
设置ProjectProtection规则:数据只能流入,不能流出,默认为false
set ProjectProtection=true
设置true后,各种数据导出操作将失效。

项目空间保护下的合规数据流出:
1、设置项目保护ProjectProtection的例外策略exception,json格式
2、将两个相关的项目空间设置为互信TrustedProject
3、package授权(优先级高于项目保护)



ODPS SQL:
1、是个数据仓库工具,Query解析后,计算和存储交由底层的飞天实现。
2、支持常用的SQL语法,包括窗口函数。
3、可以看做对标准SQL的支持,但是不能简单等同于数据库。
4、不支持事务、主外键约束、索引等。
5、适用于海量数据(TB/PB级别)的数据运算。
6、每个作业的准备,提交等阶段要花费较长时间,实时性不高。
7、长度有限制,目前是不能超过8M。

不支持update,delete,更新只支持insert overwrite和insert into。

rlike:正则表达式的like
有string,bigint,double才能参与算术运算,datetime,boolean不允许参与运算。
string在参与运算前会进行隐式类型转换到double
bigint、double共同参与计算时,会将bigint隐式转换为double
bigint/bigint,结果是double型

快速建表时,AS和LIKE的区别:
数据:
AS可以带入数据,可以依赖于多张表
LIKE只能复制单张表的表结构,不能带入数据
属性:
AS不能带入LIFECYCLE、分区键信息、注释等。
LIKE不能带入LIFECYCLE,可以带入分区键信息、注释等。

order by全局排序,必须与limit合用
distribute by做hash分片
sort by,局部排序,必须和distribute by合用
order by不能distribute by、sort by共用
group by不能distribute by、sort by共用

表连接join支持多路间接,但不支持笛卡尔积。只允许and连接的等值 条件,最多只支持16路join操作。

Mapjoin Hint:
使用情景:一个大表和一个或多个小表做join
基本原理:将用户指定的小表全部加载到执行join操作的程序的内存中,从而加快join的执行速度。
注意事项:
left outer join的左表必须是大表
right outer join的右表必须是大表
inner join左表或右表均可作为大表
full outer join不能使用mapjoin
支持小表为子查询
引用小表或子查询时,需要使用别名
可以使用不等值连接或者or连接多个条件(普通join只能做等值连接)
目前最多支持指定6张小表
所有小表占用的内存总和不得超过2G

多路输出multiinsert的限制:
单个SQL里最多可以写128路输出
对于分区表,同一个目标分区不可以出现多次
对于未分区表,该表不能作为目标表出现多次
对于同一分区表的不同分区,不能同时有insert overwrite和insert into操作

union all最多只支持128路,子查询的列个数、名称和类型必须要一致。顶级要用select包含起来。例如:
select * from (
select * from a where r='1'
union all
select * from a where r='2'
)

case  when是非贪婪的,一旦碰到满足条件,立即返回。

动态分区
在insert overwrite到一张分区表时,可以在语句中指定分区的值,也可指定一个分区列名,但不给出值。
动态分区的限制:
1、在分布式环境下,单个进程最多只能输出512个动态分区。
2、任意动态分区SQL不可以生成超过2000个动态分区。
3、动态生成的分区值不可以为NULL
4、如果目标表有多级分区,在运行insert语句时允许指定部分
分区为静态,但是静态分区必须是高级分区。

窗口函数
window_func() over()
把数据按照一定条件分成多组称为开窗,每个组称为一个窗口。
一个ODPS SQL语句中,最多可以使用5个窗口函数。
partition开窗时,同一窗口内最多包含1亿行数据。
用row开窗时,x,y必须大于0的于整数,范围为0-10000。必须指定order by才可以用rows方式指定窗口范围。支持窗口函数有:avg\count\max\min\stddev\sum,并非所有都支持。

相关实践学习
简单用户画像分析
本场景主要介绍基于海量日志数据进行简单用户画像分析为背景,如何通过使用DataWorks完成数据采集 、加工数据、配置数据质量监控和数据可视化展现等任务。
SaaS 模式云数据仓库必修课
本课程由阿里云开发者社区和阿里云大数据团队共同出品,是SaaS模式云原生数据仓库领导者MaxCompute核心课程。本课程由阿里云资深产品和技术专家们从概念到方法,从场景到实践,体系化的将阿里巴巴飞天大数据平台10多年的经过验证的方法与实践深入浅出的讲给开发者们。帮助大数据开发者快速了解并掌握SaaS模式的云原生的数据仓库,助力开发者学习了解先进的技术栈,并能在实际业务中敏捷的进行大数据分析,赋能企业业务。 通过本课程可以了解SaaS模式云原生数据仓库领导者MaxCompute核心功能及典型适用场景,可应用MaxCompute实现数仓搭建,快速进行大数据分析。适合大数据工程师、大数据分析师 大量数据需要处理、存储和管理,需要搭建数据仓库?学它! 没有足够人员和经验来运维大数据平台,不想自建IDC买机器,需要免运维的大数据平台?会SQL就等于会大数据?学它! 想知道大数据用得对不对,想用更少的钱得到持续演进的数仓能力?获得极致弹性的计算资源和更好的性能,以及持续保护数据安全的生产环境?学它! 想要获得灵活的分析能力,快速洞察数据规律特征?想要兼得数据湖的灵活性与数据仓库的成长性?学它! 出品人:阿里云大数据产品及研发团队专家 产品 MaxCompute 官网 https://www.aliyun.com/product/odps&nbsp;
目录
相关文章
|
2月前
|
人工智能 数据管理 Serverless
阿里云数据库走向Serverless与AI驱动的一站式数据平台具有重大意义和潜力
阿里云数据库走向Serverless与AI驱动的一站式数据平台具有重大意义和潜力
404 2
|
2月前
|
人工智能 运维 Cloud Native
、你如何看待阿里云数据库走向Serverless与AI驱动的一站式数据平台?
、你如何看待阿里云数据库走向Serverless与AI驱动的一站式数据平台?
149 2
|
2月前
|
存储 数据可视化 数据管理
基于阿里云服务的数据平台架构实践
本文主要介绍基于阿里云大数据组件服务,对企业进行大数据平台建设的架构实践。
714 2
|
2月前
|
人工智能 数据管理 大数据
阿里云数据库走向Serverless与AI驱动的一站式数据平台是一个很有前景和意义的发展方向
阿里云数据库走向Serverless与AI驱动的一站式数据平台是一个很有前景和意义的发展方向
33 2
|
21天前
|
机器学习/深度学习 分布式计算 数据挖掘
阿里云 MaxCompute MaxFrame 开启免费邀测,统一 Python 开发生态
阿里云 MaxCompute MaxFrame 正式开启邀测,统一 Python 开发生态,打破大数据及 AI 开发使用边界。
198 1
|
1月前
|
人工智能 DataWorks 数据可视化
心动基于阿里云DataWorks构建游戏行业通用大数据模型
心动游戏在阿里云上构建云原生大数据平台,基于DataWorks构建行业通用大数据模型,如玩家、产品、SDK、事件、发行等,满足各种不同的分析型应用的要求,如AI场景、风控场景、数据分析场景等。
334 1
|
2月前
|
人工智能 运维 数据管理
阿里云数据库走向Serverless与AI驱动的一站式数据平台
阿里云数据库走向Serverless与AI驱动的一站式数据平台
271 2
|
2月前
|
人工智能 Cloud Native 数据管理
阿里云数据库:向Serverless与AI驱动的一站式数据平台迈进
众所周知,在人工智能迅猛发展的现在,在AI驱动下的数据平台,正在向一站式、智能化的方向演进,还有就是云原生+Serverless的不断深入,一站式数据平台将让数据管理开发像“搭积木”一样简单实用,以性价比更高、体验更优的云数据库服务,助推用户业务提效增速。据悉阿里云数据库正在朝着Serverless与AI驱动的方向发展,构建一站式、智能化的数据平台,这一发展趋势将为用户提供更简单、实用的数据管理开发体验,以提高业务效率和降低成本。那么本文就来分享一下如何看待阿里云数据库的这一转变,并展望云原生和Serverless对数据管理与开发的未来带来的更多可能性。
65 1
阿里云数据库:向Serverless与AI驱动的一站式数据平台迈进
|
2月前
|
消息中间件 监控 Cloud Native
阿里云云原生微服务高级工程师认证(ACP级-Alibaba Cloud Certification Professional)考试大纲
介绍阿里云云原生微服务高级工程师认证(ACP级-Alibaba Cloud Certification Professional)所需具备的知识及学习方法等。
273 0
|
2月前
|
Kubernetes 监控 Cloud Native
阿里云云原生容器高级工程师认证(ACP级-Alibaba Cloud Certification Professional)考试大纲
介绍阿里云云原生容器高级工程师认证(ACP级-Alibaba Cloud Certification Professional)所需具备的知识及学习方法等。
173 2

热门文章

最新文章