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

本文涉及的产品
云原生大数据计算服务 MaxCompute,5000CU*H 100GB 3个月
云原生大数据计算服务MaxCompute,500CU*H 100GB 3个月
简介: 去年考过了,看的是知途网的视频,有实验环境。
阿里云大数据专业认证(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,并非所有都支持。

相关实践学习
基于MaxCompute的热门话题分析
本实验围绕社交用户发布的文章做了详尽的分析,通过分析能得到用户群体年龄分布,性别分布,地理位置分布,以及热门话题的热度。
SaaS 模式云数据仓库必修课
本课程由阿里云开发者社区和阿里云大数据团队共同出品,是SaaS模式云原生数据仓库领导者MaxCompute核心课程。本课程由阿里云资深产品和技术专家们从概念到方法,从场景到实践,体系化的将阿里巴巴飞天大数据平台10多年的经过验证的方法与实践深入浅出的讲给开发者们。帮助大数据开发者快速了解并掌握SaaS模式的云原生的数据仓库,助力开发者学习了解先进的技术栈,并能在实际业务中敏捷的进行大数据分析,赋能企业业务。 通过本课程可以了解SaaS模式云原生数据仓库领导者MaxCompute核心功能及典型适用场景,可应用MaxCompute实现数仓搭建,快速进行大数据分析。适合大数据工程师、大数据分析师 大量数据需要处理、存储和管理,需要搭建数据仓库?学它! 没有足够人员和经验来运维大数据平台,不想自建IDC买机器,需要免运维的大数据平台?会SQL就等于会大数据?学它! 想知道大数据用得对不对,想用更少的钱得到持续演进的数仓能力?获得极致弹性的计算资源和更好的性能,以及持续保护数据安全的生产环境?学它! 想要获得灵活的分析能力,快速洞察数据规律特征?想要兼得数据湖的灵活性与数据仓库的成长性?学它! 出品人:阿里云大数据产品及研发团队专家 产品 MaxCompute 官网 https://www.aliyun.com/product/odps&nbsp;
目录
相关文章
|
17天前
|
人工智能 Cloud Native 数据管理
媒体声音|重磅升级,阿里云发布首个“Data+AI”驱动的一站式多模数据平台
在2024云栖大会上,阿里云瑶池数据库发布了首个一站式多模数据管理平台DMS:OneMeta+OneOps。该平台由Data+AI驱动,兼容40余种数据源,实现跨云数据库、数据仓库、数据湖的统一数据治理,帮助用户高效提取和分析元数据,提升业务决策效率10倍。DMS已服务超10万企业客户,降低数据管理成本高达90%。
|
19天前
|
分布式计算 Java 开发工具
阿里云MaxCompute-XGBoost on Spark 极限梯度提升算法的分布式训练与模型持久化oss的实现与代码浅析
本文介绍了XGBoost在MaxCompute+OSS架构下模型持久化遇到的问题及其解决方案。首先简要介绍了XGBoost的特点和应用场景,随后详细描述了客户在将XGBoost on Spark任务从HDFS迁移到OSS时遇到的异常情况。通过分析异常堆栈和源代码,发现使用的`nativeBooster.saveModel`方法不支持OSS路径,而使用`write.overwrite().save`方法则能成功保存模型。最后提供了完整的Scala代码示例、Maven配置和提交命令,帮助用户顺利迁移模型存储路径。
|
2月前
|
人工智能 分布式计算 DataWorks
连续四年!阿里云领跑中国公有云大数据平台
近日,国际数据公司(IDC)发布《中国大数据平台市场份额,2023:数智融合时代的真正到来》报告——2023年中国大数据平台公有云服务市场规模达72.2亿元人民币,其中阿里巴巴市场份额保持领先,占比达40.2%,连续四年排名第一。
204 12
|
2月前
|
人工智能 Cloud Native 数据管理
重磅升级,阿里云发布首个“Data+AI”驱动的一站式多模数据平台
阿里云发布首个AI多模数据管理平台DMS,助力业务决策提效10倍
330 17
|
2月前
|
机器学习/深度学习 运维 分布式计算
大数据技术专业就业前景
大数据技术专业就业前景广阔,广泛应用于互联网、金融、医疗等众多行业,助力企业数字化转型。岗位涵盖大数据开发、分析、运维及管理,如大数据工程师、分析师和系统运维工程师等。这些岗位因专业性和稀缺性而享有优厚薪资,尤其在一线城市可达20万至50万年薪。随着技术进步和经验积累,从业者可晋升为高级职位或投身数据咨询、创业等领域,发展空间巨大。
86 5
|
2月前
|
SQL 人工智能 大数据
阿里云牵头起草!首个大数据批流融合国家标准发布
近日,国家市场监督管理总局、国家标准化管理委员会正式发布大数据领域首个批流融合国家标准GB/T 44216-2024《信息技术 大数据 批流融合计算技术要求》,该标准由阿里云牵头起草,并将于2025年2月1日起正式实施。
86 7
|
2月前
|
SQL 人工智能 大数据
首个大数据批流融合国家标准正式发布,阿里云为牵头起草单位!
近日,国家市场监督管理总局、国家标准化管理委员会正式发布大数据领域首个批流融合国家标准 GB/T 44216-2024《信息技术 大数据 批流融合计算技术要求》,该标准由阿里云牵头起草,并将于2025年2月1日起正式实施。
|
2月前
|
存储 SQL 分布式计算
Java连接阿里云MaxCompute例
要使用Java连接阿里云MaxCompute数据库,首先需在项目中添加MaxCompute JDBC驱动依赖,推荐通过Maven管理。避免在代码中直接写入AccessKey,应使用环境变量或配置文件安全存储。示例代码展示了如何注册驱动、建立连接及执行SQL查询。建议使用RAM用户提升安全性,并根据需要配置时区和公网访问权限。具体步骤和注意事项请参考阿里云官方文档。
|
2月前
|
机器学习/深度学习 数据可视化 大数据
阿里云大数据的应用示例
阿里云大数据应用平台为企业提供高效数据处理与业务洞察工具,涵盖Quick BI、DataV及PAI等核心产品。DT203课程通过实践教学,帮助学员掌握数据可视化、报表设计及机器学习分析技能,提升数据驱动决策能力。Quick BI简化复杂数据分析,DataV打造震撼可视化大屏,PAI支持全面的数据挖掘与算法应用。课程面向CSP、ISV及数据工程师等专业人士,为期两天,结合面授与实验,助力企业加速数字化转型。完成课程后,学员将熟练使用阿里云工具进行数据处理与分析。[了解更多](https://edu.aliyun.com/training/DT203)
|
3月前
|
机器学习/深度学习 分布式计算 BI
MaxCompute 与阿里云其他服务的协同工作
【8月更文第31天】在当今的数据驱动时代,企业需要处理和分析海量数据以获得有价值的洞察。阿里云提供了一系列的服务来满足不同层次的需求,从数据存储到高级分析。MaxCompute(原名 ODPS)作为阿里云的大规模数据处理平台,提供了强大的计算能力和丰富的功能,可以与阿里云的其他服务无缝集成,形成完整的大数据解决方案。本文将探讨 MaxCompute 如何与其他阿里云服务协同工作,包括存储服务 OSS、数据分析服务 Quick BI 以及机器学习平台 PAI。
52 1