当前位置: 首页 > news >正文

clickhouse和pgSql跨库查询方案对比 - 实践

clickhouse和pgSql跨库查询方案对比 - 实践

在企业内容架构中,将 PostgreSQL(简称 PG)外部数据“联接”到 ClickHouse 查询中 是一个特别常见的需求,比如做跨库分析、材料比对、报表或中台汇聚。

ClickHouse 原生就支持多种“外部数据源访问机制”,包括 PostgreSQL。下面我给你讲得 既清晰又实用

一、实现目标

让 ClickHouse 能直接访问 PostgreSQL 的表(或查询结果),
从而在 ClickHouse 的 SQL 查询中使用 PG 数据,就像本地表一样。

二、完成方式总览

方式 说明 场景 推荐度
✅ PostgreSQL 表引擎 ClickHouse 内置 PostgreSQL() 引擎直接访问 PG 表 最通用、官方支持 ⭐⭐⭐⭐⭐
PostgreSQL 外部字典(Dictionary) 从 PG 同步数据为 ClickHouse 字典 小数据量、维度表 ⭐⭐⭐
Materialized View + 定时同步 定期拉取 PG 数据入 ClickHouse 大数据量、离线同步 ⭐⭐⭐
通过 JDBC / ODBC 利用外部表或函数访问 PG 异构环境或特殊驱动 ⭐⭐

三、推荐方案:PostgreSQL 表引擎

✅ ClickHouse 自 21.3 版本起支持原生 PostgreSQL 引擎
1️⃣ 启用 PostgreSQL 引擎

先确认你的 ClickHouse 支持该引擎:

SELECT * FROM system.table_engines WHERE name = ‘PostgreSQL’;

若无结果,请在 clickhouse-server 启动参数或 config.xml 中开启:

1

并确保安装了 PostgreSQL 驱动(默认已包含)。

2️⃣ 语法示例:直接访问 PG 表
CREATE TABLE pg_orders
ENGINE = PostgreSQL
(
‘host=192.168.10.12’,
‘database=mydb’,
‘user=myuser’,
‘password=mypass’,
‘orders’
);

含义:

PostgreSQL:引擎类型;

参数依次为:host, database, user, password, table_name。

现在你就可以直接查询 PG 的表啦

SELECT * FROM pg_orders LIMIT 10;

它会在查询时实时读取 PostgreSQL 数据(不做持久化缓存)。

3️⃣ 跨库 JOIN 示例

你可以直接与 ClickHouse 本地表进行联表查询:

SELECT c.customer_name, o.amount, o.create_time
FROM clickhouse.customers AS c
JOIN pg_orders AS o
ON c.customer_id = o.customer_id
WHERE o.create_time >= today() - 7;

ClickHouse 会在查询时从 PostgreSQL 拉取匹配信息(push-down 优化有限,但十分方便)。

4️⃣ 可选:限制数据量或分区读取

行在查询中指定条件:

SELECT * FROM pg_orders WHERE order_date >= ‘2025-11-01’;

或在创建时指定 schema:

CREATE TABLE pg_table
ENGINE = PostgreSQL(‘pg_host:5432’, ‘db’, ‘user’, ‘pass’, ‘public.orders’);

四、外部表(postgresql() 函数)

假如不想长期建表,行用函数式访问(临时查询):

SELECT *
FROM postgresql(‘192.168.10.12:5432’, ‘mydb’, ‘orders’, ‘myuser’, ‘mypass’)
LIMIT 10;

同样可以直接 JOIN:

SELECT c.name, p.amount
FROM customers AS c
JOIN postgresql(‘192.168.10.12:5432’, ‘mydb’, ‘orders’, ‘myuser’, ‘mypass’) AS p
ON c.id = p.customer_id;

✅ 优点:

无需创建 ClickHouse 表;

即查即用;

非常适合临时数据分析或验证。

五、运用 PostgreSQL Dictionary (维表方式)

想同步 PG 的维度数据(如地区、用户标签),就是如果你只
可以采用 ClickHouse 的 外部字典(Dictionary):

user_dict 192.168.10.12 5432 myuser mypass mydb users
user_id user_name String 300

然后在 SQL 中:

SELECT dictGet(‘user_dict’, ‘user_name’, toUInt64(1001));

✅ 适合:

小表(几十万行以内);

缓存型维表;

低延迟场景。

六、性能与注意事项

困难 说明 优化建议
行存储,不适合大范围扫描 仅联查小表或加过滤条件就是查询慢 PostgreSQL
连接超时 默认超时较短 在 config.xml 调高 connect_timeout、receive_timeout
认证失败 检查 PG 的 pg_hba.conf 是否允许远程访问
JOIN 性能低 可先同步 PG 内容到本地临时表再 JOIN 用 INSERT INTO local SELECT * FROM pg_table
网络消耗高 每次查询都会从 PG 拉取材料 可定期物化(用 MATERIALIZED VIEW 缓存)
七、实战建议
场景 推荐方案
临时分析 / 跨库 JOIN ✅ postgresql() 函数式查询
稳定跨库数据表 ✅ ENGINE = PostgreSQL 创建表
小维度表、标签表 ✅ 外部字典(Dictionary)
大数据同步分析 ✅ 定期 INSERT SELECT 同步至 ClickHouse

✅ 八、总结一句话

底层原理:ClickHouse 依据 PostgreSQL 引擎或 postgresql() 函数,在查询时建立 TCP 连接,实时从 PG 读取数据并参与查询计算。
“实时拉取 + 按需处理”。就是它不是复制信息,而

方案 是否实时 是否持久化 适用场景
PostgreSQL ENGINE ✅ ❌ 实时跨库联查
postgresql() 函数 ✅ ❌ 临时查询
Dictionary 定期刷新 ✅ 小表维度缓存
定期同步 ❌(准实时) ✅ 大表分析场景

http://www.jsqmd.com/news/373374/

相关文章:

  • 5.3 用Assistants API实现多轮Function Calling
  • 2026年正规江南汽车/湖北江南专用汽车推荐几家可靠供应商参考 - 品牌宣传支持者
  • **解锁Agent智能体新纪元:自主协作、任务分解与人类意图对齐的终极指南**
  • 手持式雷达流速仪水文雷达测速仪
  • 智慧公厕哪家可靠? - 博客湾
  • 对比一圈后!更贴合专科生的降AIGC平台 千笔·专业降AI率智能体 VS 文途AI
  • 输入新老客户获客成本与复购,计算新客户生命周期价值更高。
  • 并行编程实战——CUDA编程的并行前缀和
  • 2026年热门的烤漆视觉点胶机/喷射阀视觉点胶机值得信赖厂家推荐(精选) - 品牌宣传支持者
  • 2026年靠谱的塑料金属分离器厂家选购攻略与推荐 - 品牌鉴赏师
  • 科研党收藏!更贴合专科生的降AIGC软件 千笔·专业降AI率智能体 VS 灵感ai
  • 导师推荐!AI论文软件 千笔·专业学术智能体 VS 知文AI,自考写作文首选
  • 2026年知名的野奢民宿设计/酒店民宿设计高分推荐 - 品牌宣传支持者
  • 2026年热门的注塑母料/吹膜母料厂家用户好评推荐 - 品牌宣传支持者
  • 2026年热门的圆形纸碗/航空纸碗厂家采购参考指南 - 品牌宣传支持者
  • 2026 年春节档必看热门电影口碑推荐与选择建议及观影指南 - 博客万
  • 智慧公厕哪家值得选?从技术、产品到案例的全维度解析 - 博客湾
  • 26年湛江高一期末统考考试第19题 三角函数零点
  • 【SPIE出版 | EI检索】第六届数字信号与计算通信国际学术会议(DSCC 2026)
  • 聚焦电子取证效率:2026年值得关注的介质预检恢复工作台,数据恢复/光盘抛光修复工具,电子取证厂商哪个好 - 品牌推荐师
  • 从零开始:C#单文件AOT打包前后端分离项目
  • 2026年口碑好的防紫外线汽车窗,隔热汽车窗膜,防晒汽车窗膜公司选型推荐指南 - 品牌鉴赏师
  • pytest 并行策略的探索
  • 给 Claude 装个仪表盘,时刻监测Token消耗跟任务进度
  • 9后端Web实战
  • 2026武汉空调维修服务商实力TOP10:全场景维保的价值之选 - 博客万
  • 2026年热门的自锁式不锈钢扎带/L型不锈钢扎带厂家实力与用户口碑参考 - 品牌宣传支持者
  • 讲讲服务不错的家用别墅电梯工厂,口碑好的选哪家 - 工业推荐榜
  • 2026年行业内靠谱的ISO认证办理机构找哪家,ISO27001认证/产品测试报告,ISO认证代办公司怎么选择 - 品牌推荐师
  • 写作压力小了,AI论文写作软件 千笔·专业论文写作工具 VS 学术猹,研究生必备!