Delta Lake Catalog
Delta Lake Catalog 通过 Trino Connector 兼容框架,使用 Delta Lake Connector 来访问 Delta Lake 表。
警告
该功能为实验功能,自 3.0.1 版本开始支持。
适用场景
场景 | 说明 |
---|---|
数据集成 | 读取 Detla Lake 数据并写入到 Doris 内表。 |
数据写回 | 不支持。 |
环境准备
编译 Delta Lake Connector 插件
需要 JDK 17 版本。
$ git clone https://github.com/apache/Doris-thirdparty.git
$ cd Doris-thirdparty
$ git checkout trino-435
$ cd plugin/trino-delta-lake
$ mvn clean install -DskipTest
完成编译后,会在 trino/plugin/trino-delta-lake/target/
下得到 trino-delta-lake-435
目录。
也可以直接下载预编译的 trino-delta-lake-435-20240724.tar.gz 并解压。
部署 Delta Lake Connector
将 trino-delta-lake-435/
目录放到所有 FE 和 BE 部署路径的 connectors/
目录下。(如果没有,可以手动创建)。
├── bin
├── conf
├── connectors
│ ├── trino-delta-lake-435
...
部署完成后,建议重启 FE、BE 节点以确保 Connector 可以被正确加载。
配置 Catalog
语法
CREATE CATALOG [IF NOT EXISTS] catalog_name
PROPERTIES (
'type' = 'trino-connector', -- required
'trino.connector.name' = 'delta_lake', -- required
{TrinoProperties},
{CommonProperties}
);
-
{TrinoProperties}
TrinoProperties 部分用于填写将传递给 Trino Connector 的属性,这些属性以
trino.
为前缀。理论上,Trino 支持的属性这里都支持,更多有关 Delta Lake 的信息可以参考 Trino 文档。 -
{CommonProperties}
CommonProperties 部分用于填写通用属性。请参阅 数据目录概述 中【通用属性】部分。
支持的 Delta Lake 版本
更多有关 Delta Lake 的信息可以参考 Trino 文档。
支持的元数据服务
更多有关 Delta Lake 的信息可以参考 Trino 文档。
支持的存储系统
更多有关 Delta Lake 的信息可以参考 Trino 文档。
列类型映射
Delta Lake Type | Trino Type | Doris Type | Comment |
---|---|---|---|
boolean | boolean | boolean | |
int | int | int | |
byte | tinyint | tinyint | |
short | smallint | smallint | |
long | bigint | bigint | |
float | real | float | |
double | double | double | |
decimal(P, S) | decimal(P, S) | decimal(P, S) | |
string | varchar | string | |
bianry | varbinary | string | |
date | date | date | |
timestamp_ntz | timestamp(N) | datetime(N) | |
timestamp | timestamp with time zone(N) | datetime(N) | |
array | array | array | |
map | map | map | |
struct | row | struct |
基础示例
CREATE CATALOG delta_lake_hms properties (
'type' = 'trino-connector',
'trino.connector.name' = 'delta_lake',
'trino.hive.metastore' = 'thrift',
'trino.hive.metastore.uri'= 'thrift://ip:port',
'trino.hive.config.resources'='/path/to/core-site.xml,/path/to/hdfs-site.xml'
);
查询操作
配置好 Catalog 后,可以通过以下方式查询 Catalog 中的表数据:
-- 1. switch to catalog, use database and query
SWITCH delta_lake_ctl;
USE delta_lake_db;
SELECT * FROM delta_lake_tbl LIMIT 10;
-- 2. use dalta lake database directly
USE delta_lake_ctl.delta_lake_db;
SELECT * FROM delta_lake_tbl LIMIT 10;
-- 3. use full qualified name to query
SELECT * FROM delta_lake_ctl.delta_lake_db.delta_lake_tbl LIMIT 10;