阿里云 MaxCompute
更新时间:2025-08-21
阿里云 MaxCompute
MaxCompute 是阿里云上的企业级 SaaS(Software as a Service)模式云数据仓库。
连接 MaxCompute
示例
SQL
1-- 1. 创建Catalog。
2CREATE CATALOG mc PROPERTIES (
3 "type" = "max_compute",
4 "mc.default.project" = "xxx",
5 "mc.access_key" = "xxxx",
6 "mc.secret_key" = "xxx",
7 "mc.endpoint" = "http://service.cn-beijing-vpc.MaxCompute.aliyun-inc.com/api"
8);
9
10-- 2. 切换到新创建的Catalog下。
11SWITCH mc;
12
13-- 下面的步骤就和使用Mysql一样了。
14
15-- 3. 查看该Catalog下所有的数据库。
16SHOW DATABASES;
17
18-- 4. 使用数据库, 这里的xxx为第三步展示出来结果的任意一个数据库。
19USE xxx;
20
21-- 5. 查看该数据库下所有的表。
22SHOW TABLES;
23
24-- 6. 进行SQL查询。
25select * from tb limit 10;
创建 Catalog 的基本属性
| 参数 | 说明 |
|---|---|
| type | 固定为 max_compute. |
| mc.default.project | 想要访问的 MaxCompute 项目名称。 |
| mc.access_key | AccessKey。 |
| mc.secret_key | SecretKey。 |
| mc.endpoint | MaxCompute 开通的地域。请参照下文的如何获取Endpoint 和 Quota来配置。 |
创建 Catalog 的可选属性
| 参数 | 默认值 | 说明 |
|---|---|---|
| mc.quota | pay-as-you-go | Quota 名称。请参照下文的 如何获取Endpoint 和 Quota 来配置。 |
| mc.split_strategy | byte_size | 设置 split 的划分方式,可设置为按照字节大小划分 byte_size 和按照数据行数划分 row_count |
| mc.split_byte_size | 268435456 | 每个 split 读取的文件大小,单位为字节,默认为 256MB,当且仅当 "mc.split_strategy" = "byte_size" 时生效 |
| mc.split_row_count | 1048576 | 每个 split 读多少行,当且仅当 "mc.split_strategy" = "row_count" 时生效 |
列类型映射
| MaxCompute | PALO | 备注 |
|---|---|---|
| TINYINT | TINYINT | |
| TINYINT | TINYINT | |
| SMALLINT | SMALLINT | |
| INT | INT | |
| BIGINT | BIGINT | |
| BINARY | 不支持 | |
| FLOAT | FLOAT | |
| DOUBLE | DOUBLE | |
| DECIMAL(precision,scale) | DECIMAL(precision,scale) | |
| VARCHAR(n) | VARCHAR(n) | |
| CHAR(n) | CHAR(n) | |
| STRING | STRING | |
| DATE | DATE | |
| DATETIME | DATETIME(3) | 可以通过SET [global] time_zone = 'Asia/Shanghai'来指定时区 |
| TIMESTAMP | 不支持 | |
| TIMESTAMP_NTZ | DATETIME(6) | MaxCompute 的 TIMESTAMP_NTZ 精度为 9, PALO 的 DATETIME 最大精度只有 6,故读取数据时会将多的部分直接截断。 |
| BOOLEAN | BOOLEAN | |
| ARRAY | ARRAY | |
| MAP | MAP | |
| STRUCT | STRUCT | |
| JSON | 不支持 |
使用须知
- 自 2.1.7 版本开始,MaxCompute Catalog 基于 开放存储 SDK 开发。
- 开放存储 SDK 的使用有一定的限制,请参照该 文档 中 使用限制 的章节。
- MaxCompute 中的 Project 相当于 PALO 中的 DataBase。
如何获取 Endpoint 和 Quota
- 如果您使用数据传输服务独享资源组,请参照 使用独享数据服务资源组 章节中的 2.授权 来开启相应的权限,并在 配额(Quota)管理 列表中,查看并复制对应的 QuotaName,指定 "mc.quota" = "QuotaName"。此时您可以选择 VPC / 公网来访问 MaxCompute,但是走 VPC 的带宽有保障,公网带宽资源小。
- 如果您使用按量付费,请参照 使用开放存储(按量付费) 的章节,来开启开放存储 (Storage API) 开关,并给 Ak,SK 对应的用户赋予权限。此时您的 mc.quota 为默认值 pay-as-you-go,不需要额外指定该值。此时您只能使用 VPC 来访问 MaxCompute。
- 通过第 1/2 步,您已经知道该如何访问 MaxCompute,下面需要根据 阿里云 Endpoints 文档中的
地域Endpoint对照表来配置mc.endpoint。使用 VPC 访问的用户,需要根据各地域Endpoint对照表(阿里云VPC网络连接方式)表中的VPC网络Endpoint列来配置mc.endpoint。使用公网访问的用户,可以选择各地域Endpoint对照表(阿里云经典网络连接方式)表中的经典网络Endpoint列、或者选择各地域Endpoint对照表(外网连接方式)表中的外网Endpoint列来配置mc.endpoint。
