Doris 2.1.9 Catalog + View 视图实现跨集群库映射(完整实战)
一、背景
在实际数据平台或业务系统中,经常会存在多个 Doris 集群(docker版)并行运行的情况,例如:
- Doris B
- 业务库:op_13h_app1
- Doris A
- 业务库:op_15s_app1
- 业务库:op_15t_app1
在这种多集群架构下,经常会遇到以下核心需求:
1️⃣ 跨集群查询
需要在 Doris A 中直接查询 Doris B 的数据,例如:
- 查询
op_13h_app1下的历史数据 - 作为分析或补充维度数据使用
2️⃣ 跨库 JOIN 分析
不仅是单表查询,还需要进行跨库关联分析,例如:
-
op_15s_app1(实时业务数据)
↔ -
op_13h_app1(历史/汇总数据)
但 Doris 本身:
❌ 不支持“库级物理映射”
❌ 不能直接把远程库变成本地库
使用三层结构:
Doris B(本地)
├── Catalog(远程 Doris A)
│ ↓
│ op_15s_app1 / op_15t_app1
│
├── remote_op_15s_app1(VIEW层)
└── remote_op_15t_app1(VIEW层)三、创建 Doris Catalog(关键)
在 B Doris 执行(driver_url需要使用国内阿里云的地址,否则会建立失败):
CREATE CATALOG doris_remote_6 PROPERTIES (
"type" = "jdbc",
"user" = "root",
"password" = "******",
"jdbc_url" = "jdbc:mysql://192.168.2.5:9030",
"driver_url" = "https://maven.aliyun.com/repository/public/com/mysql/mysql-connector-j/8.0.33/mysql-connector-j-8.0.33.jar",
"driver_class" = "com.mysql.cj.jdbc.Driver"
);验证 Catalog
SHOW CATALOGS;SHOW DATABASES FROM doris_remote_6;
四、创建本地映射库(逻辑层)
CREATE DATABASE remote_op_15s_app1;
CREATE DATABASE remote_op_15t_app1;
五、批量创建 VIEW(核心步骤)
📌 1. 15s 库映射
CREATE OR REPLACE VIEW remote_op_15s_app1.t_back_list AS
SELECT * FROM doris_remote_6.op_15s_app1.t_back_list;
CREATE OR REPLACE VIEW remote_op_15s_app1.t_king_props AS
SELECT * FROM doris_remote_6.op_15s_app1.t_king_props;
CREATE OR REPLACE VIEW remote_op_15s_app1.t_lottery AS
SELECT * FROM doris_remote_6.op_15s_app1.t_lottery;
📌 2. 15t 库映射
CREATE OR REPLACE VIEW remote_op_15t_app1.t_back_list AS
SELECT * FROM doris_remote_6.op_15t_app1.t_back_list;
CREATE OR REPLACE VIEW remote_op_15t_app1.t_king_props AS
SELECT * FROM doris_remote_6.op_15t_app1.t_king_props;📌 3. 效果如下
可以看到view视图已经建立成功
验证测试
六、使用方式
✔ 查询 15s 库
SELECT * FROM remote_op_15s_app1.t_user LIMIT 10;
✔ 查询 15t 库
SELECT * FROM remote_op_15t_app1.t_user LIMIT 10;
✔ 跨库 JOIN
SELECT a.*, b.*
FROM remote_op_15s_app1.t_user a
JOIN remote_op_15t_app1.t_user b
ON a.user_id = b.user_id;




浙公网安备 33010602011771号