Expand description
Apache Paimon DataFusion Integration.
Register a Paimon table as a DataFusion table provider to query it with SQL or DataFrame API.
§Example
ⓘ
use std::sync::Arc;
use datafusion::prelude::SessionContext;
use paimon_datafusion::PaimonTableProvider;
// Obtain a Paimon Table (e.g. from your catalog), then:
let provider = PaimonTableProvider::try_new(table)?;
let ctx = SessionContext::new();
ctx.register_table("my_table", Arc::new(provider))?;
let df = ctx.sql("SELECT * FROM my_table").await?;This version supports partition predicate pushdown by extracting translatable partition-only conjuncts from DataFusion filters.
Modules§
Structs§
- Paimon
Catalog Provider - Provides an interface to manage and access multiple schemas (databases)
within a Paimon
Catalog. - Paimon
Relation Planner - A
RelationPlannerthat interceptsVERSION AS OFandTIMESTAMP AS OFclauses on Paimon tables and resolves them to time travel options. - Paimon
Schema Provider - Represents a
SchemaProviderfor the PaimonCatalog, managing access to table providers within a specific database. - Paimon
SqlHandler - Wraps a
SessionContextand a PaimonCatalogto handle DDL statements that DataFusion does not natively support (e.g. ALTER TABLE). - Paimon
Table Provider - Read-only table provider for a Paimon table.
- Paimon
Table Scan - Execution plan that scans a Paimon table with optional column projection.
Functions§
- to_
datafusion_ error - Converts a Paimon error into a DataFusion error.