跳到主要内容

LakeSoul Catalog

Doris 支持通过存储在 PostgreSQL 中的元数据,访问并读取 LakeSoul 表数据。

使用 Docker 快速体验 Apache Doris & LakeSoul

适用场景

场景说明
数据集成读取 LakeSoul 数据并写入到 Doris 内表。或通过 Doris 计算引擎进行 ZeroETL 操作。
数据写回不支持。

配置 Catalog

语法

CREATE CATALOG lakesoul_catalog PROPERTIES (
'type' = 'lakesoul',
{LakeSoulProperties},
{CommonProperties}
);
  • {LakeSoulProperties}

    属性说明示例
    lakesoul.pg.usernamePG 源数据库的用户名
    lakesoul.pg.passwordPG 源数据库的密码
    lakesoul.pg.urlPG 元数据库的 JDBC URLjdbc:postgresql://127.0.0.1:5432/lakesoul_test?stringtype=unspecified
  • {CommonProperties}

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

如果 LakeSoul 的数据存储在 HDFS 上,需要将 core-site.xml,hdfs-site.xml 和 hive-site.xml 放到 FE 和 BE 的 conf 目录下。优先读取 conf 目录下的 hadoop 配置文件,再读取环境变量 HADOOP_CONF_DIR 的相关配置文件。

支持的 LakeSoul 版本

当前依赖的 LakeSoul 版本为 2.6.2。

支持的 LakeSoul 格式

  • 支持 LakeSoul 的主键表、无主键表
  • 支持 LakeSoul MOR 表读取。

列类型映射

LakeSoul TypeDoris TypeComment
booleanboolean
int8tinyint
int16smallint
int32int
int64bigint
floatfloat
doubledouble
decimal(P, S)decimal(P, S)
stringstring
datedate
timestamp(S)datetime(S)
listarray
mapmap
rowstruct
otherUNSUPPORTED

基础示例

CREATE CATALOG lakesoul PROPERTIES (
'type' = 'lakesoul',
'lakesoul.pg.username' = 'lakesoul_test',
'lakesoul.pg.password' = 'lakesoul_test',
'lakesoul.pg.url' = 'jdbc:postgresql://127.0.0.1:5432/lakesoul_test?stringtype=unspecified'
);

查询操作

基础查询

配置好 Catalog 后,可以通过以下方式查询 Catalog 中的表数据:

-- 1. switch to catalog, use database and query
SWITCH ls_ctl;
USE ls_db;
SELECT * FROM ls_tbl LIMIT 10;

-- 2. use lakesoul database directly
USE ls_ctl.ls_db;
SELECT * FROM ls_tbl LIMIT 10;

-- 3. use full qualified name to query
SELECT * FROM ls_ctl.ls_db.ls_tbl LIMIT 10;