--- warning: DO NOT CHANGE THIS MANUALLY, THIS IS GENERATED BY https://github.com/duckdb/community-extensions repository, check README there title: paimon excerpt: | DuckDB Community Extensions Query Apache Paimon tables directly from DuckDB extension: name: paimon description: Query Apache Paimon tables directly from DuckDB version: 0.1.3 language: C++ build: cmake license: Apache-2.0 excluded_platforms: "linux_amd64_gcc4;linux_amd64_musl;osx_amd64;windows_amd64;windows_amd64_mingw;windows_amd64_rtools;windows_arm64;windows_arm64_mingw;wasm_mvp;wasm_eh;wasm_threads" maintainers: - mrdrivingduck repo: github: polardb/duckdb-paimon andium: 37f984782c17df9e7a1abbd04548eaf97866156b variegata: dbaf0f1b39b78a8f2043a70450d2441c7c69aa5e ref: 6762e34b3f805f00511e5a21c6a04c9c9a904f35 docs: hello_world: | INSTALL paimon FROM community; LOAD paimon; -- Query a local Paimon warehouse as a catalog ATTACH './data' AS local_paimon (TYPE paimon); SELECT count(*) FROM local_paimon.testdb.testtbl; -- Or scan one table without attaching the warehouse SELECT * FROM paimon_scan('./data/testdb.db/testtbl'); -- Configure credentials for remote object storage CREATE SECRET my_oss ( TYPE paimon, PROVIDER config, key_id 'your-access-key-id', secret 'your-access-key-secret', endpoint 'oss-cn-hangzhou.aliyuncs.com', scope 'oss://your-bucket/warehouse' ); -- Attach and query a remote Paimon warehouse ATTACH 'oss://your-bucket/warehouse' AS oss_paimon (TYPE paimon); SELECT count(*) FROM oss_paimon.your_db.your_table; -- Inspect the snapshots available for a Paimon table SELECT snapshot_id, commit_time FROM paimon_snapshots('./data/testdb.db/testtbl'); -- Query a specific snapshot SELECT * FROM paimon_scan('./data/testdb.db/testtbl', snapshot_from_id=2); extended_description: | The Paimon extension lets DuckDB read and query Apache Paimon tables directly. Apache Paimon is a lake format for realtime lakehouse workloads with Flink and Spark. **Capabilities:** - Read Paimon tables from local filesystems and remote object storage. - Create append-only tables and insert data, plus create and drop schemas and tables through an attached catalog. - Attach filesystem or REST catalogs, or scan a single table with `paimon_scan`. - Inspect snapshot history and query a historical snapshot by ID or timestamp. - Push projections and predicates down to reduce the data read. - Zero JVM dependency — Pure C++ implementation - Apache Arrow data exchange for zero-copy transfers and parallel scans across DuckDB threads. - Use scoped DuckDB Secrets for Alibaba Cloud OSS or Amazon S3 credentials. Remote filesystem warehouses support Alibaba Cloud OSS and Amazon S3. Configure S3 with DuckDB's credential chain or static credentials; remote object storage catalogs are currently read-only. Paimon REST catalogs can be attached with `METASTORE 'rest'`, the catalog server URI, and an access token. Built on [paimon-cpp](https://github.com/apache/paimon-cpp), the extension brings DuckDB's local analytics to the Paimon data lake ecosystem. For more information, visit the [extension repository](https://github.com/polardb/duckdb-paimon). extension_star_count: 49 extension_star_count_pretty: 49 extension_download_count: 12285 extension_download_count_pretty: 12.3k image: '/images/community_extensions/social_preview/preview_community_extension_paimon.png' layout: community_extension_doc --- ### Compatibility Matrix This table covers all DuckDB releases that have not reached [end-of-life](https://duckdb.org/release_calendar), including LTS releases, and shows the 2 most recent patch releases of each. Older patch releases are not listed, but the extension may be available for them as well.
| Platform | 1.4.4 | 1.4.5 | 1.5.5 | 1.5.6 | 2.0.0 | | :--- | :---: | :---: | :---: | :---: | :---: | | Linux AMD64 | ❌ | ✅ | ✅ | ✅ | ✅ | | Linux ARM64 | ❌ | ✅ | ✅ | ✅ | ✅ | | macOS AMD64 | ❌ | ❌ | ❌ | ❌ | ❌ | | macOS ARM64 | ❌ | ✅ | ✅ | ✅ | ✅ | | Windows AMD64 | ❌ | ❌ | ❌ | ❌ | ❌ | | Windows ARM64 | ❌ | ❌ | ❌ | ❌ | ❌ | | WebAssembly | ❌ | ❌ | ❌ | ❌ | ❌ | ### Installing and Loading ```sql INSTALL {{ page.extension.name }} FROM community; LOAD {{ page.extension.name }}; ``` {% if page.docs.hello_world %} ### Example ```sql {{ page.docs.hello_world }}``` {% endif %} {% if page.docs.extended_description %} ### About {{ page.extension.name }} {{ page.docs.extended_description }} {% endif %} ### Added Functions
| function_name | function_type | description | comment | examples | |------------------|---------------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|---------|--------------------------------------------------------------------------------------------------------------------------------------| | paimon_scan | table | Read a Paimon table, optionally at a historical snapshot using either snapshot_from_id or snapshot_from_timestamp, but not both. manifest_format and file_format are deprecated; formats are detected from the table schema. debug_expected_splits is for testing only. | NULL | [SELECT * FROM paimon_scan('./data', 'testdb', 'testtbl');] | | paimon_scan | table | Read a Paimon table, optionally at a historical snapshot using either snapshot_from_id or snapshot_from_timestamp, but not both. manifest_format and file_format are deprecated; formats are detected from the table schema. debug_expected_splits is for testing only. | NULL | [SELECT * FROM paimon_scan('./data/testdb.db/testtbl');, SELECT * FROM paimon_scan('./data/testdb.db/testtbl', snapshot_from_id=2);] | | paimon_snapshots | table | List a Paimon table's snapshots, including snapshot IDs, commit times and record counts. manifest_format is deprecated; the format is detected from the table schema. | NULL | [SELECT * FROM paimon_snapshots('./data', 'testdb', 'testtbl');] | | paimon_snapshots | table | List a Paimon table's snapshots, including snapshot IDs, commit times and record counts. manifest_format is deprecated; the format is detected from the table schema. | NULL | [SELECT * FROM paimon_snapshots('./data/testdb.db/testtbl');] | ### Overloaded Functions
This extension does not add any function overloads. ### Added Types
This extension does not add any types. ### Added Settings
| name | description | input_type | scope | aliases | typed_value | |----------------|---------------------------------------------------------|------------|--------|---------|-------------| | temp_directory | Set the directory to which temporary files are written. | VARCHAR | GLOBAL | [] | post.db.tmp |