logo资料库

maxcompute 快速入门.pdf

第1页 / 共34页
第2页 / 共34页
第3页 / 共34页
第4页 / 共34页
第5页 / 共34页
第6页 / 共34页
第7页 / 共34页
第8页 / 共34页
资料共34页,剩余部分请下载后查看
目录
法律声明
通用约定
1 创建/查看/删除表
2 导入数据
3 运行​SQL​
4 编写​MapReduce​
5 ​JAVA​ ​UDF​开发
6 编写​Graph​
阿里云 MaxCompute 快速入门 文档版本:20181109
MaxCompute 法律声明 快速入门 / 法律声明 阿里云提醒您在阅读或使用本文档之前仔细阅读、充分理解本法律声明各条款的内容。如果您阅读 或使用本文档,您的阅读或使用行为将被视为对本声明全部内容的认可。 1. 您应当通过阿里云网站或阿里云提供的其他授权通道下载、获取本文档,且仅能用于自身的合法 合规的业务活动。本文档的内容视为阿里云的保密信息,您应当严格遵守保密义务;未经阿里云 事先书面同意,您不得向任何第三方披露本手册内容或提供给任何第三方使用。 2. 未经阿里云事先书面许可,任何单位、公司或个人不得擅自摘抄、翻译、复制本文档内容的部分 或全部,不得以任何方式或途径进行传播和宣传。 3. 由于产品版本升级、调整或其他原因,本文档内容有可能变更。阿里云保留在没有任何通知或者 提示下对本文档的内容进行修改的权利,并在阿里云授权通道中不时发布更新后的用户文档。您 应当实时关注用户文档的版本变更并通过阿里云授权渠道下载、获取最新版的用户文档。 4. 本文档仅作为用户使用阿里云产品及服务的参考性指引,阿里云以产品及服务的”现状“、“有缺 陷”和“当前功能”的状态提供本文档。阿里云在现有技术的基础上尽最大努力提供相应的介绍及 操作指引,但阿里云在此明确声明对本文档内容的准确性、完整性、适用性、可靠性等不作任何 明示或暗示的保证。任何单位、公司或个人因为下载、使用或信赖本文档而发生任何差错或经济 损失的,阿里云不承担任何法律责任。在任何情况下,阿里云均不对任何间接性、后果性、惩戒 性、偶然性、特殊性或刑罚性的损害,包括用户使用或信赖本文档而遭受的利润损失,承担责 任(即使阿里云已被告知该等损失的可能性)。 5. 阿里云网站上所有内容,包括但不限于著作、产品、图片、档案、资讯、资料、网站架构、网站 画面的安排、网页设计,均由阿里云和/或其关联公司依法拥有其知识产权,包括但不限于商标 权、专利权、著作权、商业秘密等。非经阿里云和/或其关联公司书面同意,任何人不得擅自使 用、修改、复制、公开传播、改变、散布、发行或公开发表阿里云网站、产品程序或内容。此 外,未经阿里云事先书面同意,任何人不得为了任何营销、广告、促销或其他目的使用、公布或 复制阿里云的名称(包括但不限于单独为或以组合形式包含”阿里云”、Aliyun”、“万网”等阿里云 和/或其关联公司品牌,上述品牌的附属标志及图案或任何类似公司名称、商号、商标、产品或 服务名称、域名、图案标示、标志、标识或通过特定描述使第三方能够识别阿里云和/或其关联 公司)。 6. 如若发现本文档存在任何错误,请与阿里云取得直接联系。 文档版本:20181109 I
MaxCompute 通用约定 格式 说明 样例 快速入门 / 通用约定 该类警示信息将导致系统重大变更甚至 故障,或者导致人身伤害等结果。 该类警示信息可能导致系统重大变更甚 至故障,或者导致人身伤害等结果。 用于补充说明、最佳实践、窍门等,不 是用户必须了解的内容。 禁止: 重置操作将丢失用户配置数据。 警告: 重启操作将导致业务中断,恢复业务所需 时间约10分钟。 说明: 您也可以通过按Ctrl + A选中全部文件。 设置 > 网络 > 设置网络类型 执行 cd /d C:/windows 命令,进 入Windows系统文件夹。 bae log list --instanceid Instance_ID > 粗体 courier 字体 斜体 多级菜单递进。 表示按键、菜单、页面名称等UI元素。 单击 确定。 命令。 表示参数、变量。 []或者[a|b] 表示可选项,至多选择一个。 {}或者{a|b} 表示必选项,至多选择一个。 ipconfig [-all|-t] swich {stand | slave} 文档版本:20181109 I
MaxCompute 目录 快速入门 / 目录 法律声明......................................................................................................I 通用约定......................................................................................................I 1 创建/查看/删除表.....................................................................................1 2 导入数据................................................................................................. 6 3 运行SQL............................................................................................... 15 4 编写MapReduce.................................................................................. 21 5 JAVA UDF开发.................................................................................... 23 6 编写Graph............................................................................................ 29 II 文档版本:20181109
MaxCompute 1 创建/查看/删除表 快速入门 / 1 创建/查看/删除表 当您被添加到项目空间并被赋予建表等权限后,即可操作MaxCompute。由于在MaxCompute中的 操作对象(输入、输出)都是表,所以在处理数据之前,首先要创建表、分区。 创建/删除表的方式有以下几种: • 通过MaxCompute Studio实现,详情请参见可视化创建/修改/删除表。 • 通过DataWorks实现,详情请参见创建表和删除表。 • 通过客户端常用命令实现。 本文将为您介绍如何通过客户端常用命令进行创建表、查看表和删除表的操作,客户端的安装请参 见安装并配置客户端。 创建表 建表语句如下所示: CREATE TABLE [IF NOT EXISTS] table_name [(col_name data_type [COMMENT col_comment], ...)] [COMMENT table_comment] [PARTITIONED BY (col_name data_type [COMMENT col_comment], ...)] [LIFECYCLE days] [AS select_statement] CREATE TABLE [IF NOT EXISTS] table_name LIKE existing_table_name 建表语句说明: • 表名与列名均对大小写不敏感。 • 在创建表时,如果不指定if not exists选项而存在同名表,则返回出错;若指定此选项,则无论是 否存在同名表,即使原表结构与要创建的目标表结构不一致,均返回成功。已存在的同名表的元 信息不会被改动。 • 数据类型:包括Bigint、Double、Boolean、Datetime、Decimal和String等多种数据类型。 • 表名,列名中不能有特殊字符,只能用英文的a-z,A-Z及数字和下划线 _,且以字母开头,名称 的长度不超过128字节。 • Partitioned by:指定表的分区字段,目前仅支持String类型,其他类型行为未定义。分区值不 可以有双字节字符(如中文),必须是以英文字母a-z,A-Z开始后可跟字母数字,名称的长度 不超过128字节。允许的字符包括空格、冒号(:)、下划线(_)、美元符($)、井号(#)、 点(.)、感叹号(!)和(@),出现其他字符行为未定义。例如(\t),(\n),(/)等 。当 文档版本:20181109 1
MaxCompute 快速入门 / 1 创建/查看/删除表 利用分区字段对表进行分区时,新增分区、更新分区内数据和读取分区数据均不需要做全表扫 描,可以提高处理效率。 • 注释内容是长度不超过1024字节的有效字符串。 • lifecycle指明此表的生命周期,单位:天。create table like语句不会复制源表的生命周期 属性。 • 目前,在表中建的分区层次不能超过6级。一个表允许的分区个数支持按照具体的project配 置,默认60,000个。 说明: • 创建表的详细介绍请参见表操作。 • 添加分区请参见分区/列操作。 • 生命周期的修改请参见修改表的生命周期属性。 创建表示例如下: create table test1 (key string); -- 创建非分区表,表名 test1,字段名 key ,数据类型 string。 create table test2 (key bigint) partitioned by (pt string, ds string); --创建分区表 create table test3 (key boolean) partitioned by (pt string, ds string ) lifecycle 100; -- 创建带有生命周期的表 create table test4 like test3; -- 除生命周期属性外,test3 的其他属性(字段类 型,分区类型等)均与 test4 完全一致 create table test5 as select * from test2; -- 这个操作会创建 test5,但分 区,生命周期信息不会被拷贝到目标表中。 -- 此操作仅会将 test2 的数据复制到 test5 中(如果 test2 有数据的话,此示例中 test2 为空表,后续章节会介绍数据导入)。 创建表的场景如下: 假设需要创建一张用户表user,包括如下信息: • user_id bigint类型:用户标识,唯一标识一个用户。 • gender bigint类型:性别(0,未知;1,男;2,女)。 • age bigint:用户年龄。 按照Region(区域)和dt(日期)进行分区,生命周期为365天。 建表语句如下所示: CREATE TABLE user 2 文档版本:20181109
MaxCompute 快速入门 / 1 创建/查看/删除表 ( user_id BIGINT, gender BIGINT COMMENT '0 unknow,1 male, 2 Female', age BIGINT) PARTITIONED BY (region string, dt string) LIFECYCLE 365; 创建分区 当创建一张分区表之后,为了往该表里面导入不同分区数据,您需要创建分区。命令如下: alter table table_name add [if not exists] partition partition_spec partition_spec: : (partition_col1 = partition_col_value1, partition_col2 = partiton_c ol_value2, ...) 如上述示例,给用户表user添加区域为hangzhou,日期为20150923的分区,句子显示如下: alter table user add if not exists partition(region='hangzhou',dt=' 20150923'); 查看表信息 当创建表成功之后,您可以通过desc ;命令查看表的信息。 您可执行命令desc test3;查看上述示例中表test3的信息。 结果显示如下: odps@ $odps_project>desc test3; +------------------------------------------------------------------------------------ + | Owner: ALIYUN$maojing.mj@alibaba-inc.com | Project: $odps_project | TableComment: | +------------------------------------------------------------------------------------ + | CreateTime: 2015-09-18 12:26:57 | | LastDDLTime: 2015-09-18 12:26:57 | | LastModifiedTime: 2015-09-18 12:26:57 | | Lifecycle: 100 | +------------------------------------------------------------------------------------ + | InternalTable: YES | Size: 0 | +------------------------------------------------------------------------------------ + | Native Columns: | +------------------------------------------------------------------------------------ + | Field | Type | Label | Comment | +------------------------------------------------------------------------------------ + | key | boolean | | | +------------------------------------------------------------------------------------ + | Partition Columns: | +------------------------------------------------------------------------------------ + | pt | string | | | ds | string | | 文档版本:20181109 3
MaxCompute 快速入门 / 1 创建/查看/删除表 +------------------------------------------------------------------------------------ + 您可执行命令desc test4;查看上述示例中表test4的信息。 odps@ $odps_project>desc test4; +------------------------------------------------------------------------------------ + | Owner: ALIYUN$maojing.mj@alibaba-inc.com | Project: $odps_project | TableComment: | +------------------------------------------------------------------------------------ + | CreateTime: 2015-09-18 12:27:09 | | LastDDLTime: 2015-09-18 12:27:09 | | LastModifiedTime: 2015-09-18 12:27:09 | +------------------------------------------------------------------------------------ + | InternalTable: YES | Size: 0 | +------------------------------------------------------------------------------------ + | Native Columns: | +------------------------------------------------------------------------------------ + | Field | Type | Label | Comment | +------------------------------------------------------------------------------------ + | key | boolean | | | +------------------------------------------------------------------------------------ + | Partition Columns: | +------------------------------------------------------------------------------------ + | pt | string | | | ds | string | | +------------------------------------------------------------------------------------ + 您会发现,除生命周期属性外,test3的其他属性(字段类型、分区类型等)均与test4完全一致。查 看表信息的更多详情请参见表操作。 您如果查看test5的表信息,pt、ds两个字段仅会作为普通列存在,而不是表的分区 。 删除分区 删除分区的命令如下所示: alter table table_name drop [if exists] partition_spec; partition_spec : 4 文档版本:20181109
分享到:
收藏