Snowflake-Labs/pg_lake
pg_lake: Postgres with Iceberg and data lake access
它解决了什么问题
pg_lake 允许你将 PostgreSQL 用作完整的湖仓一体系统。它弥合了传统数据库表与现代数据湖格式之间的差距,使你能够使用标准 SQL 存储、查询和修改位于对象存储(如 S3)中的数据,同时保持事务完整性。
它是如何工作的
它采用模块化架构,由 PostgreSQL 扩展和一个名为 pgduck_server 的独立进程组成。当你运行查询时,系统会在 PostgreSQL 和 DuckDB 之间协调工作。PostgreSQL 处理元数据、事务和 SQL 规划,而高性能的 DuckDB 引擎则执行数据扫描和计算等繁重工作。这种分离使得对外部文件的查询能够快速并行执行,而不会影响 Postgres 实例的稳定性。
适用人群
本项目面向数据工程师和开发人员,他们希望在不离开熟悉的 PostgreSQL 环境的情况下,使用 Iceberg、Parquet 或 JSON 等格式处理大规模数据。对于需要在单一事务性 SQL 界面中结合本地数据库表和外部数据湖文件的团队来说,这是理想的选择。
亮点
- 完全支持直接从 SQL 创建和修改 Apache Iceberg 表。
- 与对象存储(S3)无缝集成,支持以 Parquet、CSV 和 JSON 格式导入和导出数据。
- 能够在同一查询中组合本地堆表、Iceberg 表和原始文件。
- 自动推断外部数据源的 schema。
- 由 DuckDB 引擎驱动的高性能查询执行。
- 通过 GDAL 支持地理空间格式,并内置 map 类型以处理半结构化数据。
相关
- 项目
- 项目
- 项目
- 项目