Snowflake-Labs/pg_lake
pg_lake: Postgres with Iceberg and data lake access
解決する課題
pg_lake を使用すると、PostgreSQL を完全なレイクハウスシステムとして利用できます。従来のデータベーステーブルと最新のデータレイク形式の間のギャップを埋め、オブジェクトストレージ(S3 など)にあるデータを標準 SQL で保存、クエリ、変更できるようにし、トランザクションの整合性を維持します。
仕組み
PostgreSQL 拡張機能と pgduck_server と呼ばれる別のプロセスからなるモジュラーアーキテクチャを採用しています。クエリを実行すると、システムは PostgreSQL と DuckDB の間で処理を調整します。PostgreSQL はメタデータ、トランザクション、SQL プランニングを処理し、高性能な DuckDB エンジンがデータスキャンと計算の重い処理を実行します。この分離により、Postgres インスタンスの安定性を損なうことなく、外部ファイルに対する高速で並列化されたクエリが可能になります。
対象ユーザー
このプロジェクトは、使い慣れた PostgreSQL 環境から離れることなく、Iceberg、Parquet、JSON などの形式で大規模データを扱いたいデータエンジニアや開発者を対象としています。ローカルデータベーステーブルと外部データレイクファイルを単一のトランザクション SQL インターフェースで組み合わせる必要があるチームに最適です。
ハイライト
- SQL から直接 Apache Iceberg テーブルを作成および変更するための完全なサポート。
- オブジェクトストレージ(S3)とのシームレスな統合により、Parquet、CSV、JSON 形式でのデータのインポートおよびエクスポートが可能。
- 同じクエリ内でローカルヒープテーブル、Iceberg テーブル、および生ファイルを組み合わせる機能。
- 外部データソースのスキーマを自動推論。
- DuckDB エンジンによる高性能なクエリ実行。
- GDAL による地理空間形式のサポートと、半構造化データ用の組み込みマップ型。
関連
- プロジェクト
- プロジェクト
- プロジェクト
- プロジェクト