1、支持 Hudi 数据源接入Doris。
2、支持 Doris 与 Hudi 数据源中的表联合查询,进行更加复杂的分析操作。
这篇档主要介绍该功能的使用方式和注意事项等。
注意:说明:
注意:该功能适用于 Doris 1.2及后续版本。
注意:Hudi 目前仅支持 Copy On Write 表的 Snapshot Query,以及 Merge On Read 表的 Read Optimized Query。
一、创建方法
数据在 HDFS 上:
CREATE CATALOG hudi PROPERTIES ( 'type'='hms', 'hive.metastore.uris' = 'thrift://172.**.**.**:7004', 'hadoop.username' = 'hadoop', 'dfs.nameservices'='your-nameservice', 'dfs.ha.namenodes.your-nameservice'='nn1,nn2', 'dfs.namenode.rpc-address.your-nameservice.nn1'='172.**.**.**:4007', 'dfs.namenode.rpc-address.your-nameservice.nn2'='172.**.**.**:4007', 'dfs.client.failover.proxy.provider.your-nameservice'='org.apache.hadoop.hdfs.server.namenode.ha.ConfiguredFailoverProxyProvider');
数据在 COS 上:
CREATE CATALOG `hudi_cos` PROPERTIES ("AWS_ENDPOINT" = "cos.ap-guangzhou.myqcloud.com","AWS_REGION" = "ap-guangzhou","hive.metastore.uris" = "thrift://172.**.**.**:7004","type" = "hms","AWS_SECRET_KEY" = "*********************","AWS_ACCESS_KEY" = "*********************");
二、类型匹配
支持的 Hudi 列类型与 Doris 对应关系如下表:
| HMS Type | Doris Type | Comment |
| boolean | boolean | – |
| tinyint | tinyint | – |
| smallint | smallint | – |
| int | int | – |
| bigint | bigint | – |
| date | date | – |
| timestamp | datetime | – |
| float | float | – |
| double | double | – |
| char | char | – |
| varchar | varchar | – |
| decimal | decimal | – |
| array<type> | array<type> | 支持 array 嵌套,如 array<array<int>> |
| map<KeyType, ValueType> | map<KeyType, ValueType> | 暂不支持嵌套,KeyType 和 ValueType 需要为基础类型 |
| struct<col1: Type1, col2: Type2, …> | struct<col1: Type1, col2: Type2, …> | 暂不支持嵌套,Type1, Type2, … 需要为基础类型 |
| other | unsupported | – |
三、查询用法
与普通的 Doris OLAP 表并无区别
select * from hudi_catalog_name.database_name.table_name;