跳到主要内容

阿里云 MaxCompute

MaxCompute 是阿里云上的企业级 SaaS(Software as a Service)模式云数据仓库。

什么是 MaxCompute

连接 MaxCompute

示例

-- 1. 创建Catalog。
CREATE CATALOG mc PROPERTIES (
"type" = "max_compute",
"mc.default.project" = "xxx",
"mc.access_key" = "xxxx",
"mc.secret_key" = "xxx",
"mc.endpoint" = "http://service.cn-beijing-vpc.MaxCompute.aliyun-inc.com/api"
);

-- 2. 切换到新创建的Catalog下。
SWITCH mc;

-- 下面的步骤就和使用Mysql一样了。

-- 3. 查看该Catalog下所有的数据库。
SHOW DATABASES;

-- 4. 使用数据库, 这里的xxx为第三步展示出来结果的任意一个数据库。
USE xxx;

-- 5. 查看该数据库下所有的表。
SHOW TABLES;

-- 6. 进行SQL查询。
select * from tb limit 10;

创建Catalog的基本属性

参数说明
type固定为 max_compute.
mc.default.project想要访问的 MaxCompute 项目名称。可以在 MaxCompute 项目列表 中创建和管理。
mc.access_keyAccessKey。可以在 阿里云控制台 中创建和管理。
mc.secret_keySecretKey。可以在 阿里云控制台 中创建和管理。
mc.endpointMaxCompute 开通的地域。请参照下文的如何获取Endpoint 和 Quota来配置。

创建Catalog的可选属性

参数默认值说明
mc.quotapay-as-you-goQuota名称。请参照下文的 如何获取Endpoint 和 Quota 来配置。
mc.split_strategybyte_size设置split的划分方式, 可设置为按照字节大小划分 byte_size 和按照数据行数划分 row_count
mc.split_byte_size268435456每个split读取的文件大小,单位为字节,默认为256MB,当且仅当 "mc.split_strategy" = "byte_size" 时生效
mc.split_row_count1048576每个split读多少行,当且仅当 "mc.split_strategy" = "row_count" 时生效

列类型映射

MaxComputeDoris备注
TINYINTTINYINT
TINYINTTINYINT
SMALLINTSMALLINT
INTINT
BIGINTBIGINT
BINARY不支持
FLOATFLOAT
DOUBLEDOUBLE
DECIMAL(precision,scale)DECIMAL(precision,scale)
VARCHAR(n)VARCHAR(n)
CHAR(n)CHAR(n)
STRINGSTRING
DATEDATE
DATETIMEDATETIME(3)可以通过SET [global] time_zone = 'Asia/Shanghai'来指定时区
TIMESTAMP不支持
TIMESTAMP_NTZDATETIME(6)MaxCompute 的 TIMESTAMP_NTZ 精度为9, Doris 的 DATETIME 最大精度只有6,故读取数据时会将多的部分直接截断。
BOOLEANBOOLEAN
ARRAYARRAY
MAPMAP
STRUCTSTRUCT
JSON不支持

使用须知

  1. MaxCompute Catalog 基于 开放存储SDK 开发。
  2. 开放存储SDK的使用有一定的限制,请参照该 文档使用限制 的章节。
  3. MaxCompute 中的 Project 相当于 Doris 中的 DataBase 。

如何获取 Endpoint 和 Quota

  1. 如果您使用数据传输服务独享资源组, 请参照该 文档使用独享数据服务资源组 章节中的 2.授权 来开启相应的权限,并在 配额(Quota)管理 列表中,查看并复制对应的QuotaName,指定 "mc.quota" = "QuotaName"。此时您可以选择 VPC / 公网来访问 MaxCompute,但是走 VPC 的带宽有保障,公网带宽资源小。

  2. 如果您使用按量付费,请参照该 文档使用开放存储(按量付费) 的章节,来开启开放存储(Storage API)开关,并给 Ak,SK 对应的用户赋予权限。此时您的 mc.quota 为默认值 pay-as-you-go,不需要额外指定该值。此时您只能使用 VPC 来访问 MaxCompute。

  3. 通过第 1/2 步,您已经知道该如何访问 MaxCompute,下面需要根据 阿里云 Endpoints 文档 中的 地域Endpoint对照表 来配置 mc.endpoint 。使用 VPC 访问的用户,需要根据 各地域Endpoint对照表(阿里云VPC网络连接方式) 表中的 VPC网络Endpoint 列来配置 mc.endpoint 。使用公网访问的用户,可以选择 各地域Endpoint对照表(阿里云经典网络连接方式) 表中的 经典网络Endpoint 列、或者选择 各地域Endpoint对照表(外网连接方式) 表中的 外网Endpoint 列来配置 mc.endpoint