pg_clickhouse
概览
| 扩展包名 | 版本 | 分类 | 许可证 | 语言 |
|---|---|---|---|---|
pg_clickhouse | 0.11 | OLAP | Apache-2.0 | C |
| ID | 扩展名 | Bin | Lib | Load | Create | Trust | Reloc | 模式 |
|---|---|---|---|---|---|---|---|---|
| 2460 | pg_clickhouse | 否 | 是 | 否 | 是 | 否 | 是 | - |
| 相关扩展 | pg_stat_ch duckdb_fdw pg_duckdb pg_mooncake pg_ducklake pg_lake hdfs_fdw kafka_fdw aws_s3 pg_parquet |
|---|
Release v0.11.0; SQL version 0.11; preloading is optional.
版本
| 类型 | 仓库 | 版本 | PG 大版本 | 包名 | 依赖 |
|---|---|---|---|---|---|
| EXT | PIGSTY | 0.11 | 1817161514 | pg_clickhouse | - |
| RPM | PIGSTY | 0.11.0 | 1817161514 | pg_clickhouse_$v | openssl, libcurl, libuuid, lz4-libs, libzstd |
| DEB | PIGSTY | 0.11.0 | 1817161514 | postgresql-$v-clickhouse | `libssl3 |
| OS / PG | PG18 | PG17 | PG16 | PG15 | PG14 |
|---|---|---|---|---|---|
| el8.x86_64 | PIGSTY 0.11.0 el8.x86_64.pg18 : pg_clickhouse_18 pg_clickhouse_18-0.11.0-1PGSTY.el8.x86_64.rpm
| PIGSTY 0.11.0 el8.x86_64.pg17 : pg_clickhouse_17 pg_clickhouse_17-0.11.0-1PGSTY.el8.x86_64.rpm
| PIGSTY 0.11.0 el8.x86_64.pg16 : pg_clickhouse_16 pg_clickhouse_16-0.11.0-1PGSTY.el8.x86_64.rpm
| PIGSTY 0.11.0 el8.x86_64.pg15 : pg_clickhouse_15 pg_clickhouse_15-0.11.0-1PGSTY.el8.x86_64.rpm
| PIGSTY 0.11.0 el8.x86_64.pg14 : pg_clickhouse_14 pg_clickhouse_14-0.11.0-1PGSTY.el8.x86_64.rpm
|
| el8.aarch64 | PIGSTY 0.11.0 el8.aarch64.pg18 : pg_clickhouse_18 pg_clickhouse_18-0.11.0-1PGSTY.el8.aarch64.rpm
| PIGSTY 0.11.0 el8.aarch64.pg17 : pg_clickhouse_17 pg_clickhouse_17-0.11.0-1PGSTY.el8.aarch64.rpm
| PIGSTY 0.11.0 el8.aarch64.pg16 : pg_clickhouse_16 pg_clickhouse_16-0.11.0-1PGSTY.el8.aarch64.rpm
| PIGSTY 0.11.0 el8.aarch64.pg15 : pg_clickhouse_15 pg_clickhouse_15-0.11.0-1PGSTY.el8.aarch64.rpm
| PIGSTY 0.11.0 el8.aarch64.pg14 : pg_clickhouse_14 pg_clickhouse_14-0.11.0-1PGSTY.el8.aarch64.rpm
|
| el9.x86_64 | PIGSTY 0.11.0 el9.x86_64.pg18 : pg_clickhouse_18 pg_clickhouse_18-0.11.0-1PGSTY.el9.x86_64.rpm
| PIGSTY 0.11.0 el9.x86_64.pg17 : pg_clickhouse_17 pg_clickhouse_17-0.11.0-1PGSTY.el9.x86_64.rpm
| PIGSTY 0.11.0 el9.x86_64.pg16 : pg_clickhouse_16 pg_clickhouse_16-0.11.0-1PGSTY.el9.x86_64.rpm
| PIGSTY 0.11.0 el9.x86_64.pg15 : pg_clickhouse_15 pg_clickhouse_15-0.11.0-1PGSTY.el9.x86_64.rpm
| PIGSTY 0.11.0 el9.x86_64.pg14 : pg_clickhouse_14 pg_clickhouse_14-0.11.0-1PGSTY.el9.x86_64.rpm
|
| el9.aarch64 | PIGSTY 0.11.0 el9.aarch64.pg18 : pg_clickhouse_18 pg_clickhouse_18-0.11.0-1PGSTY.el9.aarch64.rpm
| PIGSTY 0.11.0 el9.aarch64.pg17 : pg_clickhouse_17 pg_clickhouse_17-0.11.0-1PGSTY.el9.aarch64.rpm
| PIGSTY 0.11.0 el9.aarch64.pg16 : pg_clickhouse_16 pg_clickhouse_16-0.11.0-1PGSTY.el9.aarch64.rpm
| PIGSTY 0.11.0 el9.aarch64.pg15 : pg_clickhouse_15 pg_clickhouse_15-0.11.0-1PGSTY.el9.aarch64.rpm
| PIGSTY 0.11.0 el9.aarch64.pg14 : pg_clickhouse_14 pg_clickhouse_14-0.11.0-1PGSTY.el9.aarch64.rpm
|
| el10.x86_64 | PIGSTY 0.11.0 el10.x86_64.pg18 : pg_clickhouse_18 pg_clickhouse_18-0.11.0-1PGSTY.el10.x86_64.rpm
| PIGSTY 0.11.0 el10.x86_64.pg17 : pg_clickhouse_17 pg_clickhouse_17-0.11.0-1PGSTY.el10.x86_64.rpm
| PIGSTY 0.11.0 el10.x86_64.pg16 : pg_clickhouse_16 pg_clickhouse_16-0.11.0-1PGSTY.el10.x86_64.rpm
| PIGSTY 0.11.0 el10.x86_64.pg15 : pg_clickhouse_15 pg_clickhouse_15-0.11.0-1PGSTY.el10.x86_64.rpm
| PIGSTY 0.11.0 el10.x86_64.pg14 : pg_clickhouse_14 pg_clickhouse_14-0.11.0-1PGSTY.el10.x86_64.rpm
|
| el10.aarch64 | PIGSTY 0.11.0 el10.aarch64.pg18 : pg_clickhouse_18 pg_clickhouse_18-0.11.0-1PGSTY.el10.aarch64.rpm
| PIGSTY 0.11.0 el10.aarch64.pg17 : pg_clickhouse_17 pg_clickhouse_17-0.11.0-1PGSTY.el10.aarch64.rpm
| PIGSTY 0.11.0 el10.aarch64.pg16 : pg_clickhouse_16 pg_clickhouse_16-0.11.0-1PGSTY.el10.aarch64.rpm
| PIGSTY 0.11.0 el10.aarch64.pg15 : pg_clickhouse_15 pg_clickhouse_15-0.11.0-1PGSTY.el10.aarch64.rpm
| PIGSTY 0.11.0 el10.aarch64.pg14 : pg_clickhouse_14 pg_clickhouse_14-0.11.0-1PGSTY.el10.aarch64.rpm
|
| d12.x86_64 | PIGSTY 0.11.0 d12.x86_64.pg18 : postgresql-18-clickhouse postgresql-18-clickhouse_0.11.0-1PGSTY~bookworm_amd64.deb
| PIGSTY 0.11.0 d12.x86_64.pg17 : postgresql-17-clickhouse postgresql-17-clickhouse_0.11.0-1PGSTY~bookworm_amd64.deb
| PIGSTY 0.11.0 d12.x86_64.pg16 : postgresql-16-clickhouse postgresql-16-clickhouse_0.11.0-1PGSTY~bookworm_amd64.deb
| PIGSTY 0.11.0 d12.x86_64.pg15 : postgresql-15-clickhouse postgresql-15-clickhouse_0.11.0-1PGSTY~bookworm_amd64.deb
| PIGSTY 0.11.0 d12.x86_64.pg14 : postgresql-14-clickhouse postgresql-14-clickhouse_0.11.0-1PGSTY~bookworm_amd64.deb
|
| d12.aarch64 | PIGSTY 0.11.0 d12.aarch64.pg18 : postgresql-18-clickhouse postgresql-18-clickhouse_0.11.0-1PGSTY~bookworm_arm64.deb
| PIGSTY 0.11.0 d12.aarch64.pg17 : postgresql-17-clickhouse postgresql-17-clickhouse_0.11.0-1PGSTY~bookworm_arm64.deb
| PIGSTY 0.11.0 d12.aarch64.pg16 : postgresql-16-clickhouse postgresql-16-clickhouse_0.11.0-1PGSTY~bookworm_arm64.deb
| PIGSTY 0.11.0 d12.aarch64.pg15 : postgresql-15-clickhouse postgresql-15-clickhouse_0.11.0-1PGSTY~bookworm_arm64.deb
| PIGSTY 0.11.0 d12.aarch64.pg14 : postgresql-14-clickhouse postgresql-14-clickhouse_0.11.0-1PGSTY~bookworm_arm64.deb
|
| d13.x86_64 | PIGSTY 0.11.0 d13.x86_64.pg18 : postgresql-18-clickhouse postgresql-18-clickhouse_0.11.0-1PGSTY~trixie_amd64.deb
| PIGSTY 0.11.0 d13.x86_64.pg17 : postgresql-17-clickhouse postgresql-17-clickhouse_0.11.0-1PGSTY~trixie_amd64.deb
| PIGSTY 0.11.0 d13.x86_64.pg16 : postgresql-16-clickhouse postgresql-16-clickhouse_0.11.0-1PGSTY~trixie_amd64.deb
| PIGSTY 0.11.0 d13.x86_64.pg15 : postgresql-15-clickhouse postgresql-15-clickhouse_0.11.0-1PGSTY~trixie_amd64.deb
| PIGSTY 0.11.0 d13.x86_64.pg14 : postgresql-14-clickhouse postgresql-14-clickhouse_0.11.0-1PGSTY~trixie_amd64.deb
|
| d13.aarch64 | PIGSTY 0.11.0 d13.aarch64.pg18 : postgresql-18-clickhouse postgresql-18-clickhouse_0.11.0-1PGSTY~trixie_arm64.deb
| PIGSTY 0.11.0 d13.aarch64.pg17 : postgresql-17-clickhouse postgresql-17-clickhouse_0.11.0-1PGSTY~trixie_arm64.deb
| PIGSTY 0.11.0 d13.aarch64.pg16 : postgresql-16-clickhouse postgresql-16-clickhouse_0.11.0-1PGSTY~trixie_arm64.deb
| PIGSTY 0.11.0 d13.aarch64.pg15 : postgresql-15-clickhouse postgresql-15-clickhouse_0.11.0-1PGSTY~trixie_arm64.deb
| PIGSTY 0.11.0 d13.aarch64.pg14 : postgresql-14-clickhouse postgresql-14-clickhouse_0.11.0-1PGSTY~trixie_arm64.deb
|
| u22.x86_64 | PIGSTY 0.11.0 u22.x86_64.pg18 : postgresql-18-clickhouse postgresql-18-clickhouse_0.11.0-1PGSTY~jammy_amd64.deb
| PIGSTY 0.11.0 u22.x86_64.pg17 : postgresql-17-clickhouse postgresql-17-clickhouse_0.11.0-1PGSTY~jammy_amd64.deb
| PIGSTY 0.11.0 u22.x86_64.pg16 : postgresql-16-clickhouse postgresql-16-clickhouse_0.11.0-1PGSTY~jammy_amd64.deb
| PIGSTY 0.11.0 u22.x86_64.pg15 : postgresql-15-clickhouse postgresql-15-clickhouse_0.11.0-1PGSTY~jammy_amd64.deb
| PIGSTY 0.11.0 u22.x86_64.pg14 : postgresql-14-clickhouse postgresql-14-clickhouse_0.11.0-1PGSTY~jammy_amd64.deb
|
| u22.aarch64 | PIGSTY 0.11.0 u22.aarch64.pg18 : postgresql-18-clickhouse postgresql-18-clickhouse_0.11.0-1PGSTY~jammy_arm64.deb
| PIGSTY 0.11.0 u22.aarch64.pg17 : postgresql-17-clickhouse postgresql-17-clickhouse_0.11.0-1PGSTY~jammy_arm64.deb
| PIGSTY 0.11.0 u22.aarch64.pg16 : postgresql-16-clickhouse postgresql-16-clickhouse_0.11.0-1PGSTY~jammy_arm64.deb
| PIGSTY 0.11.0 u22.aarch64.pg15 : postgresql-15-clickhouse postgresql-15-clickhouse_0.11.0-1PGSTY~jammy_arm64.deb
| PIGSTY 0.11.0 u22.aarch64.pg14 : postgresql-14-clickhouse postgresql-14-clickhouse_0.11.0-1PGSTY~jammy_arm64.deb
|
| u24.x86_64 | PIGSTY 0.11.0 u24.x86_64.pg18 : postgresql-18-clickhouse postgresql-18-clickhouse_0.11.0-1PGSTY~noble_amd64.deb
| PIGSTY 0.11.0 u24.x86_64.pg17 : postgresql-17-clickhouse postgresql-17-clickhouse_0.11.0-1PGSTY~noble_amd64.deb
| PIGSTY 0.11.0 u24.x86_64.pg16 : postgresql-16-clickhouse postgresql-16-clickhouse_0.11.0-1PGSTY~noble_amd64.deb
| PIGSTY 0.11.0 u24.x86_64.pg15 : postgresql-15-clickhouse postgresql-15-clickhouse_0.11.0-1PGSTY~noble_amd64.deb
| PIGSTY 0.11.0 u24.x86_64.pg14 : postgresql-14-clickhouse postgresql-14-clickhouse_0.11.0-1PGSTY~noble_amd64.deb
|
| u24.aarch64 | PIGSTY 0.11.0 u24.aarch64.pg18 : postgresql-18-clickhouse postgresql-18-clickhouse_0.11.0-1PGSTY~noble_arm64.deb
| PIGSTY 0.11.0 u24.aarch64.pg17 : postgresql-17-clickhouse postgresql-17-clickhouse_0.11.0-1PGSTY~noble_arm64.deb
| PIGSTY 0.11.0 u24.aarch64.pg16 : postgresql-16-clickhouse postgresql-16-clickhouse_0.11.0-1PGSTY~noble_arm64.deb
| PIGSTY 0.11.0 u24.aarch64.pg15 : postgresql-15-clickhouse postgresql-15-clickhouse_0.11.0-1PGSTY~noble_arm64.deb
| PIGSTY 0.11.0 u24.aarch64.pg14 : postgresql-14-clickhouse postgresql-14-clickhouse_0.11.0-1PGSTY~noble_arm64.deb
|
| u26.x86_64 | PIGSTY 0.11.0 u26.x86_64.pg18 : postgresql-18-clickhouse postgresql-18-clickhouse_0.11.0-1PGSTY~resolute_amd64.deb
| PIGSTY 0.11.0 u26.x86_64.pg17 : postgresql-17-clickhouse postgresql-17-clickhouse_0.11.0-1PGSTY~resolute_amd64.deb
| PIGSTY 0.11.0 u26.x86_64.pg16 : postgresql-16-clickhouse postgresql-16-clickhouse_0.11.0-1PGSTY~resolute_amd64.deb
| PIGSTY 0.11.0 u26.x86_64.pg15 : postgresql-15-clickhouse postgresql-15-clickhouse_0.11.0-1PGSTY~resolute_amd64.deb
| PIGSTY 0.11.0 u26.x86_64.pg14 : postgresql-14-clickhouse postgresql-14-clickhouse_0.11.0-1PGSTY~resolute_amd64.deb
|
| u26.aarch64 | PIGSTY 0.11.0 u26.aarch64.pg18 : postgresql-18-clickhouse postgresql-18-clickhouse_0.11.0-1PGSTY~resolute_arm64.deb
| PIGSTY 0.11.0 u26.aarch64.pg17 : postgresql-17-clickhouse postgresql-17-clickhouse_0.11.0-1PGSTY~resolute_arm64.deb
| PIGSTY 0.11.0 u26.aarch64.pg16 : postgresql-16-clickhouse postgresql-16-clickhouse_0.11.0-1PGSTY~resolute_arm64.deb
| PIGSTY 0.11.0 u26.aarch64.pg15 : postgresql-15-clickhouse postgresql-15-clickhouse_0.11.0-1PGSTY~resolute_arm64.deb
| PIGSTY 0.11.0 u26.aarch64.pg14 : postgresql-14-clickhouse postgresql-14-clickhouse_0.11.0-1PGSTY~resolute_arm64.deb
|
构建
您可以使用 pig build 命令构建 pg_clickhouse 扩展的 RPM / DEB 包:
安装
您可以直接安装 pg_clickhouse 扩展包的预置二进制包,首先确保 PGDG 和 PIGSTY 仓库已经添加并启用:
使用 pig 或者是 apt/yum/dnf 安装扩展:
创建扩展:
用法
来源:
- pg_clickhouse v0.11.0 README
- pg_clickhouse v0.11.0 参考文档
- pg_clickhouse v0.11.0 教程
- pg_clickhouse v0.11.0 变更日志
- pg_clickhouse v0.11.0 控制文件
- 0.10 to 0.11 upgrade SQL
pg_clickhouse 0.11.0 通过 clickhouse_fdw 外部数据封装器把 ClickHouse 表暴露给 PostgreSQL。上游面向 PostgreSQL 14 及以上版本与 ClickHouse 23.3 及以上版本;软件包可用性另行记录。正常使用无需预加载;session_preload_libraries 与 shared_preload_libraries 只是可选的连接启动优化。
连接 PostgreSQL 与 ClickHouse
必填的 driver 选项可取 binary 或 http。常用服务器选项包括 host、port、dbname、compression、secure 与 min_tls_version;用户映射接受 user 和 password。0.11 版本删除了 fetch_size,两个驱动均流式处理 Native 格式。
IMPORT FOREIGN SCHEMA 支持 LIMIT TO (...) 与 EXCEPT (...)。导入的混合大小写标识符会保留引号,引用时必须使用匹配的引号。
查询与写入外部表
SELECT、EXPLAIN、预备语句、INSERT 与 COPY 都可作用于外部表。在 0.10 版本中,二进制驱动以有界的 64 MiB 批次刷新写入,因此 COPY 已不再只是展开成逐行语句。使用 EXPLAIN (VERBOSE) 检查远端 SQL,并确认哪些过滤、连接、聚合与函数发生了下推。
直接查询与命令 API
0.10 版本新增了带类型的任意查询与命令接口:
clickhouse_query(server, sql) 按调用方提供的列定义返回行,而 clickhouse_perform(server, sql) 会丢弃结果。两者都能执行任意远端 SQL,因此 EXECUTE 已从 PUBLIC 撤销,只应按最小范围授权。0.11 已删除 clickhouse_raw_query(),须迁移到这两个接口。
下推与会话设置
0.10 版本扩展了聚合与函数下推,改善了本地分区和外部分区混合场景下的聚合执行,并修复了多处 PostgreSQL NULL 语义差异。子查询下推要求 ClickHouse 25.8 或以上版本;旧服务器会在本地计算这些子查询。
默认的 pg_clickhouse.session_settings 保持与 PostgreSQL 兼容的行为,其中包括 join_use_nulls = 1、group_by_use_nulls = 1、final = 1 与 transform_null_in = 0。覆盖它时,应保留工作负载所需的设置,尤其是安全下推 IN 所必需的 transform_null_in = 0。
升级与运维边界
扩展 SQL 版本为 0.11,pgch_version() 返回库版本 0.11.0。安装匹配文件后须执行 ALTER EXTENSION,从 SQL 目录中移除废弃函数。
把 pg_clickhouse 放入 session_preload_libraries 时,新会话会自动加载它;放入 shared_preload_libraries 时,更换动态库需要重启 PostgreSQL。与需要注册 postmaster 钩子的扩展不同,这两个设置都不是强制要求。
文档化的写入接口仍不包括轻量级 UPDATE 与 DELETE。应把直接远端 SQL 视为特权操作,使用贴近生产的数据验证 NULL 与类型相关的下推,并在依赖受版本约束的优化前核对 PostgreSQL 和 ClickHouse 版本。
0.11 默认拒绝来自 ClickHouse 的无效数据库编码文本或 JSON。服务器选项 encoding_check 可取 fail、replace、remove 或 truncate;后三者会改变返回数据,应按业务语义明确选择。导入类型还改进了大整数、时间间隔以及数组、Tuple、Map、Nested 的映射;已有外部表定义不会自动随推断规则变化,应逐列核对。
这个页面对您有帮助吗?
感谢反馈,我们会据此改进这篇文档。
哪里没有解决?(可选)