SelectDB Enterprise
使用指南
湖仓一体
Data Catalogs
Delta Lake Catalog

Delta Lake Catalog

Delta Lake Catalog 通过 Trino Connector (opens in a new tab) 兼容框架,使用 Delta Lake Connector 来访问 Delta Lake 表。

:::notice 该功能为实验功能,自 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
$ cd ../../lib/trino-hdfs
$ mvn clean install -DskipTest

完成编译后,会在 trino/plugin/trino-delta-lake/target/ 下得到 trino-delta-lake-435 目录,在 trino/lib/trino-hdfs/target/ 下得到 hdfs 目录

也可以直接下载预编译的 trino-delta-lake-435-20240724.tar.gz (opens in a new tab)hdfs.tar.gz (opens in a new tab) 并解压。

部署 Delta Lake Connector

trino-delta-lake-435/ 目录放到所有 FE 和 BE 部署路径的 connectors/ 目录下(如果没有,可以手动创建),将 hdfs.tar.gz 解压到 trino-delta-lake-435/ 目录下。

├── bin
├── conf
├── connectors
│   ├── trino-delta-lake-435
│   │   ├── hdfs
...

部署完成后,建议重启 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 文档 (opens in a new tab)

  • {CommonProperties}

    CommonProperties 部分用于填写通用属性。请参阅 数据目录概述 中【通用属性】部分。

支持的 Delta Lake 版本

更多有关 Delta Lake 的信息可以参考 Trino 文档 (opens in a new tab)

支持的元数据服务

更多有关 Delta Lake 的信息可以参考 Trino 文档 (opens in a new tab)

支持的存储系统

更多有关 Delta Lake 的信息可以参考 Trino 文档 (opens in a new tab)

列类型映射

Delta Lake TypeTrino TypeDoris TypeComment
booleanbooleanboolean
intintint
bytetinyinttinyint
shortsmallintsmallint
longbigintbigint
floatrealfloat
doubledoubledouble
decimal(P, S)decimal(P, S)decimal(P, S)
stringvarcharstring
bianryvarbinarystring
datedatedate
timestamp_ntztimestamp(N)datetime(N)
timestamptimestamp with time zone(N)datetime(N)
arrayarrayarray
mapmapmap
structrowstruct

基础示例

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;
© 2025 北京飞轮数据科技有限公司 京ICP备2022004029号 | Apache、Apache Doris 以及相关开源项目名称均为 Apache 基金会商标