阿里云大数据ACA总结

1. 概述
数加是指阿里云大数据平台,包含了一系列的大数据产品及服务。
计算引擎(三类):离线计算、流式计算、在线计算

2. MaxCompute
由阿里云自主研发,提供针对TB/PB级数据、实时性要求不高的分布式处理能力,应用于数据分析、挖掘、商业智能等领域。阿里巴巴的数据业务都运行在MaxCompute上。
特点:分布式(分布式集群架构)、安全性(自动存储容错)、易用性(标准接口服务)、管理与授权(多用户的管理协同)
MaxCompute对象
  Project 项目空间
        所有对象都隶属于项目空间
        计量计费及安全控制的基本单元
  Table 表
        所有的数据都存储在表露
        支持表分区,支持依赖于表的视图
  Partition 分区
    上传时,手工创建分区并保证质量
    使用insert数据时支持动态分区
其它概念
  Task 任务
        MaxCompute基本计算单元,SQL及MR都是通过任务完成的
  Instance 实例
        任务的一个具体实例,表示实际运行的task
  Sandbox 沙箱
        按照安全策略限制程序行为的执行环境
分区表指的是在创建表时指定分区键,即指定表内的某几个字段作为分区列。在使用数据时如果指定了需要访问的分区名称,则只会读取相应的分区,避免全表扫描,提高处理效率,降低费用
MaxCompute数据类型:bigint、string、boolean、double、datetime、edecimal
MaxCompute架构:
    客户端:eclipse、clt、管理控制台(DMS)、dataide、intelij
    接入层
    逻辑层:请求分为计算型和非计算型。如果是非计算型,则请求处理器处理后返回。如果是计算型。则交给调度器处理。但其实调度器也不是做真正的处理,而是以xml文件的形式交给计算层进行处理。
    计算层

Tunnel基本语法
1.tunnel或者tunnel help查看帮助信息
2.tunnel upload [options] <[project.]table[/partition]> 数据上传
tunnel upload d:\test\all.txt yunxiang_01.t_test_all
tunnel upload d:\test\all.txt yunxiang_01.t_test_p/gender=’male’
tunnel upload d:\test\all.txt yunxiang_01.t_test_all -dbr true; // 容忍错误
参数:
-dbr 错误记录处理,缺省值为false,即不能容忍任何错误记录
-dfp 日期类型的格式,缺省为:yyyyMMddHHmmss
-mbr 最大错误记录数,缺省值为1000
-rd 行分隔符
-fd 列分隔符
支持文件或目录(只一级目录)的上传
每一次上传只支持数据上传到一个表或表的一个分区
有分区的表一定要指定上传的分区
3.tunnel download 数据下载
tunnel download [options] <[project.]table[/partition]>
tunnel download yunxiang_01.t_test_all d:\test\all.txt
tunnel download test_project.test_table/p1=”b1”,p2=”b2” log.txt
只支持下载到单个文件
每一次下载只支持一个表或者一个分区
有分区的表一定要指定下载的分区
4.分隔符
支持多个字符的列分隔符和行分隔符
支持控制字符等不可见字符做分隔符
列分隔符不能包含行分隔符
转义字符分隔符,在命令行模式下只支持\r,\n和\t
tunnel upload d:\p.txt t_test_p/gender=’male’ -fd “||” -rd “\r\n”
tunnel download t_test_p/gender=’male’ d:\p_download.txt -fd “||||” -rd “&&”
tunnel upload d:\p.txt t_test_p/gender=’male’ -fd “\b” -rd “\t” (错误,因为不支持\b)
fd 列分隔符 rd 行分隔符
DDL:建表、删表、修改表明
表的生命周期:MC表中的数据,从最后一次更新时间算起,在经过指定的时间后没有变动,则此表将被MC自动回收(删除)。此指定时间就是该表的生命周期。
生命周期授权单位;days(天),只能指定正整数
生命周期只能指定表级的,不能指定分区级的
分区表和非分区表都可以指定生命周期
对于非分区表的生命周期,自最后一次数据被修改的时间开始计算,经过days天后数据仍未改动,则此表将会被自动回收
对于分区表的生命周期,则根据各个分区的最后一次数据被修改的时间判断该分区是否会被回收。即时所有分区都被删除,该表也不会被删除,依然存在
若建表时不指定生命周期,则该表不会根据生命周期规则被MC自动回收
快速建表:like as

DML:
如果写order by,一定要写limit,表示最多返回多少条数据
表关联join:左连接left outer join,右连接right outer join,内连接inner join,全连接full outer join
full outer join不能使用mapjoin
分值表达式CASE WHEN
CASE []
WHEN <condition_1> then <result_1>
WHEN <condition_1> then <result_1>
. . .
ELSE <result_n>
END
MC内置函数:值函数、窗口函数、聚合函数、其它函数
string concat(string a, string b…)
如果没有参数或者某个参数为NULL,结果均返回NULL
concat()=NULL
concat(‘a’,null,’b’)=NULL

Show tables 列出当前项目空间下所有的表

set ProjectProtection=true 开启空间的数据保护机制后,无法将空间项目中的数据转移到项目空间外,所有的数据只能在项目空间内部流动。

3. DataIDE
大数据开发套件(Data IDE)是阿里云数加重要的Paas平台产品。基于MaxCompute作为核心的计算、存储引擎,提供了海量数据的离线加工分析、数据挖掘的能力。提供数据集成、数据开发、数据管理、数据治理、数据分享等全方位的产品服务,提供全面托管的工作流服务,一站式开发管理的界面,帮助企业专注于数据价值的挖掘和探索。
DataIDE的实例可以提前生成,再去完成任务。Maxcompute是执行任务时产生实例。
通过DataIDE,可对数据进行传输、转换、集成的操作,从不同的数据存储引入数据,对数据进行转化和开发,最后将数据输送到其他数据系统。

DataIDE角色 平台权限
项目管理员 项目空间的管理者,可对基本属性、数据源、计算引擎配置和项目成员等进行管理
开发 能够创建工作流、脚本文件、资源和UDF,新建/删除表,同时可以创建发布包,但不能执行发布操作
运维 由项目管理员分配运维权限;拥有发布及线上运维的权限,没有数据开发的权限
部署 部署角色与运维角色相似,但是它没有线上运维的权限
访客 只具备查看权限

运维中心包括运维大屏、任务列表、任务运维和智能监控四大模块。
任务列表分周期任务和手动任务。
周期任务:调度系统按照调度配置自动定时执行的任务。
手动任务:新建任务时,调度类型选择手动任务后,提交到调度系统的任务。
如果当前工作流/节点任务存在上游任务,则调度执行时,必须满足()等条件才可以调度执行。
上游任务已经执行并返回成功
自身定制时间未到
实例状态说明:运行成功 、未运行 、运行失败 、正在运行 、等待 、冻结
数据管理模块可进行组织内全局数据视图的查看、分权管理、元数据信息详情、数据生命周期管理、数据表/资源/函数权限管理审批等操作。

4. AnalyticDB
是阿里巴巴自主研发的海量数据实时高并发在线分析(Realtime OLAP)云计算服务,可以在毫秒级针对千亿级数据进行即时的多维分析透视和业务探索。
特点:1. 分档的存储 2. 自由的查询 3. 智能的优化 4. 方便的接口(MySQL协议) 5. 分层的安全(数据库/表组/表/列) 6. 弹性多租户
MPP(大规模并行处理)
数据类型:boolean、tinyint、smallint、int、bigint、float、double、varchar、date、timestamp(只支持精确到毫秒)、multivalue(特有)

多值列multivalue:
        可以存入String类型的多个值,分隔符默认为半角逗号,也可以创建表时进行配置
        可以使用in,contains条件对该列的单个值进行查询
        枚举查询后该列的每个值可像一个普通列一样进行各类操作,但是不允许在没有进行枚举查询时对该列直接select或在group by中使用该列
        适用场景:已有一个实体属性表均为普通列并以实体编号为主键的情况下,需要新增一个用于进行实体筛选的属性,而这个属性和实体编号为多对多的对应关系。
        例子:select userid from t where productid contains (‘A’,’B’)
        性能明显优于join

表组:是一系列可发生关联的表的集合,是一个逻辑概念。表组分为两类:普通表组和维度表组
分区是为了解决单表数据过大
默认索引即智能索引,会根据列的字段类型、取值状况来自动创建索引。
聚集列可以改变物理存储位置,实现快速查询

表组 维度表组 普通表组
创建方式 自动创建,数据库生成后即有一个自动创建的维度表组(表组名称为“数据库名_dimension”) 用户根据业务情况手动创建
表组数量 一个数据库中仅能存在一个维度表组 用户可以创建多个维度表组
存放内容 维度数据(数据量较小,可能会和任何表发生关联操作) 事实表数据,数据量比较大,关联操作较少
修改操作 不能修改表组名,不能删除,不能修改属性,只能在其中创建表。数据库被删除时方被删除。 可以手工删除,手工修改表组的配置参数

表组特点
表祖是数据物理分配的最小单元。分析型数据库由许多节点组成,数据是以表组为单位部署的。
同表组内的表才可以快速hash join。使用hash join,要保证要么是同表组中的表,要么是由维表参与,因为维表可以和所有的表进行关联,不受表组的限制。
同一个表组内的表共享一些配置,如超时时长、副本数,不建议修改
建议同表组中的表一级分区表一致
维表特点
维表必须放在维表组上,不用选表组
维表的大小有限制,表的数据量不能太大
维表不需要设置分区信息
维表可以和任何表进行关联,不受表组的限制
维表保存在每个节点上,同样大小的数据,维表会消耗掉更多存储资源
事实表特点
普通表选择表祖时需要考虑后续操作中要关联到的其他事实表。
普通表的数据量不受限制,但是必须至少设置一级(Hash)分区。
多张普通表关联时,必须有Hash Key(一级分区键)参加
普通表分为两类:离线批量更新表(Batch)和实时更新表(Realtime)
批量更新表如果需要增加加载数据,则必须设置为二级分区
批量更新表不支持指定主键
实时更新表可以直接insert/delete单条数据,适合业务系统直接写入
实时更新表不提供二级分区,因为天然支持增量
实时更新必须指定主键。
数据加载进表后,需要等待一定时间后才能看到
同一个表组中分区数一致,关联时效率会更高。
目标表不可以选实时更新表。
可以使用SQL语句模板,insert、select、delete、常见函数

QuickBI
支持海量数据在线分析,拖拽式操作、丰富的可视化效果,可以通过简单的操作完成数据分析、业务数据探查。
当上传本地文件到Quick BI中展现时,数据被保存到了Quick BI自带的探索空间。

DataV
是一款阿里云提供的数据可视化在线工具。通过拖拽式的操作,使用数据连接、可视化组件库、行业设计模板库、多终端适配与发布运维等功能,让非专业人员也可以快速的将数据的价值通过视觉进行传达。
DataV制作的可视化大屏,根据受众与应用场景不同,分成展示类、分析类、监控类等三类。
DataV制作的大屏通过发布后的url可以把作品嵌入到企业已有的门户中去。
QuickBI与DavaV的关系
QuickBI通过自助服务可以让几万的阿里小二自己来做数据分析。
DavaV通过标准模版可以让技术人员用很少的工作量就可以做出有冲击力展示大屏。

机器学习
有监督学习算法:分类(贝叶斯、决策树、神经网络、KNN、RandomForest(基本单元是决策树))、回归
无监督学习算法:聚类(层次聚类、划分聚类(K-Means)、基于密度的聚类(DBSCAN))
PAI基于MaxCompute

发布了94 篇原创文章 · 获赞 110 · 访问量 5028

猜你喜欢

转载自blog.csdn.net/beautiful_huang/article/details/104185127
今日推荐