pg_analytics
Postgres for analytics, powered by DuckDB
	Module:
Categories:
Overview
PIGSTY 3rd Party Extension:  pg_analytics : Postgres for analytics, powered by DuckDB
Information
- Extension ID: 2420
- Extension Name: pg_analytics
- Package Name: pg_analytics
- Category: OLAP
- License: PostgreSQL
- Website: https://github.com/paradedb/pg_analytics
- Language: Rust
- Extra Tags: pgrx,duckdb
- Comment:
Metadata
- Latest Version: 0.3.7
- Postgres Support: 17,16,15,14
- Need Load: Shared library do not need explicit loading
- Need DDL:  Need CREATE EXTENSIONDDL
- Relocatable: Can be installed into other schemas
- Trusted:  Trusted, Can be created by user with CREATEPrivilege
- Schemas: paradedb
- Requires: N/A
RPM / DEB
- RPM Repo: PIGSTY
- RPM Name: pg_analytics_$v
- RPM Ver : 0.3.7
- RPM Deps: N/A
- DEB Repo: PIGSTY
- DEB Name: postgresql-$v-pg-analytics
- DEB Ver : 0.3.7
- DEB Deps: N/A
Availability
Installation
Install pg_analytics via the pig CLI tool:
pig ext install pg_analytics
Install pg_analytics via Pigsty playbook:
./pgsql.yml -t pg_extension -e '{"pg_extensions": ["pg_analytics"]}' # -l <cls>
Install pg_analytics RPM from YUM repo directly:
dnf install pg_analytics_17;
dnf install pg_analytics_16;
dnf install pg_analytics_15;
dnf install pg_analytics_14;
Install pg_analytics DEB from APT repo directly:
apt install postgresql-17-pg-analytics;
apt install postgresql-16-pg-analytics;
apt install postgresql-15-pg-analytics;
apt install postgresql-14-pg-analytics;
Create pg_analytics extension on PostgreSQL cluster:
CREATE EXTENSION pg_analytics;
Usage
https://github.com/paradedb/pg_analytics
Example, read parquet file from S3:
CREATE EXTENSION pg_lakehouse;
CREATE FOREIGN DATA WRAPPER parquet_wrapper HANDLER parquet_fdw_handler VALIDATOR parquet_fdw_validator;
-- Provide S3 credentials
CREATE SERVER parquet_server FOREIGN DATA WRAPPER parquet_wrapper;
-- Create foreign table with auto schema creation
CREATE FOREIGN TABLE trips ()
SERVER parquet_server
OPTIONS (files 's3://paradedb-benchmarks/yellow_tripdata_2024-01.parquet');
-- Success! Now you can query the remote Parquet file like a regular Postgres table
SELECT COUNT(*) FROM trips;
  count
---------
 2964624
(1 row)
This fdw is read-only for now.
Iceberg Support
CREATE EXTENSION pg_lakehouse;
CREATE FOREIGN DATA WRAPPER iceberg_wrapper
    HANDLER iceberg_fdw_handler
    VALIDATOR iceberg_fdw_validator;
CREATE SERVER iceberg_server
    FOREIGN DATA WRAPPER iceberg_wrapper;
-- Replace the dummy schema with the actual schema
CREATE FOREIGN TABLE iceberg_table (x INT)
    SERVER iceberg_server
    OPTIONS (files 's3://bucket/iceberg_folder');
-- Success! You can now query the Iceberg table
SELECT COUNT(*) FROM iceberg_table;
Feedback
Was this page helpful?
Glad to hear it! Please tell us how we can improve.
Sorry to hear that. Please tell us how we can improve.