阿里云大数据专业认证学习笔记

所需积分/C币:15 2017-10-17 21:59:52 27.46MB PDF

阿里云大数据专业认证学习笔记 大数据计算服务考试内容讲解及笔记
用户可以通过 Use project命令进入一个项目空间,例如: use my__project--进入一个名为my_ project的项目空间 运行此命令后,用户会进入一个名为my_ project的项目空间,从而可以操作该项目 空间下的对象,例如:表( Table),资源( Resource),函数( Function),实例 nstance)等,而不需要关心操作对象所在的项目空间。 Use Project是ODPS客 户端提供的命令。 1.1.3、表的概念 表是 MaxCompute的数据存储单元。它在逻辑上也是由行和列组成的二维结构, 每行代表一条记录,每列表示相同数据类型的一个字段,一条记录可以包含一个或 多个列,各个列的名称和类型构成这张表的 Schema MaxCompute的表格分两种类型: 外部表及内部表。对于内部表,所有的数据都被存储在 MaxCompute中。表中的 列可以是 MaxCompute支持的任意种数据类型( Bigint, Double, String, Boolean, Datetime)。 Maxcompute中的各种不同类型计算任务的操作对象输 入、输出)都是表。用户可以创建表,删除表以及向表中导入数据。 对于外部表, MaxCompute并不真正持有数据,表格的数据可以存放在OSS中。 Maxcompute仅会记录表格的Meta信息。用户可以通过 Maxcompute的外部表 机制处理○SS上的非结构化数据,例如:视频、音频、基因、气象、地理信息等。 处理流程包括 1、将数据上传至OSS; 2、在RAM产品中授予 MaxCompute服务读取OSs数据权限;(RDS是不是也 可以通过RAM授予 MaxCompute服务读取权限?) 3、自定义 Extractor:用于读取OSS上的特殊格式数据。目前, MaxCompute默 认提供CS∨格式的 Extractor,并提供视频格式数据读取的代码样例 4、创建外部表 5、执行SQL作业分析数据; 注意 目前 Maxcompute仅支持读取外部表数据,即读取OSs数据,不支持向外部表写入 数据; 114、分区的概念 分区表指的是在创建表时指定分区空间,即指定表内的某几个字段作为分区列。在 大多数情况下,用户可以将分区类比为文件系统下的目录。 MaxCompute将分区 列的每个值作为一个分区(目录)。用户可以指定多级分区,即将表的多个字段作为表 的分区,分区之间正如多级目录的关系。在使用数据时如果指定了需要访问的分区 名称,则只会读取相应的分区,避免全表扫描,提高处理效率,降低费用。 create table src (key string, value bigint) partitioned by(pt string); 目前, MaxCompute仅承诺 string类型分区 select* from src where pt='20151201’;-正确使用方式。 MaxCompute在 生成查询计划时只会将'26151281'分区的数据纳入输入中 select* from src where pt=20151201;--错误的使用方式。在这样的使 用方式下, MaxCompute并不能休障分区过滤机制的有效性。pt是 string类型, 当 string类型与 Bigint(20151281)比较时, Maxcompute会将二者转换为 Double 类型,此时有可能会有精度损失。 分区( Partition)是指一张表下,根据分区字段(一个或多个)对数据存储进行划 分。在ODPS中支持分区表,通过分区的方式把一张表的数据在存储上分为各个独 立的部分,在读取表中数据时,如果指定了要读的分区( WHERE条件),则ODPS 加载必要分区的数据,而不是全表扫描,在数据量非常大的时候这一点比较重要 可以避免无谓的资源浪费。它也类似于 ORACLE和 MySQL等关系型数据库的分 区( Partition)。 我理解是:分区字段一般来说都是重复性非常强的字段,比如说时间,某一天可能 会产生几万条数据,把这一天产生的数据就存入到一个分区中,而时间(某天)就 是分区字段,时间(某天)所在的列就是分区列。也就是说,基于分区列的数据作 为一个纬度,进行了数据块的划分存储,加快查询速度。每一个分区块里面的数据 是完整性的,而不是分区列里的一列或者几列数据。在odps中最多支持六级分区。 也就是说 partition by里面可以有六个字段可以设置为分区列,而且是有顺序的。 比如说有两个分区列, sale date和 region,那么这个表可能存在多少个分区呢? 可能无数个分区分为几级呢,两级。第一级为销售时间,第二级为区域。 Create table sale_detail(shop_name string, customer_id string, total_price decimal) partition by(sale_date string, region string); Alter table sale_ _detail add partition(sale date= 201703 region =' hangzhou); 1.1.5、资源的概念 资源( Resource)是 MaxCompute的特有概念。用户如果想使用 MaxCompute 的自定义函数(UDF)或 MapReduce功能需要依赖资源来完成,例如: SQL UDF 用户在编写UDF后,需要将编译好的jar包以资源的形式上传到○DPS。运行这个 UDF时, MaxCompute会自动下载这个jar包,获取用户代码,运行∪DF,无需 用户干预。上传jar包的过程就是在 Maxcompute上创建资源的过程,这个jar 包是 MaxCompute资源的一种。 MapReduce:用户编写 MapReduce程序后,将编译好的jar包作为一种資源上传 到ODPS。运行 MapReduce作业时, MapReduce框架会自动下载这个jar资源 获取用户代码。用户同样可以将文本文件以及 MaxCompute中的表作为不同类型 的资源上传到 Maxcompute。用户可以在UDF及 MapReduce的运行过程中读取 使用这些资源。 MaxCompute提供了读取、使用资源的接口。详细示例请查看资 源使用示例及UDTF使用说明中的描述。需要注意的是,ODPS的自定义函数 ①UDF)或 MapReduce对资源的读取有一定的限制,请参考应用限制。 MaxCompute资源的类型包括 1、File类型; 2、 Table类型: MaxCompute中的表 3、Jar类型:编译好的 Java jar包; 4、 Archive类型:通过资源名称中的后缀识别压缩类型,支持的压缩文件类型包 fE: Zip/tgz/ tar.gz.tar/jar MaxCompute为用户提供了SQL计算功能,用户可以在 Max Compute SQL中 使用系统的内建函数完成一定的计算和计数功能。但当内建函数无法满足要求时 用户可以使用 MaxCompute提供的Java编程接口开发自定义函数 User defined Function,以下简称UDF)。自定义函数(UDF)又可以进一步分为标量值函数(UDF), 自定义聚合函数UDAF)和自定义表值函数(UDTF)三种。 用户在开发完成∪DF代码后,需要将代码编译成jar包,并将此jar包以jar资源的 形式上传到 MaxCompute,最后在 Maxcompute中注册此UDF。在使用∪DF 时,只需要在SQL中指明∪DF的函数名及输入参数即可,使用方式与 MaxCompute提供的内建函数相同。 1.1.6、数据类型 类型 描述 取值范围 Bigint8字节有符号整型。请不要使9223372036854775807 用整型的最小值 (9223372036854775808),9223372036854775807 这是系统保留值。 String字符串,支持UTF-8编码。其单个 String列最长允许 他编码的字符行为未定义。 8MB。 Boolean布尔型。 True/ False Double8字节双精度浮点数。 1.010308~1.010308 Datetime日期类型。使用东八区时间作0001-01-0100:00:00 为系统标准时间。 9999-12-31235959 Decimal Decima类型整数部分36位 有效数字小数部分保留18位 有效数字 1.17、任务的慨念 任务Task是 MaxCompute的基本计算单元。SQL及 MapReduce功能都是通过 任务(Task)完成的。 对于用户提交的大多数任务,特别是计算型任务,例如: SQL DML语句 MapReduce等, MaxCompute会对其进行解析,得出任务的执行计划。执行计划 是由具有依赖关系的多个执行阶段( Stage)构成的。目前,执行计划逻辑上可以被看 做一个有向图,图中的点是执行阶段,各个执行阶段的依赖关系是图的边。 Maxcompute会依照图执行计划)中的依赖关系执行各个阶段。在同一个执行阶段 内,会有多个进程,也称之为 Worker,共同完成该执行阶段的计算工作。同一个执 行阶段的不同 Worker只是处理的数据不同,执行逻辑完全相同。计算型任务在执 行时,会被实例化,用户可以操作这个实例( nstance)的信息,例如:获取实例状态 ( Status Instance),终止实例运行( Kill Instance)等。 另一方面,部分 MaxCompute任务并不是计算型的任务,例如:SQL中的DDL 语句,这些任务本质上仅需要读取、修改 MaxCompute中的元数据信息。因此, 这些任务无法被解析出执行计划。 Task, Job & Instance 黑豆 任务(Task):单个 SQL Query或者 MapReduce程序统 称为一个任务 工作流( Workflow):是个有向无环图(DAG),描述各个 Task之间的依赖关系和约束 作业(Job):由个或者多个Task以及表示其执行次序关系 的工作流( Workflow)组成。 作业是一个静态概念,作业对象对应了一个XML文件。 作业实例( Instance):当作业被提交到系统中执行时,该作业就会拥有一个作业实例。 个ob多次运行就会有多个实例。实例保存了执行时的快照( Snapshot)、返回状态等 1.18、服务连接 在公网条件下,不同 Region的用户均可以通过如下两个连接访问 MaxCompute service.ops. aliyun. com Max Compute服务连接地址; dt,odps.a1iyun. com Tunnel服务连接地址; 在经典网络及VPC环境下,不同 Region的用户可以通过如下连接访问服务 odps- ext aliyun-inc. com MaxCompute服务连接地址; dt-ext.nu16.odps.aliyun-inc.com在华北2区访问Tunnel的连接地址 d- ext. eu13.odps,a1iyun-inc,com在华东2区访问 Tunnel的连接地址 1.2、了解大数据计算服务的组成架构和各组成部分功能 1.,2.1、大数据计算服务组成架构 Maxcompute架构分为四层,分别是,客户端、接入层、逻辑层和计算层。整体的 架构图如下: ODPS客户端 /REST APISDK CLT IDE DPS客户端 云账号服务ODPS接入层 Http Server oDPS接入层 ODPs逻辑层 Worker Worker 3 SQL Scheduler oDPS逻辑层 OTS Executor Executor ODPS存储计算层 MR Job SQL Job oDPS计算层 Pangu Fuxi 1.2.2、大数据计算服务各部分功能 客户端】 REST请求 R Command ODPS CLT| dship管理控制台 STudio ODPS SDK ODPS RESTful APl ODPS ODPS以 RESTful aPi方式对外提供服务;用户可以通过不同的方式来使用ODPS 的服务直接通过 RESTfuL API请求访问、 ODPS SDK、○ DPS CLT( Command line Too)和Java集成开发环境(如 Eclipse)、管理控制台、R语言集成开发环境(如 STudio)。 用户可以基于自己熟悉的DE来开发。比如Java程序员可以在ε clipse上编程调用 ODPS SDK;统计分析人员可以在 STudio(R语言集成开发环境)中,通过R语 言实现在ODPS上的数据分析和计算。 接入层】 Lvs负载均衡 AccessIT 签名 Http Server AccessEd 签名 AccountID 云账号服务器 逻辑层 接入层 请求处理器 调度器 作业执行管理器 逻辑层组件 会照黑磊 Worker Scheduler Executor 请求处理器 调度器 作业执行管理器 逻辑层在设计的时候遵照了三权分立的原则,三者分别实现不同的逻辑 逻辑层: Worker ■处理所有 RESTfu请求 ■本地处理一些作业 ■提交分布式作业给调度器 Worke 本地能处理的作业: 请求处理器 用户空间、表、资源、任务等的管理 需要提交给调度器的作业 SQL、MR等分布式计算的任务 逻辑层: Scheduler 云 ■负责 Instance调度 ■查询计算集群的资源情况 Scheduler Instance调度处理 调度器 维护一个 Instance列表 把 Instance分解成Task 生成Task的工作流(DAG图) 把可运行的Task放到 Task Pod|中 定时对该优先级队列进行排序 10

...展开详情

评论 下载该资源后可以进行评论 1

sx3961 还行,值得学习一i下
2018-05-04
回复
img
Pushkin.

关注 私信 TA的资源

上传资源赚积分,得勋章
最新资源