DuckDB v2.0 “Cyanoptera” 미리보기

2 hours ago 2

v1.5 이후 10,000개 이상의 커밋을 반영한 DuckDB v2.0 “Cyanoptera” 는 인프로세스 분석 DB를 네트워크 서버와 장기 실행 서비스로 확장함 안정화된 Quack 프로토콜과 CONNECT 문을 통해 다른 DuckDB·PostgreSQL·MySQL에서 쿼리를 원격 실행하고 결과만 스트리밍할 수 있음 VARIANT, 트리거, NEAREST 조인, CTE 내부 DML을 추가하고 비동기 I/O와 파티션 인식 최적화로 원격 저장소 및 기존 쿼리 성능을 높임 새 기본 저장 형식과 PEG 기반 SQL 파서, ICU 없는 시간대·콜레이션 구현을 도입하며, 재귀 CTE 예제는 v1.5.4의 4.90초에서 v2.0 미리보기의 0.12초로 약 40배 빨라짐 확장을 안정적 C API로 한 번 빌드해 여러 DuckDB 버전에서 사용하고 자체 서명 저장소로 배포할 수 있지만, 기본 저장 형식과 lambda 문법 전환 등 일부 호환성 변경이 예정돼 있음 DuckDB를 서버로 만드는 Quack와 CONNECT quack 확장은 DuckDB끼리 통신하는 네이티브 프로토콜로, v2.0에서 안정 버전으로 전환됨 모든 DuckDB 프로세스가 데이터베이스를 네트워크로 제공할 수 있음 다른 DuckDB는 ATTACH 후 CONNECT로 세션을 원격 DB에 연결하며, 쿼리는 서버에서 실행되고 결과만 스트리밍됨 CONNECT는 초기의 remote.query($$...$$) 방식을 대체하며 Quack에만 한정되지 않음 새 원격 푸시다운 최적화기는 PostgreSQL과 MySQL 테이블을 네트워크로 가져오는 대신 SQL을 해당 서버에 직접 전송함 DuckDB는 처음부터 완전한 MVCC와 트랜잭션 격리를 갖춘 다중 연결 트랜잭션 DB였으며, 클라이언트/서버 구조를 통해 다중 테넌트·장기 실행 배포에서도 이를 활용할 수 있음 장기 실행 인스턴스의 실제 상태를 파악할 수 있도록 메트릭, 로그, 관측 가능성도 강화됨 스키마 없는 반정형 데이터를 위한 VARIANT v1.5에서 도입된 VARIANT는 행마다 구조가 다른 데이터를 저장하면서도 텍스트 JSON과 달리 공통 구조를 자동 감지해 분해 저장(shredding) 함 스키마 선언 없이 압축률과 쿼리 실행 성능을 높임 구조가 시간에 따라 변하는 실시간 JSON 형태의 로그 수집에 적합함 v2.0은 저장소에서 분해된 데이터를 직접 실행하고, 추출 조건을 스캔으로 푸시다운하며, Parquet의 ...

Read Entire Article