DuckDB DuckLake

1 hour ago 3

DuckLake는 SQL과 Parquet 기반의 개방형 레이크하우스 형식이며, DuckDB 확장을 통해 데이터를 직접 읽고 쓸 수 있음 메타데이터는 카탈로그 데이터베이스, 실제 데이터는 Parquet 파일에 나누어 저장함 DuckLake 데이터베이스를 ATTACH 로 연결하면 표준 SQL로 테이블을 생성하고 데이터를 삽입, 수정, 조회할 수 있음 타임 트래블로 특정 버전의 데이터를 조회하고, 스키마 변경으로 기존 테이블에 열을 추가할 수 있음 변경 데이터 피드를 통해 지정한 스냅샷 범위의 변경 내역을 스냅샷 ID, 행 ID, 변경 유형과 함께 조회할 수 있음 SQL과 Parquet 기반 저장 구조 DuckLake는 SQL과 Parquet 위에 구축한 개방형 레이크하우스 형식임 메타데이터는 카탈로그 데이터베이스에 저장함 실제 데이터는 Parquet 파일에 저장함 DuckLake 확장은 DuckDB에서 직접 읽기와 쓰기를 지원하며, 추가 정보는 DuckLake 웹사이트에서 확인할 수 있음 연결과 표준 SQL 작업 DuckLake 데이터베이스는 ATTACH로 연결하며, 이후 표준 SQL로 테이블을 생성, 수정, 조회할 수 있음 사용 예제는 메타데이터를 metadata.ducklake 라는 DuckDB 데이터베이스 파일에, 데이터를 file_path 디렉터리의 Parquet 파일에 저장함 연결 별칭은 my_ducklake이며, id INTEGER, val VARCHAR 열을 가진 my_table을 생성함 (1, 'Hello'), (2, 'World')를 삽입한 뒤, UPDATE로 id=2인 행의 값을 DuckLake로 변경함 전체 사용법은 사용 가이드에서 확인할 수 있음 과거 버전, 스키마 변경, 변경 내역 조회 타임 트래블은 AT (VERSION => 2)처럼 버전을 지정해 과거 데이터를 조회함 예제에서는 수정 전 값인 World가 포함된 버전 2의 데이터를 반환함 스키마 변경은 ALTER TABLE ... ADD COLUMN으로 수행함 예제에서 new_column VARCHAR를 추가하면 기존 두 행의 새 열 값은 NULL임 변경 데이터 피드는 my_ducklake.table_changes('my_table', 2, 2)처럼 호출함 예제 결과는 스냅샷 2에서 삽입된 두 행을 반환하며, snapshot_id, rowid, change_type과 실제 데이터 열을 포함함 두 행의 change_type은 inser...

Read Entire Article