本文介绍如何将数据通过阿里云MaxCompute外表方式导入至云数据库ClickHouse。
注意事项
- 云数据库ClickHouse集群的内核版本为20.3及以上。
- MaxCompute服务为付费服务。计费详情,请参见MaxCompute计费方式。
- 为了确保云数据库ClickHouse与MaxCompute服务之间网络通畅,您需要采用阿里云VPC网络访问方式,且MaxCompute必须与您的云数据库ClickHouse集群在同一地域。
前提条件
- 已开通MaxCompute服务。如何开通,请参见开通MaxCompute。
- 已创建MaxCompute项目,且与云数据库ClickHouse集群在同一地域。如何创建,请参见创建MaxCompute项目。
- 如果RAM用户使用MaxCompute,需要阿里云主账号为RAM用户授权。如何授权,请参见准备RAM用户。
操作步骤
- 创建MaxCompute外表。
- 写入MaxCompute外表数据。
- 创建云数据库ClickHouse表。
- 查询云数据库ClickHouse表。
数据类型映射
MaxCompute类型 | ClickHouse类型 |
---|---|
Boolean | UInt8 |
Tinyint | UInt8, Int8 |
Smalllint | UInt16, Int16 |
Int | UInt32, Int32 |
Bigint | UInt64, Int64 |
Float | Float32 |
Double | Float64 |
Char | String |
Varchar | String |
Binary | String |
String | String |
Date | Date |
Datetime | Datetime |
UUID | 暂不支持 |
INTERVAL | 暂不支持 |
Decimal | String |
Timestamp | 暂不支持 |
Map | Nested(Nullable(keyType), Nullable(valueType))。目前只支持一层非嵌套的Map结构。
例如MaxCompute中map<string, string>对应云数据库ClickHouse中的类型是:Nested(k Nullable(String), v Nullable(String))。 说明 Nested内部的类型必须是Nullable,否则建表会报错。
|
Array | Array(Nullable(Type))。目前只支持一层非嵌套的Array结构。
例如MaxCompute中array<int>对应云数据库ClickHouse中的类型是:Array(Nullable(Int32))。
说明 Array内部的类型必须是Nullable,否则建表会报错。
|
Struct | Tuple(Nullable(Type))。目前只支持一层非嵌套的Struct结构。
例如MaxCompute中struct<x:int, y:string>对应云数据库ClickHouse中的类型是:Tuple(Nulable(Int32), Nullable(String))。
说明 Tuple内部的类型必须是Nullable,否则建表会报错。
|