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을 통한 지리공간 형식 지원 및 반정형 데이터를 위한 내장 맵 유형.

관련

  • 프로젝트
  • 프로젝트
  • 프로젝트
  • 프로젝트