Paimon Catalog
Doris 支持通过多种元数据服务访问 Paimon 表元数据,并进行 Paimon 数据查询。
目前只支持 Paimon 表的读操作,未来会支持的写入 Paimon 表。
使用 Docker 快速体验 Apache Doris & Paimon
适用场景
场景 | 说明 |
---|---|
查询加速 | 利用 Doris 分布式计算引擎,直接访问 Paimon 数据进行查询加速。 |
数据集成 | 读取 Paimon 数据并写入到 Doris 内表。或通过 Doris 计算引擎进行 ZeroETL 操作。 |
数据写回 | 暂不支持。 |
配置 Catalog
语法
CREATE CATALOG [IF NOT EXISTS] catalog_name PROPERTIES (
'type' = 'paimon',
'paimon.catalog.type' = '<paimon_catalog_type>',
'warehouse' = '<paimon_warehouse>'
{MetaStoreProperties},
{StorageProperties},
{CommonProperties}
);
-
<paimon_catalog_type>
Paimon Catalog 的类型,支持以下几种:
-
filesystem
:默认。直接访问文件系统上存储的元数据。 -
hms
:使用 Hive Metastore 作为元数据服务。 -
dlf
:使用阿里云 DLF 作为元数据服务。
-
-
<paimon_warehouse>
Paimon 的仓库路径。当
<paimon_catalog_type>
为filesystem
时,需指定这个参数。warehouse
的路径必须指向Database
路径的上一级。如您的表路径是:s3://bucket/path/to/db1/table1
,那么warehouse
应该是:s3://bucket/path/to/
。 -
{MetaStoreProperties}
MetaStoreProperties 部分用于填写 Metastore 元数据服务连接和认证信息。具体可参阅【支持的元数据服务】部分。
-
{StorageProperties}
StorageProperties 部分用于填写存储系统相关的连接和认证信息。具体可参阅【支持的存储系统】部分。
-
{CommonProperties}
CommonProperties 部分用于填写通用属性。请参阅 数据目录概述 中【通用属性】部分。
支持的 Paimon 版本
当前依赖的 Paimon 版本为 0.8.1。支持读取更高版本的 Paimon 表。
支持的 Paimon 格式
- 支持读取 Paimon Deletion Vector
支持的元数据服务
支持的存储系统
支持的数据格式
列类型映射
Paimon Type | Doris Type | Comment |
---|---|---|
boolean | boolean | |
tinyint | tinyint | |
smallint | smallint | |
integer | int | |
bigint | bigint | |
float | float | |
double | double | |
decimal(P, S) | decimal(P, S) | |
varchar | string | |
char | string | |
bianry | string | |
varbinary | string | |
date | date | |
timestamp_without_time_zone | datetime(N) | 会根据精度进行对应映射。如果精度大于 6,则最大映射到 6。(可能导致精度丢失) |
timestamp_with_local_time_zone | datetime(N) | 会根据精度进行对应映射。如果精度大于 6,则最大映射到 6。(可能导致精度丢失) |
array | array | |
map | map | |
row | struct | |
other | UNSUPPORTED |
基础示例
Paimon on HDFS
CREATE CATALOG paimon_hdfs PROPERTIES (
'type' = 'paimon',
'warehouse' = 'hdfs://HDFS8000871/user/paimon',
'dfs.nameservices' = 'HDFS8000871',
'dfs.ha.namenodes.HDFS8000871' = 'nn1,nn2',
'dfs.namenode.rpc-address.HDFS8000871.nn1' = '172.21.0.1:4007',
'dfs.namenode.rpc-address.HDFS8000871.nn2' = '172.21.0.2:4007',
'dfs.client.failover.proxy.provider.HDFS8000871' = 'org.apache.hadoop.hdfs.server.namenode.ha.ConfiguredFailoverProxyProvider',
'hadoop.username' = 'hadoop'
);
Paimon on HMS
CREATE CATALOG paimon_hms PROPERTIES (
'type' = 'paimon',
'paimon.catalog.type' = 'hms',
'warehouse' = 'hdfs://HDFS8000871/user/zhangdong/paimon2',
'hive.metastore.uris' = 'thrift://172.21.0.44:7004',
'dfs.nameservices' = 'HDFS8000871',
'dfs.ha.namenodes.HDFS8000871' = 'nn1,nn2',
'dfs.namenode.rpc-address.HDFS8000871.nn1' = '172.21.0.1:4007',
'dfs.namenode.rpc-address.HDFS8000871.nn2' = '172.21.0.2:4007',
'dfs.client.failover.proxy.provider.HDFS8000871' = 'org.apache.hadoop.hdfs.server.namenode.ha.ConfiguredFailoverProxyProvider',
'hadoop.username' = 'hadoop'
);
Paimon on DLF
CREATE CATALOG paimon_dlf PROPERTIES (
'type' = 'paimon',
'paimon.catalog.type' = 'dlf',
'warehouse' = 'oss://xx/yy/',
'dlf.proxy.mode' = 'DLF_ONLY',
'dlf.uid' = 'xxxxx',
'dlf.region' = 'cn-beijing',
'dlf.access_key' = 'ak',
'dlf.secret_key' = 'sk'
);
查询操作
基础查询
配置好 Catalog 后,可以通过以下方式查询 Catalog 中的表数据:
-- 1. switch to catalog, use database and query
SWITCH paimon_ctl;
USE paimon_db;
SELECT * FROM paimon_tbl LIMIT 10;
-- 2. use paimon database directly
USE paimon_ctl.paimon_db;
SELECT * FROM paimon_tbl LIMIT 10;
-- 3. use full qualified name to query
SELECT * FROM paimon_ctl.paimon_db.paimon_tbl LIMIT 10;