pg_lake_copy
概览
| 扩展包名 | 版本 | 分类 | 许可证 | 语言 |
|---|---|---|---|---|
pg_lake | 3.4 | OLAP | Apache-2.0 | C |
| ID | 扩展名 | Bin | Lib | Load | Create | Trust | Reloc | 模式 |
|---|---|---|---|---|---|---|---|---|
| 2560 | pg_lake | 是 | 是 | 是 | 是 | 否 | 否 | lake |
| 2561 | pg_extension_base | 否 | 是 | 是 | 是 | 否 | 否 | extension_base |
| 2562 | pg_extension_updater | 否 | 是 | 是 | 是 | 否 | 否 | extension_updater |
| 2563 | pg_map | 否 | 是 | 否 | 是 | 否 | 否 | map_type |
| 2564 | pg_lake_engine | 否 | 是 | 是 | 是 | 否 | 否 | __lake__internal__nsp__ |
| 2565 | pg_lake_iceberg | 否 | 是 | 否 | 是 | 否 | 否 | lake_iceberg |
| 2566 | pg_lake_table | 否 | 是 | 是 | 是 | 否 | 否 | __pg_lake_table_writes |
| 2567 | pg_lake_copy | 否 | 是 | 是 | 是 | 否 | 否 | pg_catalog |
| 相关扩展 | pg_lake_engine pg_lake_iceberg pg_lake_table |
|---|---|
| 下游依赖 | pg_lake |
pg_extension_base auto-loads pg_lake_engine, pg_lake_iceberg, pg_lake_table, and pg_lake_copy in dependency order. Extension SQL/control version is 3.4; source and DEB/RPM package version is 3.4.0.
版本
| 类型 | 仓库 | 版本 | PG 大版本 | 包名 | 依赖 |
|---|---|---|---|---|---|
| EXT | PIGSTY | 3.4 | 1817161514 | pg_lake | pg_lake_engine, pg_lake_iceberg, pg_lake_table |
| RPM | PIGSTY | 3.4.0 | 1817161514 | pg_lake_$v | - |
| DEB | PIGSTY | 3.4.0 | 1817161514 | postgresql-$v-pg-lake | - |
| OS / PG | PG18 | PG17 | PG16 | PG15 | PG14 |
|---|---|---|---|---|---|
| el8.x86_64 | N/A | N/A | N/A | N/A | N/A |
| el8.aarch64 | N/A | N/A | N/A | N/A | N/A |
| el9.x86_64 | PIGSTY 3.4.0 | PIGSTY 3.4.0 | PIGSTY 3.4.0 | N/A | N/A |
| el9.aarch64 | PIGSTY 3.4.0 | PIGSTY 3.4.0 | PIGSTY 3.4.0 | N/A | N/A |
| el10.x86_64 | PIGSTY 3.4.0 | PIGSTY 3.4.0 | PIGSTY 3.4.0 | N/A | N/A |
| el10.aarch64 | PIGSTY 3.4.0 | PIGSTY 3.4.0 | PIGSTY 3.4.0 | N/A | N/A |
| d12.x86_64 | PIGSTY 3.4.0 | PIGSTY 3.4.0 | PIGSTY 3.4.0 | N/A | N/A |
| d12.aarch64 | PIGSTY 3.4.0 | PIGSTY 3.4.0 | PIGSTY 3.4.0 | N/A | N/A |
| d13.x86_64 | PIGSTY 3.4.0 | PIGSTY 3.4.0 | PIGSTY 3.4.0 | N/A | N/A |
| d13.aarch64 | PIGSTY 3.4.0 | PIGSTY 3.4.0 | PIGSTY 3.4.0 | N/A | N/A |
| u22.x86_64 | PIGSTY 3.4.0 | PIGSTY 3.4.0 | PIGSTY 3.4.0 | N/A | N/A |
| u22.aarch64 | PIGSTY 3.4.0 | PIGSTY 3.4.0 | PIGSTY 3.4.0 | N/A | N/A |
| u24.x86_64 | PIGSTY 3.4.0 | PIGSTY 3.4.0 | PIGSTY 3.4.0 | N/A | N/A |
| u24.aarch64 | PIGSTY 3.4.0 | PIGSTY 3.4.0 | PIGSTY 3.4.0 | N/A | N/A |
| u26.x86_64 | PIGSTY 3.4.0 | PIGSTY 3.4.0 | PIGSTY 3.4.0 | N/A | N/A |
| u26.aarch64 | PIGSTY 3.4.0 | PIGSTY 3.4.0 | PIGSTY 3.4.0 | N/A | N/A |
构建
您可以使用 pig build 命令构建 pg_lake 扩展的 RPM / DEB 包:
pig build pkg pg_lake # 构建 RPM / DEB 包
安装
您可以直接安装 pg_lake 扩展包的预置二进制包,首先确保 PGDG 和 PIGSTY 仓库已经添加并启用:
pig repo add pgsql -u # 添加仓库并更新缓存
使用 pig 或者是 apt/yum/dnf 安装扩展:
pig install pg_lake; # 当前活跃 PG 版本安装
pig ext install -y pg_lake -v 18 # PG 18
pig ext install -y pg_lake -v 17 # PG 17
pig ext install -y pg_lake -v 16 # PG 16
dnf install -y pg_lake_18 # PG 18
dnf install -y pg_lake_17 # PG 17
dnf install -y pg_lake_16 # PG 16
apt install -y postgresql-18-pg-lake # PG 18
apt install -y postgresql-17-pg-lake # PG 17
apt install -y postgresql-16-pg-lake # PG 16
预加载配置:
shared_preload_libraries = 'pg_extension_base';
创建扩展:
CREATE EXTENSION pg_lake_copy CASCADE; -- 依赖: pg_lake_engine, pg_lake_iceberg, pg_lake_table
用法
来源:
pg_lake_copy 扩展了 PostgreSQL COPY,使得查询、堆表、外部湖表和 Iceberg 表可以与本地路径、HTTP 端点以及配置的对象存储交换 Parquet、CSV 或换行符分隔的 JSON 文件。它通过钩子添加行为,并没有独立的 SQL 函数 API。
启用组件
正常的入口点会一起安装 pg_lake_copy 及其精确依赖项:
CREATE EXTENSION pg_lake CASCADE;
它的控制文件需要 pg_lake_engine、pg_lake_iceberg 和 pg_lake_table。部署还需要在 pg_extension_base 中安装 shared_preload_libraries,并运行一个正在运行的 pgduck_server。
导出和导入
格式可以从路径后缀推断或显式选择:
COPY (
SELECT event_id, event_time, payload
FROM events
WHERE event_time >= DATE '2026-07-01'
)
TO 's3://analytics-bucket/events/july.parquet'
WITH (format 'parquet');
COPY events_archive
FROM 's3://analytics-bucket/events/july.parquet'
WITH (format 'parquet');
CSV 和压缩输出使用标准看起来的 COPY 选项扩展为湖写入器:
COPY (SELECT * FROM daily_summary)
TO 's3://analytics-bucket/summary/daily.csv.gz'
WITH (format 'csv', header true, compression 'gzip');
目标可以是 PostgreSQL 堆表或 Iceberg 表;源也可以是安装的 pg_lake 堆栈支持的任何查询。
格式和运行时边界
- Parquet 是列式的,并保留了受支持的数据类型值;CSV 和换行符分隔的 JSON 有特定格式的推断和转换选项,这些选项在上游文档中有所说明。
- 对象存储访问通过
pgduck_server进行。其凭据链、网络访问以及桶权限必须允许请求的读取或写入。 COPY是一个语句,并参与外围的 PostgreSQL 事务,但远程文件和清理也依赖于 pg_lake 事务/队列机制。在重试大规模导出之前,请检查失败的操作和孤儿清理。- Version
3.4在pg_lake_copy中没有增加任何用户可见的 SQL 对象;其从3.3到3.4的升级脚本为空。