Qbeast, 데이터 레이크하우스 성능을 혁신하다!

by DD
1개월 전
조회수 4

Qbeast는 데이터 레이크하우스의 읽기 성능 최적화를 위해 설계된 공간 인덱싱 기술임

기존 인덱싱 방식과 달리 쓰기 성능 향상에 초점을 맞춰 데이터 레이아웃을 관리함

파티셔닝(Partitioning)Z-order 방식의 단점을 보완하여 데이터 분포 변화에 유연하게 대응함

OTree 인덱스(OTree Index)를 활용하여 데이터의 공간적 지역성(Spatial Locality)을 유지하고 쿼리 효율성을 높임

OTree 인덱스(OTree Index)의 작동 원리

Qbeast는 OTree 인덱스(OTree Index)를 사용하여 데이터 레이아웃을 관리하며, 이는 기존의 고정된 파티션 키나 정렬 순서 대신 데이터 분포에 따라 자동으로 세분화되는 하이퍼큐브(Hypercube)를 사용한다. 각 하이퍼큐브는 인덱싱된 열에 의해 정의된 다차원 공간의 영역을 나타내며, 데이터가 추가됨에 따라 적응적으로 세분화되어 데이터의 공간적 지역성(Spatial Locality)을 유지한다. 이러한 방식은 데이터의 분포 변화에 유연하게 대응하며, 불균형한 파티션을 방지한다.

Qbeast와 기존 인덱싱 방식 비교

Qbeast는 기존의 B-tree 인덱스Iceberg/Delta의 파티셔닝 및 정렬 방식의 단점을 보완한다. B-tree는 엄격한 키 순서로 모든 행의 위치를 결정하지만, 데이터 세트가 커지고 쿼리가 광범위해지면 비효율적이다. 반면, Iceberg/Delta는 가벼운 메타데이터를 사용하지만, 데이터의 분포 변화에 따라 레이아웃이 최적에서 벗어나는 문제가 있다. Qbeast는 이러한 단점을 보완하여 글로벌 트리 인덱스(Global Tree Index)를 사용하면서도 유연성을 유지한다.

Iceberg/Delta 통합 및 성능 향상

Qbeast는 Apache IcebergDelta Lake와 통합되어, 기존의 쿼리 엔진에 영향을 주지 않고 데이터 레이아웃을 최적화한다. Qbeast는 OTree 인덱스(OTree Index)를 사용하여 데이터의 위치를 결정하고, Iceberg/Delta는 데이터 파일과 메타데이터를 관리한다. 이러한 분리를 통해 쿼리 엔진은 Qbeast의 존재를 인식하지 못하며, 쓰기 작업 시 Qbeast 모듈을 사용하여 데이터 지역성(Data Locality)을 유지한다. 결과적으로, 기존의 읽기 시간 최적화를 더욱 효과적으로 만든다.

Qbeast의 기술적 특징 및 장점

Qbeast는 적응형 공간 구조(Adaptive Spatial Structure)를 통해 데이터 분포에 따라 자동으로 하이퍼큐브를 세분화하고 병합한다. 이는 불균형 파티션(Imbalanced Partitions)을 방지하고, 데이터의 밀집도에 따라 큐브의 크기를 조절하여 데이터 지역성(Data Locality)을 유지한다. 또한, Qbeast는 가벼운 메타데이터를 사용하여 저장 공간을 절약하고, 메모리 내에서 빠르게 접근할 수 있다. 이러한 특징들은 Qbeast가 데이터 레이크하우스 환경에서 쿼리 성능(Query Performance)을 향상시키는 데 기여한다.

Have your Iceberg Cubed, Not Sorted: Meet Qbeast, the OTree Spatial Index