目录
一.基本概念
多源数据目录(Multi-Catalog)功能,旨在能够更方便对接外部数据目录,以增强Doris的数据湖分析和联邦数据查询能力。
Multi-Catalog 功能在原有的元数据层级上,新增一层Catalog,构成 Catalog -> Database -> Table 的三层元数据层级。其中,Catalog 可以直接对应到外部数据目录。Internal Catalog 是内置的默认 Catalog,用户不可修改或删除。目前支持的外部数据目录包括:
- Apache Hive
- Apache Iceberg
- Apache Hudi
- Elasticsearch
- JDBC: 对接数据库访问的标准接口(JDBC)来访问各式数据库的数据。
- Apache Paimon(Incubating)
二.基本操作
2.1 查看 Catalog
show catalogs;

2.2 新增 Catalog
create catalog jdbc_mysql_233_8 properties (
"type"="jdbc",
"user"="root",
"password"="123456",
"jdbc_url" = "jdbc:mysql://192.168.110.233:3307/demo",
"driver_url" = "mysql-connector-java-8.0.30.jar",
"driver_class" = "com.mysql.cj.jdbc.Driver","metadata_refresh_interval_sec"="20"
);

2.3 切换 Catalog
switch catalog_name

切换后,可以直接通过 SHOW DATABASES,USE DB 等命令查看和切换对应 Catalog 中的 Database。Doris 会自动通过 Catalog 中的 Database 和 Table。用户可以像使用 Internal Catalog 一样,对 External Catalog 中的数据进行查看和访问。
当前,Doris 只支持对 External Catalog 中的数据进行只读访问。
2.4 删除 Catalog
drop catalog catalog_name

2.5 查看Catalog创建信息
show create catalog catalog_name;
三.JDBC Catalog
JDBC Catalog 通过标准 JDBC 协议,连接其他数据源。连接后,Doris 会自动同步数据源下的 Database 和 Table 的元数据,以便快速访问这些外部数据。
3.1 上传mysql驱动包
需将 Jar 包预先存放在 FE 和 BE 部署目录的 jdbc_drivers/ 目录下。系统会自动在这个目录下寻找。该目录的位置,也可以由 fe.conf 和 be.conf 中的 jdbc_drivers_dir 配置修改。

修改fe和be配置文件,指定jdbc_drivers_dir目录。

3.2 创建mysql catalog
####mysql 8
CREATE CATALOG jdbc_mysql_233_8 PROPERTIES (
"type"="jdbc",
"user"="root",
"password"="123456",
"jdbc_url" = "jdbc:mysql://192.168.110.233:3307/demo",
"driver_url" = "mysql-connector-java-8.0.30.jar",
"driver_class" = "com.mysql.cj.jdbc.Driver"
)####mysql 5
CREATE CATALOG jdbc_mysql_233_5 PROPERTIES (
"type"="jdbc",
"user"="root",
"password"="123456",
"jdbc_url" = "jdbc:mysql://192.168.110.233:3306/demo",
"driver_url" = "mysql-connector-java-5.1.47.jar",
"driver_class" = "com.mysql.jdbc.Driver"
)

3.3 使用SQL读取Catalog
show catalogs;
switch catalog_name;
show databases;
use db_name;
show tables;
select * from table_name limit 10;

3.4 使用JDBC读取Catalog
JDBC URL 中使用 catalog_name.db 可以指定默认 Catalog,例如:
jdbc:mysql://FE_IP:FE_PORT/catalog.db?useSSL=false
四.元数据管理
4.1 元数据缓存
为了提升访问外部数据源的性能,Apache Doris 会对外部数据源的元数据进行缓存。元数据包括库、表、列信息、分区信息、快照信息、文件列名等。
4.2 元数据刷新
默认情况下,外部数据源的元数据变动,如创建、删除表,加减列等操作,不会同步给 Doris。
用户可以通过以下几种方式刷新元数据。
- 手动刷新:用户需要通过 REFRESH 命令手动刷新元数据。
1)REFRESH CATALOG:该命令会刷新指定 Catalog 的库列表,表列名以及所有缓存信息等。
REFRESH CATALOG catalog_name;
2)REFRESH DATABASE:该命令会刷新指定 Database 的表列名以及 Database 下的所有缓存信息等。
REFRESH DATABASE [catalog_name.]db_name;
3)REFRESH TABLE:该命令会刷新指定 Table 下的所有缓存信息等。
REFRESH TABLE [catalog_name.][db_name.]table_name;
- 定时刷新
在创建catalog时,在properties 中指定刷新时间参数metadata_refresh_interval_sec ,以秒为单位,若在创建catalog时设置了该参数,FE 的master节点会根据参数值定时刷新该catalog。
CREATE CATALOG hive PROPERTIES (
'type'='hms',
'hive.metastore.uris' = 'thrift://172.0.0.1:9083',
'metadata_refresh_interval_sec' = '3600'
);
五、数据缓存
数据缓存(Data Cache)通过缓存最近访问的远端存储系统(HDFS 或对象存储)的数据文件,加速后续访问相同数据的查询。Data Cache 功能仅作用于针对文件的外表查询(如 Hive、Hudi )。对内表查询,或非文件的外表查询(如 JDBC、Elasticsearch)等无影响。
Data Cache 默认关闭,需要在 FE 和 BE 中设置相关参数进行开启。
5.1 FE 配置
- 单个会话中开启 Data Cache:
SET enable_file_cache = true;
- 全局开启 Data Cache:
SET GLOBAL enable_file_cache = true;
5.2 BE 配置
添加参数到 BE 节点的配置文件 conf/be.conf 中,并重启 BE 节点让配置生效。
| 参数 | 必选项 | 说明 |
|---|---|---|
| enable_file_cache | 是 | 是否启用 Data Cache,默认 false |
| file_cache_path | 是 | 缓存目录的相关配置,json格式,例子: [{"path": "/path/to/file_cache3", "total_size":53687091200,"query_limit": 10737418240, "normal_percent":85, "disposable_percent":10, "index_percent":5}]。 path 是缓存的保存路径, total_size 是缓存的大小上限, query_limit 是单个查询能够使用的最大缓存大小, normal_percent, disposable_percent, index_percent 3个cache队列的百分比,他们之和是100 |
六、弹性计算节点
计算节点作为一种特殊类型的 BE 节点,没有数据存储能力,只负责数据计算。 在湖仓一体解决方案中,计算节点可以作为弹性节点,用于查询外部数据源,如 Hive、Iceberg、JDBC 等。Doris 不负责外部数据源数据的存储,因此,可以使用计算节点方便的扩展对外部数据源的计算能力。同时,计算节点也可以配置缓存目录,用于缓存外部数据源的热点数据,进一步加速数据读取。
6.1 添加计算节点
在 BE 的 be.conf 配置文件中增加以下配置,之后启动 BE 节点,该节点就会以计算节点类型运行。
be_node_role=computation
之后可以通过 MySQL 客户端链接 Doris 并执行:
ALTER SYSTEM ADD BACKEND
添加这个 BE 节点。添加成功后,在 SHOW BACKENDS 的 NodeRole 列可以看到节点类型为 computation。
注意:计算节点可以转换为混合节点。但混合节点不可以转换为计算节点。
6.2 使用计算节点
添加参数到 FE 节点的配置文件 conf/fe.conf 中,并重启 FE 节点让配置生效。
| 参数 | 必选项 | 说明 |
|---|---|---|
| prefer_compute_node_for_external_table | 是 | 默认false,需要改成true启用计算节点 |
| min_backend_num_for_external_table | 否 | 该参数表示:期望可参与外表数据查询的 BE 节点的最小数量。在 Doris 2.0(含)版本之前,该参数的默认值为 3。2.1 版本之后,默认参数为 -1。-1 表示该值等同于当前集群内计算节点的数量。 |
以上参数可以通过 ADMIN SET FRONTEND CONFIG 命令动态修改,不需要重启 FE 节点。且所有 FE 节点都需配置。
2253

被折叠的 条评论
为什么被折叠?



