주요 컨텐츠로 이동

Delta Lake 3.0을 통해 새로운 Universal Format과 Liquid Clustering을 소개합니다

Delta Lake는 모든 데이터에 대한 분석과 AI를 통합하는 범용 스토리지 형식입니다
이 포스트 공유하기

우리는 Linux Foundation 오픈 소스 Delta Lake 프로젝트의 다음 주요 릴리즈인 델타 레이크 3.0을 지금 미리보기로 체험해 보실 수 있게 되어 기쁘게 생각합니다. 이번 릴리스에 귀중한 기여를 해주신 Delta Lake 커뮤니티에 진심으로 감사드립니다. Delta Lake 3.0에는 다음과 같은 강력한 기능이 도입되었습니다:

  • Delta Universal Format (UniForm)은 어플리케이션에 필요한 포맷으로 델타를 읽을 수 있게 하여 호환성을 개선하고 에코시스템을 확장합니다. Delta는 Apache Iceberg 또는 Apache Hudi에 필요한 메타데이터를 자동으로 생성하므로 사용자가 형식을 선택하거나 수동으로 변환할 필요가 없습니다. UniForm을 통해 Delta는 여러 에코시스템에서 작동하는 범용 포맷입니다.
  • Delta 커널은 델타 프로토콜 사양의 복잡한 세부 사항을 모두 숨기는 간단하고 좁은 프로그래밍 방식의 API를 제공하여 델타 커넥터 구축을 간소화합니다.
  • Liquid Clustering (출시예정)은 데이터가 증가함에 따라 비용 효율적인 클러스터링을 통해 최상의 쿼리 성능을 얻을 수 있도록 간소화합니다.

이 블로그에서는 델타 레이크 3.0의 기능을 통해 해결되는 고객 과제를 중심으로 자세히 살펴보겠습니다.

 

문제점 #1: 데이터 레이크하우스라는 아이디어는 마음에 드는데 어떤 스토리지 형식을 선택해야 하나요?

기업들은 데이터 웨어하우스와 데이터 레이크를 개방형 데이터 레이크하우스로 결합하는 데 관심이 많습니다. 이러한 움직임은 데이터를 독점적인 형식에 가두는 것을 방지하고, 단일 데이터 사본에 대해 적합한 작업에 적합한 도구를 사용할 수 있게 해줍니다. 하지만 단일 오픈 레이크하우스 형식으로 표준화할지 여부와 어떤 형식을 사용할지 결정하는 데 어려움을 겪습니다. 여러 팀에서 각각 선호하는 데이터 커넥터가 있는 여러 개의 기존 데이터 웨어하우스와 데이터 레이크를 사용하고 있을 수 있습니다. 고객은 단일 저장소 형식을 선택하면 그 자체로 종속될 것을 우려하며, 일방통행식 문을 통과하는 것에 대해 걱정합니다. 마이그레이션은 비용이 많이 들고 어렵기 때문에 미리 올바른 결정을 내리고 한 번만 수행하면 되기를 원합니다. 궁극적으로 ETL, BI, AI를 포함한 모든 데이터 워크로드에 대해 가장 저렴한 가격으로 최고의 성능을 구현하고, 어디서나 데이터를 사용할 수 있는 유연성을 원합니다.

해결방법: Delta UniForm은 자동으로 그리고 곧 바로 Delta Lake에서 Iceberg나 Hudi로 전환할 수 있게 합니다.

Delta Universal Format (UniForm)은 데이터 복사본을 추가로 만들거나 데이터 사일로를 더 만들지 않고도 테이블 형식을 자동으로 통합합니다. Iceberg 또는 Hudi 데이터로 작동하도록 설계된 쿼리 엔진을 사용하는 팀은 데이터를 복사하거나 변환할 필요 없이 델타 테이블을 원활하게 읽을 수 있습니다. Delta로 작성된 테이블은 Iceberg 및 Hudi 리더에서 보편적으로 액세스할 수 있으므로 고객은 단일 형식을 선택할 필요가 없습니다.

Dl

UniForm은 세 가지 개방형 레이크하우스 형식이 모두 Parquet 데이터 파일 위에 얇은 메타데이터 레이어로 구성되어 있다는 사실을 활용합니다. 쓰기가 이루어지면 UniForm은 Hudi, Iceberg 및 Delta에 맞게 사양을 지정하여 메타데이터 계층을 증분으로 생성합니다. 

dl.2

벤치마킹 결과, UniForm은 성능 및 리소스 오버헤드가 거의 발생하지 않는 것으로 나타났습니다. 또한, Z-order와 같은 Delta의 향상된 데이터 레이아웃 기능 덕분에 기본 Iceberg 테이블에 비해 UniForm 지원 테이블의 읽기 성능이 향상되는 것을 확인했습니다.

UniForm을 통해 고객은 Delta Lake를 선택하면 레이크하우스 형식을 지원하는 모든 툴에서 폭넓은 지원을 받을 수 있다는 사실을 알고 안심하고 Delta Lake를 선택할 수 있습니다.

"금융 서비스 업계의 협업과 혁신은 오픈 소스 커뮤니티와 우리가 FINOS와 협력하여 유지 관리하는 골드만삭스의 오픈 소스 데이터 플랫폼인 Legend와 같은 프로젝트에 의해 촉진됩니다."라고 골드만삭스의 최고 데이터 책임자 겸 데이터 엔지니어링 책임자인 니마 라파엘은 말합니다. "우리는 오랫동안 기술의 미래에 오픈 소스가 중요하다고 믿어 왔으며, 데이터브릭스가 델타 레이크에 계속 투자하는 것을 보게 되어 기쁩니다. 조직은 오픈 테이블 형식의 선택에 제한을 받아서는 안 되며, 델타 레이크의 범용 형식 지원은 전체 커뮤니티를 계속 발전시켜 나갈 것입니다."

 

문제점 #2: 최적의 성능을 위한 올바른 파티셔닝 키를 찾는 것은 골디락스 Goldilocks 문제입니다.

데이터 레이크하우스를 구축할 때, 현재 데이터 쿼리 패턴에 맞을 뿐만 아니라 시간이 지남에 따라 새로운 워크로드에 적응할 수 있는 일률적인 파티셔닝 전략을 마련하기는 어렵습니다. 데이터 레이아웃이 고정되어 있기 때문에 올바른 파티셔닝 전략을 선택하려면 팀에서 파티셔닝 전략에 대해 사전에 많은 신중한 고민과 계획을 세워야 합니다. 그리고 최선의 노력에도 불구하고 시간이 지남에 따라 쿼리 패턴이 변경되고 초기 파티셔닝 전략은 비효율적이고 비용이 많이 들게 됩니다. 파티션 진화 같은 기능은 Hive 스타일의 파티셔닝을 보다 유연하게 만드는 데 어느 정도 유용하지만, 테이블 소유자가 지속적으로 테이블을 모니터링하고 파티셔닝 열을 '진화'시켜야 합니다. 이러한 모든 단계는 엔지니어링 작업을 추가하며, 데이터에서 인사이트를 얻고자 하는 대부분의 사용자에게는 쉽지 않은 작업입니다. 또한, 최선의 노력에도 불구하고 시간이 지남에 따라 파티션 간 데이터 분포가 고르지 않게 되어 읽기/쓰기 성능에 직접적인 영향을 미칠 수 있습니다.

해결방법: Liquid의 유연한 데이터 레이아웃 기술은 현재와 향후 데이터 증가에 맞춰 스스로 조정할 수 있습니다.

Liquid Clustering 델타 테이블을 위한 스마트 데이터 관리 기법입니다. 유연하며 클러스터링 키를 기반으로 데이터 레이아웃을 자동으로 조정합니다. 리퀴드 클러스터링은 데이터 패턴을 기반으로 데이터를 동적으로 클러스터링하므로 Hive 파티셔닝에서 발생할 수 있는 파티셔닝 과잉 또는 부족 문제를 방지하는 데 도움이 됩니다.

  • Liquid는 간단합니다: 가장 자주 쿼리되는 열에 Liquid 클러스터링 키를 설정하면 되므로 열 카디널리티, 파티션 순서, 완벽한 파티션 키 역할을 하는 인위적인 열 생성 등 기존의 고려 사항에 대해 더 이상 걱정할 필요가 없습니다.
  • Liquid는 효율적입니다: 새로운 데이터를 점진적으로 클러스터링하므로 성능 향상과 비용/쓰기 증폭 감소 사이에서 절충할 필요가 없습니다.
  • Liquid는 유연합니다: 기존 데이터를 다시 작성하지 않고도 Liquid에서 클러스터링할 열을 빠르게 변경할 수 있습니다.

dl.3

Liquid의 성능을 테스트하기 위해 일반적인 1TB 데이터 웨어하우스 워크로드에 대한 벤치마크를 실행했습니다. 그 결과, Liquid 클러스터링은 Z-차수 대비 2.5배 빠른 클러스터링 속도를 보였습니다. 같은 실험에서, 기존의 Hive 스타일 파티셔닝은 많은 파티션을 쓰기 위해 많은 셔플이 필요하기 때문에 훨씬 더 느렸습니다. 또한, Liquid는 새로운 데이터가 수집될 때마다 점진적으로 클러스터링하여 일관되게 빠른 읽기 성능을 제공합니다.

 

문제점 #3: 어떤 커넥터의 우선순위를 정할지 결정하는 것은 integration을 제공하는 사람들에게 까다로운 일입니다.

Delta의 커넥터 에코시스템은 포맷의 빠른 채택에 맞춰 대규모로 성장하고 있습니다. 엔진 통합업체와 개발자는 오픈 소스 스토리지 포맷을 위한 커넥터를 구축할 때 어떤 포맷에 우선순위를 둘지 결정해야 합니다. 모든 새로운 프로토콜 사양에는 새로운 코드가 필요하기 때문에 유지보수 시간과 비용과 엔지니어링 리소스 간의 균형을 맞춰야 합니다.

해결방법: 커널은 커넥터 에코시스템을 통합합니다.

Delta Kernel은 복잡한 델타 프로토콜 세부 사항을 모두 숨긴 간소화되고 좁고 안정적인 프로그래매틱 API를 제공하는 새로운 이니셔티브입니다. 커널을 통해 커넥터 개발자는 코드 한 줄이 아닌 커널 버전 자체를 업데이트하여 모든 새로운 델타 기능에 액세스할 수 있습니다. 최종 사용자에게는 에코시스템 전반에서 최신 델타의 혁신에 더 빠르게 액세스할 수 있다는 의미입니다.

Kernel은 UniForm과 함께 커넥터 에코시스템을 더욱 잘 통합하는데, 이는 Delta가 Iceberg와 Hudi의 메타데이터를 자동으로 작성하기 때문입니다. 엔진 통합업체의 경우, 이는 Delta를 위해 한 번 빌드하면 모두를 위해 빌드한다는 의미입니다.

dl.4

델타 레이크 3.0의 미리보기는 이미 사용할 수 있습니다. 데이터브릭스 고객은 곧 출시될 DBR 버전 13.2 또는 DBSQL의 다음 프리뷰 채널을 통해 Delta Lake에서 이러한 기능을 미리 사용해 볼 수도 있습니다.

 

오픈 소스 Delta Lake 커뮤니티에 참여하고 싶으신가요?

Delta Lake를 방무아혀 더 확인하세요. 그리고 Slack 또는 Google Group을 통해 Delta Lake 커뮤니티에 참여하실 수 있습니다. 만약 해당 프로젝트에 기여를 하고 싶으시다면 여기에 나와있는 열린 이슈를 확인해주세요.

이 릴리스를 커뮤니티에 제공할 수 있도록 도와주신 다음 기여자분들께 깊은 감사를 드립니다:

Ahir Reddy, Ala Luszczak, Alex, Allen Reese, Allison Portis, Antoine Amend, Bart Samwel, Boyang Jerry Peng, CabbageCollector, Carmen Kwan, Christos Stavrakakis, Denny Lee, Desmond Cheong, Eric Ogren, Felipe Pessoto, Fred Liu, Fredrik Klauss, Gerhard Brueckl, Gopi Krishna Madabhushi, Grzegorz Kołakowski, Herivelton Andreassa, Jackie Zhang, Jiaheng Tang, Johan Lasperas, Junyong Lee, K.I. (Dennis) Jung, Kam Cheung Ting, Krzysztof Chmielewski, Lars Kroll, Lin Ma, Luca Menichetti, Lukas Rupprecht, Ming DAI, Mohamed Zait, Ole Sasse, Olivier Nouguier, Pablo Flores, Paddy Xu, Patrick Pichler, Paweł Kubit, Prakhar Jain, Ryan Johnson, Sabir Akhadov, Satya Valluri, Scott Sandre, Shixiong Zhu, Siying Dong, Son, Tathagata Das, Terry Kim, Tom van Bussel, Venki Korukanti, Wenchen Fan, Yann Byron, Yaohua Zhao, Yuhong Chen, Yuming Wang, Yuya Ebihara, aokolnychyi, gurunath, jintao shen, maryannxue, noelo, panbingkun, windpiger, wwang-talend

Databricks 무료로 시작하기

관련 포스트

모든 엔지니어링 블로그 포스트 보기