pg_lake_iceberg
Overview
| Package | Version | Category | License | Language |
|---|---|---|---|---|
pg_lake | 3.5 | OLAP | Apache-2.0 | C |
| ID | Extension | Bin | Lib | Load | Create | Trust | Reloc | Schema |
|---|---|---|---|---|---|---|---|---|
| 2560 | pg_lake | Yes | Yes | Yes | Yes | No | No | lake |
| 2561 | pg_extension_base | No | Yes | Yes | Yes | No | No | extension_base |
| 2562 | pg_extension_updater | No | Yes | Yes | Yes | No | No | extension_updater |
| 2563 | pg_map | No | Yes | No | Yes | No | No | map_type |
| 2564 | pg_lake_engine | No | Yes | Yes | Yes | No | No | __lake__internal__nsp__ |
| 2565 | pg_lake_iceberg | No | Yes | No | Yes | No | No | lake_iceberg |
| 2566 | pg_lake_table | No | Yes | Yes | Yes | No | No | __pg_lake_table_writes |
| 2567 | pg_lake_copy | No | Yes | Yes | Yes | No | No | pg_catalog |
| Related | pg_lake_engine plpgsql pg_ducklake pg_parquet pg_duckdb aws_s3 file_fdw pg_bulkload duckdb_fdw pg_mooncake pg_fact_loader pg_clickhouse |
|---|---|
| Depended By | pg_lake_copy pg_lake_table |
Iceberg component. Package 3.5.3; SQL 3.5.
Version
| Type | Repo | Version | PG Ver | Package | Deps |
|---|---|---|---|---|---|
| EXT | PIGSTY | 3.5 | 1817161514 | pg_lake | pg_lake_engine, plpgsql |
| RPM | PIGSTY | 3.5.3 | 1817161514 | pg_lake_$v | - |
| DEB | PIGSTY | 3.5.3 | 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.5.3 | PIGSTY 3.5.3 | PIGSTY 3.5.3 | N/A | N/A |
| el9.aarch64 | PIGSTY 3.5.3 | PIGSTY 3.5.3 | PIGSTY 3.5.3 | N/A | N/A |
| el10.x86_64 | PIGSTY 3.5.3 | PIGSTY 3.5.3 | PIGSTY 3.5.3 | N/A | N/A |
| el10.aarch64 | PIGSTY 3.5.3 | PIGSTY 3.5.3 | PIGSTY 3.5.3 | N/A | N/A |
| d12.x86_64 | PIGSTY 3.5.3 | PIGSTY 3.5.3 | PIGSTY 3.5.3 | N/A | N/A |
| d12.aarch64 | PIGSTY 3.5.3 | PIGSTY 3.5.3 | PIGSTY 3.5.3 | N/A | N/A |
| d13.x86_64 | PIGSTY 3.5.3 | PIGSTY 3.5.3 | PIGSTY 3.5.3 | N/A | N/A |
| d13.aarch64 | PIGSTY 3.5.3 | PIGSTY 3.5.3 | PIGSTY 3.5.3 | N/A | N/A |
| u22.x86_64 | PIGSTY 3.5.3 | PIGSTY 3.5.3 | PIGSTY 3.5.3 | N/A | N/A |
| u22.aarch64 | PIGSTY 3.5.3 | PIGSTY 3.5.3 | PIGSTY 3.5.3 | N/A | N/A |
| u24.x86_64 | PIGSTY 3.5.3 | PIGSTY 3.5.3 | PIGSTY 3.5.3 | N/A | N/A |
| u24.aarch64 | PIGSTY 3.5.3 | PIGSTY 3.5.3 | PIGSTY 3.5.3 | N/A | N/A |
| u26.x86_64 | PIGSTY 3.5.3 | PIGSTY 3.5.3 | PIGSTY 3.5.3 | N/A | N/A |
| u26.aarch64 | PIGSTY 3.5.3 | PIGSTY 3.5.3 | PIGSTY 3.5.3 | N/A | N/A |
Build
You can build the RPM / DEB packages for pg_lake using pig build:
Install
You can install pg_lake directly. First, make sure the PGDG and PIGSTY repositories are added and enabled:
Install the extension using pig or apt/yum/dnf:
Create Extension:
Usage
Sources:
- Official Iceberg table guide
- Version 3.5 control file
- Iceberg metadata SQL API
- Version 3.4 catalog FDW SQL
pg_lake_iceberg implements Iceberg metadata, snapshots, manifests, partition specifications, and catalog integration inside PostgreSQL. The familiar CREATE TABLE ... USING iceberg syntax is exposed by the dependent pg_lake_table component; users normally install both through pg_lake.
The pg_lake release and package version is 3.5.3; the SQL extension version is 3.5. Keep the libraries and query server from the same release.
Create and Inspect an Iceberg Table
Inspect an Iceberg metadata file and its referenced state:
Metadata and Catalog API
iceberg_tables:pg_catalogview combining local managed tables and external catalog entries.iceberg_namespace_properties: catalog namespace properties.lake_iceberg.metadata(uri): raw Iceberg metadata JSON.lake_iceberg.files(uri): manifest path, content kind, data-file path/format, spec ID, record count, and file size.lake_iceberg.snapshots(uri): sequence number, snapshot ID, timestamp, and manifest-list path.lake_iceberg.data_file_stats(uri): per-file sequence and lower/upper bounds; execution is granted tolake_readrather thanPUBLIC.iceberg_catalog: version 3.4 FDW for named PostgreSQL, object-store, or REST catalog configurations.
Define a user-managed REST catalog server and keep credentials in a user mapping:
Catalog and Storage Caveats
- User-created catalog servers require their own
USER MAPPINGcredentials and do not fall back to the built-in REST catalog credential GUCs. - The built-in
postgres,object_store, andrestcatalogs map to immutable extension-owned servers. Configure them through the documented GUCs rather than altering those servers. - External modifications to
iceberg_tablesare blocked by default because changing metadata behind pg_lake can break transaction and query-engine consistency. - Iceberg writes should be batched. Each statement can add Parquet files and snapshots; regular
VACUUMcompacts small files and expires data according to table/GUC policy. - Iceberg has narrower representations for some PostgreSQL values. The default
out_of_range_values = 'error'preserves integrity;clampsilently changes out-of-range temporal values and replaces some unsupported values withNULL.
The 3.4 to 3.5 Iceberg SQL migration is empty, while patch-level catalog and object-deletion fixes require the matching 3.5.3 binaries.
Was this page helpful?
Thanks—your feedback helps us improve this page.
What got in the way? (optional)