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.  效果如下

image

 

可以看到view视图已经建立成功

image

 

验证测试

image

 

 


六、使用方式

✔ 查询 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;
 



posted @ 2026-05-07 17:11  liuyi-stack  阅读(20)  评论(0)    收藏  举报