logo资料库

MaxCompute用户指南.pdf

第1页 / 共486页
第2页 / 共486页
第3页 / 共486页
第4页 / 共486页
第5页 / 共486页
第6页 / 共486页
第7页 / 共486页
第8页 / 共486页
资料共486页,剩余部分请下载后查看
用户指南
常用命令
常用命令概述
项目空间操作
进入项目空间
表操作
Create Table
Drop Table
Describe Table
查看分区信息
Show Tables/Show Tables like
Show Partitions
实例操作
Show Instances/Show P
Status Instance
TOP INSTANCE
Kill Instance
Desc Instance
Wait Instance
资源操作
添加资源
删除资源
查看资源列表
下载资源
函数操作
注册函数
注销函数
查看函数清单
其他操作
ALIAS 命令
Set
Show Flags
SetProject
计量预估(Cost SQL 命令)
数据上传下载
数据上传/下载概述
数据上云场景
Hadoop 数据迁移
数据库数据同步
日志采集
工具介绍
阿里云数加产品
大数据开发套件之数据集成
MaxCompute 客户端
DTS
开源产品
Sqoop
Kettle
Flume
Fluentd
LogStash
OGG
Tunnel命令操作
功能简介
Tunnel 命令使用说明
Upload
Show
Resume
Download
Purge
通过数据集成导入/导出
前置条件
添加 MaxCompute 数据源
操作步骤
通过数据集成导入数据
向导模式配置同步任务
运行同步任务
直接运行同步任务
脚本模式配置同步任务
通过数据集成导出数据
新建向导模式同步任务
提交数据同步任务
直接运行同步任务
脚本模式配置同步任务
参考文档
批量数据通道SDK介绍
批量数据通道概要
TableTunnel
UploadSession
DownloadSession
TunnelBufferedWriter
批量数据通道SDK示例
示例概述
简单上传示例
简单下载示例
多线程上传示例
多线程下载示例
BufferedWriter多线程上传示例
BufferedWriter上传示例
DataHub实时数据通道
数据通道服务连接
SQL
SQL概述
关键字
类型转换说明
分区表
UNION ALL
运算符
关系操作符
算术操作符
位操作符
逻辑操作符
类型转换
显式类型转换
隐式类型转换及其作用域
关系运算符作用下的隐式转换
特殊的关系运算符作用下的隐式转换
算术运算符作用下的隐式转换
逻辑运算符作用下的隐式转换
内建函数涉及到隐式转换
CASE WHEN 作用下的隐式转换
String 与 Datetime 类型之间的转换
DDL语句
表操作
创建表
查看表信息
删除表
重命名表
修改表的注释
修改表的生命周期属性
修改表的修改时间
清空非分区表里的数据
视图操作
创建视图
删除视图
重命名视图
分区/列操作
添加分区
删除分区
添加列
修改列名
修改列、分区注释
同时修改列名及列注释
修改表、分区的修改时间
修改分区值
INSERT操作
更新表中的数据(INSERT OVERWRITE/INTO)
多路输出(MULTI INSERT)
输出到动态分区(DYNAMIC PARTITION)
VALUES
SELECT操作
Select 语法介绍
Select 语序
子查询
子查询基本定义
IN SUBQUERY / NOT IN SUBQUERY
EXISTS SUBQUERY/NOT EXISTS SUBQUERY
UNION ALL / UNION [DISTINCT]
JOIN 操作
SEMI JOIN
LEFT SEMI JOIN
LEFT ANTI JOIN
MAPJOIN HINT
HAVING 子句
Explain
Common Table Expression(CTE)
SQL限制项汇总
内建函数
日期函数
DATEADD
DATEDIFF
DATEPART
DATETRUNC
FROM_UNIXTIME
GETDATE
ISDATE
LASTDAY
TO_DATE
TO_CHAR
UNIX_TIMESTAMP
WEEKDAY
WEEKOFYEAR
新扩展的日期函数
YEAR
QUARTER
MONTH
DAY
DAYOFMONTH
HOUR
MINUTE
SECOND
CURRENT_TIMESTAMP
ADD_MONTHS
LAST_DAY
NEXT_DAY
MONTHS_BETWEEN
数学函数
ABS
ACOS
ASIN
ATAN
CEIL
CONV
COS
COSH
COT
EXP
FLOOR
LN
LOG
POW
RAND
ROUND
SIN
SINH
SQRT
TAN
TANH
TRUNC
新扩展数学函数
LOG2
LOG10
BIN
HEX
UNHEX
RADIANS
DEGREES
SIGN
E
PI
FACTORIAL
CBRT
SHIFTLEFT
SHIFTRIGHT
SHIFTRIGHTUNSIGNED
窗口函数
COUNT
AVG
MAX
MIN
MEDIAN
STDDEV
STDDEV_SAMP
SUM
DENSE_RANK
RANK
LAG
LEAD
PERCENT_RANK
ROW_NUMBER
CLUSTER_SAMPLE
字符串函数
CHAR_MATCHCOUNT
CHR
CONCAT
GET_JSON_OBJECT
INSTR
IS_ENCODING
KEYVALUE
LENGTH
LENGTHB
MD5
REGEXP_EXTRACT
REGEXP_INSTR
REGEXP_REPLACE
REGEXP_SUBSTR
REGEXP_COUNT
SPLIT_PART
SUBSTR
SUBSTRING
TOLOWER
TOUPPER
TO_CHAR
TRIM
LTRIM
RTRIM
REVERSE
SPACE
REPEAT
ASCII
CONCAT_WS
LPAD
RPAD
REPLACE
SOUNDEX
SUBSTRING_INDEX
聚合函数
COUNT
AVG
MAX
MIN
MEDIAN
STDDEV
STDDEV_SAMP
SUM
WM_CONCAT
COLLECT_LIST
COLLECT_SET
其他函数
CAST
COALESCE
DECODE
GET_IDCARD_AGE
GET_IDCARD_BIRTHDAY
GET_IDCARD_SEX
GREATEST
ORDINAL
LEAST
MAX_PT
UUID
SAMPLE
CASE WHEN 表达式
IF
MaxCompute2.0 扩展支持的其他函数类型
SPLIT
EXPLODE
MAP
MAP_KEYS
MAP_VALUES
ARRAY
SIZE
ARRAY_CONTAINS
SORT_ARRAY
POSEXPLODE
STRUCT
NAMED_STRUCT
INLINE
TRANS_ARRAY
UDF
UDF概述
UDF 示例
Java UDF
参数与返回值类型
UDF
UDAF
UDTF
使用说明
其他 UDTF 示例
复杂数据类型示例
hive udf兼容示例
附录
转义字符
LIKE字符匹配
正则表达式规范
保留字
与Hive数据类型映射表
与其他SQL语法的差异
MaxCompute 不支持的 DDL 语法
MaxCompute 不支持的 DML 语法
MapReduce
概要
MapReduce概述
应用场景
处理流程
扩展MapReduce
开源兼容MapReduce
下载 HadoopMR 插件
准备 Jar 包
准备测试数据
准备好表与 HDFS 文件路径的映射关系配置
作业提交
功能介绍
作业提交
基本概念
Map/Reduce
排序
哈希
归并
输入与输出
资源使用
本地运行
基本阶段介绍
本地运行和分布式环境运行差异
本地运行示例
Java沙箱
示例程序
WordCount示例
测试准备
测试步骤
预期结果
代码示例
MapOnly示例
测试准备
测试步骤
预期结果
代码示例
多路输入输出示例
测试准备
测试步骤
预期结果
代码示例
多任务示例
测试准备
测试步骤
预期结果
代码示例
二次排序示例
测试准备
测试步骤
预期结果
代码示例
使用资源示例
测试准备
测试步骤
预期结果
代码示例
使用Counter示例
测试准备
测试步骤
预期结果
代码示例
Grep示例
测试准备
测试步骤
预期结果
代码示例
Join示例
测试准备
测试步骤
预期结果
代码示例
Sleep示例
测试准备
测试步骤
预期结果
代码示例
Unique示例
测试准备
测试步骤
预期结果
代码示例
Sort示例
测试准备
测试步骤
预期结果
代码示例
分区表输入示例
Pipeline示例
测试准备
测试步骤
预期结果
代码示例
Java SDK
原生SDK概述
MapperBase
ReducerBase
TaskContext
JobConf
JobClient
RunningJob
InputUtils
OutputUtils
Pipeline
数据类型
兼容版本SDK概述
MR限制项汇总
图模型
图模型概述
Graph 数据结构
Graph 程序逻辑
图加载
迭代计算:
迭代终止
功能概述
运行作业
输入及输出
读取资源
Graph 程序中添加资源
Graph 程序中使用资源
SDK概述
开发和调试
开发示例
操作步骤
本地调试
操作步骤
本地作业临时目录
集群调试
操作步骤
性能调优
作业参数配置
运用 Combiner
减少数据输入量
内置 Jar 包
应用限制
示例程序
单源最短距离
代码示例
PageRank
代码示例
K-均值聚类
代码示例
BiPartiteMatchiing
代码示例
强连通分量
代码示例
连通分量
代码示例
拓扑排序
代码示例
线性回归
代码示例
三角形计数
代码示例
输入点表
输入边表
Aggregator机制概述
Aggregator 机制
Aggregator 的 API
Kmeans Clustering 示例
总结
附件
SDK
Java SDK
AliyunAccount
MaxCompute
Projects
Project
SQLTask
Instances
Instance
Tables
Table
Resources
Resource
Functions
Function
Python SDK
安装
快速开始
项目空间
表操作
创建表的Schema
创建表
获取表数据
写入数据
删除表
表分区
基本操作
创建分区
删除分区
SQL
执行SQL
读取SQL执行结果
Resource
文件资源
创建文件资源
读取和修改文件资源
表资源
创建表资源
更新表资源
DataFrame
Configuration
配置选项
通用配置
数据上传/下载配置
DataFrame配置
PyODPS ML配置
处理非结构化数据
前言
访问 OSS 非结构化数据
STS模式授予权限
内置extractor访问 OSS 数据
创建外部表
查询外部表
自定义 Extractor 访问 OSS
定义 Extractor
定义 StorageHandler
编译打包
创建 External 表
查询外部表
自定义 Extractor 访问非文本文件数据
数据的分区
分区数据在OSS上的标准组织方式和路径格式
分区数据在OSS上的自定义路径
输出到OSS的非结构化数据
通过内置StorageHandler输出到OSS
创建EXTERNAL TABLE
通过对External Table的 INSERT 操作实现数据输出到OSS
通过自定义StorageHandler 输出到OSS
定义Outputer
定义Extractor
定义StorageHandler
编译打包
创建external表
通过对External Table的 INSERT 操作实现数据输出到OSS
访问OTS非结构化数据
STS模式授权
创建外部表
查询外部表
MaxCompute 导出数据到 Table Store
Job运行信息查看
Logview
Logview 功能组件
Instance 信息
Task 信息
通过 Logview 进行问题排查
出错的任务
数据倾斜
巧用MaxCompute编译器的错误和警告
编译器的易用性改进
安全指南
目标用户
用户认证
申请云账号
申请 AccessKey
使用云账号登录 MaxCompute
用户管理
添加用户
添加 RAM 子账号
用户授权
给 RAM 子账号授权
删除用户
删除 RAM 子账号
角色管理
创建角色
添加用户到角色
给角色授权
删除角色中的用户
删除角色
授权
查看权限
查看指定用户的权限
查看指定角色的权限
查看指定对象的授权列表
项目空间的安全配置
项目空间的数据保护
背景和动机
数据保护机制
开启数据保护机制后的数据流出方法
设置TrustedProject
资源分享与数据保护
关于最佳实践:
安全相关语句汇总
项目空间的安全配置
鉴权配置
数据保护
项目空间的权限管理
用户管理
角色管理
ACL授权
权限审查
基于Package的资源分享
分享资源
使用资源
查看Package
跨项目空间的资源分享
基于Package的跨项目空间的资源分享
Package的使用方法
Package创建者
创建Package
将分享的资源添加到Package
许可其他项目空间使用Package
撤销其他项目空间使用Package的许可
删除Package
查看已创建和已安装的Package列表
查看Package详细信息
Package使用者
安装Package
卸载Package
查看Package
使用方项目给本项目其他成员授权访问Package
场景示例
列级别访问控制
数据的敏感等级分类
LabelSecurity默认安全策略
LabelSecurity操作
LabelSecurity机制的开/关
给user设置安全许可标签
给数据设置敏感等级标签
显式授权低级别用户访问特定的高敏感级数据表
查看一个用户能访问哪些敏感数据集
查看一个敏感数据表能被哪些用户访问
查看一个用户对一个数据表的所有列级别的Label权限
查看一个表中所有列的敏感等级
控制package安装者对package中敏感资源的许可访问级别
LabelSecurity应用场景示例
限制项目空间中所有非Admin用户对一张表的某些敏感的列的读访问
限制项目空间中已获得敏感数据访问许可的用户在项目空间内对敏感数据的复制与肆意传播
MaxCompute 管家
MaxCompute 用户指南
MaxCompute 用户指南 用户指南 常用命令 常用命令概述 最新的 MaxCompute 服务对常用命令做了调整,新的命令风格更贴近于 Hive 的使用方式,方便原有的 Hadoop/Hive 用户。 MaxCompute 提供了对项目空间、表、资源及实例等对象的一系列操作。您可以通过客户端命令及 SDK 来操 作这些对象。 本模块将详细介绍如何通过客户端使用相关命令,以帮助您快速了解 MaxCompute。 注意: 本模块介绍的常用命令,主要针对新版 console。 如果想了解如何安装、配置客户端,请参见 快速开始。 对于 SDK 的更多介绍,请参见 MaxCompute SDK 介绍。 - 项目空间操作 进入项目空间 命令格式如下: 1
MaxCompute 用户指南 use ; 行为说明如下: 进入指定的项目空间。进入该空间后可以直接操作该项目空间下的所有对象。 项目空间不存在或当前用户不在此项目空间中,则异常返回。 示例如下: odps@ my_project>use my_project; --my_project是用户有权限访问的一个project 注意: 以上示例在客户端中运行。所有的 MaxCompute 命令关键字、项目空间名、表名、列名大小写不敏感。 成功运行命令后,您即可直接访问该项目空间下的对象。例如:假设 my_project 项目空间下有表 test_src,您运行如下命令: odps @ my_project>select * from test_src; MaxCompute 便会自动搜索项目空间 my_project 下的表。如果存在此表,返回表中的数据,如果此表不存在 ,则报异常退出。如果您在 my_project 下想要访问另一项目空间 my_project2 下的表 test_src,则需要指定 项目空间名,如下所示: odps @ my_project>select * from my_project2.test_src; 此时返回 my_project2 项目空间下的数据结果,而不是 my_project 下的 test_src 表数据。 MaxCompute 没有提供创建及删除项目空间的命令。您可以通过管理控制台对各自的项目空间完成更多的配 置及操作,详情请参见 项目管理。 表操作 您如果想对表进行操作,既可以通过客户端使用常用命令进行操作,也可以通过大数据开发套件中可视化的数 据表管理方便地对表进行收藏、申请权限、查看分区信息等操作,详情请参见 表详情页介绍。 本文将为您介绍如何通过客户端使用常用命令进行表操作。 2
MaxCompute 用户指南 Create Table 命令格式如下: 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 行为说明如下: 创建一张表。 注意: 表名与列名均对大小写不敏感。 表名,列名中不能有特殊字符,只能用英文的 a-z,A-Z 及数字和下划线‘_’,且以字母开头 ,名称的长度不超过 128 字节,否则报错。 注释内容是长度不超过 1024 字节的有效字符串,否则报错。 对于该命令更详细的介绍请参见 创建表(CREATE TABLE)。 [LIFECYCLE days] days 参数为生命周期时间,只接受正整数。单位:天。 非分区表:自最后一次数据被修改开始计算,经过 days 天后数据仍未被改动,则此表无需您干 预,将会被 MaxCompute 自动回收(类似 drop table 操作)。 分区表:根据各分区的 LastDataModifiedTime 判断该分区是否该被回收。不同于非分区表 ,分区表的最后一个分区被回收后,该表不会被删除。生命周期只能设定到表级别,不能在分区 级设置生命周期。 示例如下: CREATE TABLE IF NOT EXISTS sale_detail( shop_name STRING, 3
MaxCompute 用户指南 customer_id STRING, total_price DOUBLE) PARTITIONED BY (sale_date STRING,region STRING); --如果没有同名表存在,创建一张分区表 sale_detail 。 Drop Table 命令格式如下: DROP TABLE [IF EXISTS] table_name; -- table_name:要删除的表名。 行为说明如下: 删除一张表。 如果不指定 IF EXISTS 选项而表不存在,则返回异常;若指定此选项,无论表是否存在,皆返回成功 。 示例如下: DROP TABLE sale_detail; -- 若表存在,成功返回; DROP TABLE IF EXISTS sale_detail; -- 无论是否存在sale_detail表,均成功返回; Describe Table 命令格式如下: DESC ; -- table_name:表名或视图名称 DESC extended ;--查看外部表信息 行为说明如下: 返回指定表的信息,具体返回包括以下信息: Owner(表的属主)。 Project:表所属的项目空间。 CreateTime:创建时间。 LastDDLTime:最后一次 DDL 操作时间。 4
MaxCompute 用户指南 LastModifiedTime:表中的数据最后一次被改动的时间。 InternalTable:表示被描述的对象是表,总是显示 YES。 Size:表数据所占存储容量压缩后的大小,压缩比一般为 5 倍,单位 Byte。 Native Columns:非分区列的信息,包括:列名,类型,备注。 Partition Columns:分区列信息,包括:分区名,类型,备注。 Extended Info: 外部表StorageHandler 、Location 等信息。 示例如下: odps@ project_name>DESC sale_detail; -- 描述一张分区表 +------------------------------------------------------------------------------------+ | Owner: ALIYUN$odpsuser@aliyun.com | Project: test_project | | TableComment: | +------------------------------------------------------------------------------------+ | CreateTime: 2014-01-01 17:32:13 | | LastDDLTime: 2014-01-01 17:57:38 | | LastModifiedTime: 1970-01-01 08:00:00 | +------------------------------------------------------------------------------------+ | InternalTable: YES | Size: 0 | +------------------------------------------------------------------------------------+ | Native Columns: | +------------------------------------------------------------------------------------+ | Field | Type | Comment | +------------------------------------------------------------------------------------+ | shop_name | string | | | customer_id | string | | | total_price | double | | +------------------------------------------------------------------------------------+ | Partition Columns: | +------------------------------------------------------------------------------------+ | sale_date | string | | | region | string | | +------------------------------------------------------------------------------------+ 注意: 上述示例中的命令在客户端中运行。 如果是非分区的表,将不会显示 Partition Columns 的相关信息。 5
MaxCompute 用户指南 如果描述的是一个视图(View),将不显示 InternalTable 选项,而是 VirtualView 选项,其值 总是为 YES。与此类似地,Size 选项将会被 ViewText 选项替代,表示 View 的定义,例如 :select * from src。关于视图的介绍请参见 创建视图。 查看分区信息 命令格式如下: desc table_name partition(pt_spec) 行为说明如下: 查看某个分区表具体的分区信息。 示例如下: odps@ project_name>desc meta.m_security_users partition (ds='20151010'); +------------------------------------------------------------------------------------+ | PartitionSize: 2109112 | +------------------------------------------------------------------------------------+ | CreateTime: 2015-10-10 08:48:48 | | LastDDLTime: 2015-10-10 08:48:48 | | LastModifiedTime: 2015-10-11 01:33:35 | +------------------------------------------------------------------------------------+ OK Show Tables/Show Tables like 命令格式如下: SHOW TABLES; SHOW TABLES like 'chart'; 行为说明如下: - - SHOW TABLES:列出当前项目空间下所有的表。 SHOW TABLES like ‘chart’:列出当前项目空间下表名与‘chart’匹配上的表,支持正则表达式。 示例如下: odps@ project_name>show tables; odps@ project_name>show tables like 'ods_brand*'; 6
MaxCompute 用户指南 ALIYUN$odps_user@aliyun.com:table_name ...... 注意: 上述示例中的命令在客户端中运行。 ALIYUN 是系统提示符,表示您是阿里云用户。 odps_user@aliyun.com 是用户名,表示该表的创建者。 table_name 是表名。 Show Partitions 命令格式如下: SHOW PARTITIONS ; --table_name:指定查询的表名称(表不存在或非分区表报错) 行为说明如下: 列出一张表中的所有分区。 示例如下: odps@ project_name>SHOW PARTITIONS table_name; partition_col1=col1_value1/partition_col2=col2_value1 partition_col1=col1_value2/partition_col2=col2_value2 … 注意: 上述示例的命令在客户端运行。 partition_col1 和 partition_col2 表示该表的分区列。 col1_value1,col2_value1,col1_value2,col2_value2 表示分区列对应的值。 7
分享到:
收藏