제퍼넷 로고

Databricks Delta Lake에서 Apache Iceberg로 마이그레이션 가이드

시간

개요

급변하는 빅세상에서 데이터 처리 및 분석을 통해 광범위한 데이터 세트의 잠재적인 관리는 기업이 정보에 입각한 의사 결정을 내리는 데 있어 기본 기둥 역할을 합니다. 이는 데이터에서 유용한 통찰력을 추출하는 데 도움이 됩니다. Databricks Delta Lake 및 Apache Iceberg와 같은 다양한 솔루션이 지난 몇 년 동안 등장했습니다. 이러한 플랫폼은 데이터 레이크 관리를 위해 개발되었으며 둘 다 강력한 특징과 기능을 제공합니다. 그러나 조직의 경우 기존 플랫폼을 마이그레이션하기 위한 아키텍처, 기술 및 기능적 측면의 미묘한 차이를 파악해야 합니다. 이 문서에서는 Databricks Delta Lake에서 Apache Iceberg로 전환하는 복잡한 프로세스를 살펴봅니다.

학습 목표

  • Databricks 및 Apache Iceberg의 기능을 이해합니다.
  • Databricks와 Apache Iceberg 간의 아키텍처 구성 요소를 비교하는 방법을 알아보세요.
  • Delta Lake 아키텍처를 Iceberg와 같은 오픈 소스 플랫폼으로 마이그레이션하기 위한 모범 사례를 이해하세요.
  • Delta Lake 플랫폼의 대안으로 다른 타사 도구를 활용합니다.

이 기사는 데이터 과학 블로그.

차례

Databricks Delta Lake 이해

Databricks Delta Lake는 기본적으로 Databricks Delta Lake 위에 구축된 정교한 스토리지 계층입니다. 아파치 스파크 뼈대. 원활한 데이터 관리를 위해 개발된 몇 가지 최신 데이터 기능을 제공합니다. Delta Lake의 핵심 기능은 다음과 같습니다.

  • ACID 트랜잭션: Delta Lake는 사용자 데이터의 모든 수정에 대해 원자성, 일관성, 격리성 및 내구성의 기본 원칙을 보장하여 강력하고 유효한 데이터 운영을 보장합니다.
  • 스키마 진화: 유연성은 주로 델타 레이크, 스키마 진화를 원활하게 지원하여 업계에서 프로덕션의 기존 데이터 파이프라인을 방해하지 않고 스키마 변경을 수행할 수 있기 때문입니다.
  • 시간 여행: 공상과학 영화에 나오는 시간 여행처럼 델타 레이크는 특정 시점의 데이터 스냅샷을 쿼리하는 기능을 제공합니다. 따라서 사용자는 데이터의 포괄적인 기록 분석 및 버전 관리 기능에 대해 심층적으로 알아볼 수 있습니다.
  • 최적화된 파일 관리: Delta Lake는 데이터 파일과 메타데이터를 구성하고 관리하기 위한 강력한 기술을 지원합니다. 이를 통해 쿼리 성능이 최적화되고 스토리지 비용이 절감됩니다.

아파치 아이스버그의 특징

Apache Iceberg는 향상된 데이터 레이크 관리 솔루션을 찾는 기업에 경쟁력 있는 대안을 제공합니다. Icebergs는 Parquet 또는 ORC와 같은 일부 기존 형식을 능가합니다. 다음과 같은 많은 독특한 장점이 있습니다.

  • 스키마 진화: 사용자는 비용이 많이 드는 테이블을 다시 작성하지 않고도 스키마 변경을 수행하면서 스키마 진화 기능을 활용할 수 있습니다.
  • 스냅샷 격리: Iceberg는 스냅샷 격리를 지원하므로 일관된 읽기 및 쓰기가 보장됩니다. 데이터 무결성을 손상시키지 않으면서 테이블의 동시 수정을 용이하게 합니다.
  • Metadata Management: 이 기능은 기본적으로 데이터 파일에서 메타데이터를 분리합니다. 그리고 데이터 파일 자체와는 다른 전용 저장소에 저장하세요. 이를 통해 성능을 향상하고 효율적인 메타데이터 작업을 강화할 수 있습니다.
  • 파티션 가지치기: 고급 정리 기술을 활용하여 쿼리 실행 중에 검색되는 데이터를 줄여 쿼리 성능을 최적화합니다.

아키텍처 비교 분석

아키텍처 비교 분석에 대해 더 자세히 살펴보겠습니다.

Databricks Delta Lake 아키텍처

  • 저장 층: Delta Lake는 Amazon S3와 같은 클라우드 스토리지를 활용합니다. 푸른 얼룩 데이터 파일과 트랜잭션 로그로 구성된 기본 스토리지 계층입니다.
  • Metadata Management: 메타데이터는 트랜잭션 로그 내에 유지됩니다. 따라서 효율적인 메타데이터 작업이 가능하고 데이터 일관성이 보장됩니다.
  • 최적화 기법: Delta Lake는 수많은 최적화 기술. 여기에는 쿼리 성능을 근본적으로 향상시키고 데이터를 스캔하는 동안 오버헤드를 줄이기 위한 데이터 건너뛰기 및 Z 순서 지정이 포함됩니다.
Databricks Delta Lake 아키텍처

아파치 아이스버그 아키텍처

  • 메타데이터 분리: 비교해보면 차이가 있습니다. 데이터 브릭 데이터 파일에서 메타데이터를 분리하는 측면에서. 빙산은 데이터 파일과 별도의 저장소에 메타데이터를 저장합니다.
  • 거래 지원: 데이터 무결성과 신뢰성을 보장하기 위해 Iceberg는 강력한 트랜잭션 프로토콜을 자랑합니다. 이 프로토콜은 원자적이고 일관된 테이블 작업을 보장합니다.
  • 호환성 : Apache Spark, Flink 및 Presto와 같은 엔진은 Iceberg와 쉽게 호환됩니다. 개발자는 이러한 실시간 및 일괄 처리 프레임워크와 함께 Iceberg를 유연하게 사용할 수 있습니다.
아파치 아이스버그 아키텍처

마이그레이션 환경 탐색: 고려 사항 및 모범 사례

Databricks Delta Lake에서 Apache Iceberg로의 마이그레이션을 구현하려면 엄청난 양의 계획과 실행이 필요합니다. 다음과 같은 몇 가지 사항을 고려해야 합니다.

  • 스키마 진화: Delta Lake와 Iceberg의 스키마 진화 기능 간의 완벽한 호환성을 보장하여 스키마 변경 중에 일관성을 유지합니다.
  • 데이터 마이그레이션: 데이터 볼륨, 가동 중지 시간 요구 사항, 데이터 일관성 등의 요소를 고려하여 전략을 개발하고 적용해야 합니다.
  • 쿼리 호환성: Delta Lake와 Iceberg 간의 쿼리 호환성을 확인해야 합니다. 이를 통해 원활한 전환이 이루어지며 기존 쿼리 기능도 마이그레이션 후에도 그대로 유지됩니다.
  • 퍼포먼스 지원: 쿼리 성능을 확인하기 위해 광범위한 성능 및 회귀 테스트를 시작합니다. Iceberg와 Delta Lake 간의 리소스 활용도도 확인해야 합니다. 이러한 방식으로 최적화를 위한 잠재적 영역을 인식할 수 있습니다.

마이그레이션 개발자의 경우 Iceberg 및 Databricks 설명서에서 미리 정의된 일부 코드 뼈대를 사용하고 이를 구현할 수 있습니다. 단계는 아래에 언급되어 있으며 여기서 사용되는 언어는 Scala입니다.

1단계: Delta Lake 테이블 생성

초기 단계에서는 S3 버킷이 비어 있고 확인된 후 그 안에 데이터를 생성하는지 확인하세요. 데이터 생성 프로세스가 완료되면 다음 확인을 수행하십시오.

1단계: Delta Lake 테이블 생성
val data=spark.range(0,5)
data.write.format("delta").save("s3://testing_bucket/delta-table")

spark.read.format("delta").load("s3://testing_bucket/delta-table")
델타 레이크 테이블 생성
델타 레이크 테이블 생성

선택적 진공 코드 추가

#adding optional code for vaccum later
val data=spark.range(5,10)
data.write.format("delta").mode("overwrite").save("s3://testing_bucket/delta-table")

2단계 : CTAS 및 Delta Lake 테이블 읽기

#reading delta lake table
spark.read.format("delta").load("s3://testing_bucket/delta-table")

3단계: Delta Lake를 읽고 Iceberg 테이블에 쓰기

val df_delta=spark.read.format("delta").load("s3://testing_bucket/delta-table")
df_delta.writeTo("test.db.iceberg_ctas").create()
spark.read.format("iceberg").load("test.db.iceberg.ctas)

S3에서 빙산 테이블에 덤프된 데이터 확인

Delta Lake를 읽고 Iceberg 테이블에 쓰기
Delta Lake를 읽고 Iceberg 테이블에 쓰기

단순성, 성능, 호환성 및 지원 측면에서 타사 도구를 비교합니다. 두 가지 도구, 즉. AWS Glue DataBrew 및 Snowflake에는 자체 기능 세트가 제공됩니다.

AWS 글루 데이터브루

마이그레이션 프로세스:

  • 사용의 용이성: AWS Glue DataBrew는 AWS 클라우드 기반 제품으로, 데이터 정리 및 변환 작업을 위한 사용자 친화적인 경험을 제공합니다.
  • 통합: Glue DataBrew는 다른 Amazon 클라우드 서비스와 원활하게 통합될 수 있습니다. AWS와 협력하는 조직의 경우 이 서비스를 활용할 수 있습니다.

기능 세트:

  • 데이터 변환: 데이터 변환(EDA)을 위한 다양한 기능 세트가 함께 제공됩니다. 데이터 마이그레이션 중에 유용할 수 있습니다.
  • 자동 프로파일링: 다른 오픈 소스 도구와 마찬가지로 DataBrew는 자동으로 데이터를 프로파일링합니다. 불일치를 감지하고 변환 작업을 권장합니다.

성능 및 호환성:

  • 확장성: 마이그레이션 프로세스 중에 발생할 수 있는 대규모 데이터 세트를 처리하기 위해 Glue DataBrew는 이를 처리할 수 있는 확장성을 제공합니다.
  • 호환성: 보다 광범위한 형식 및 데이터 소스와의 호환성을 제공하므로 다양한 스토리지 솔루션과의 통합이 용이합니다.

눈송이

마이그레이션 프로세스:

  • 마이그레이션 용이성: 단순화를 위해 Snowflake에는 최종 사용자가 기존 데이터 웨어하우스에서 Snowflake 플랫폼으로 이동할 수 있도록 돕는 마이그레이션 서비스가 있습니다.
  • 포괄적 인 문서: Snowflake는 마이그레이션 프로세스를 시작하는 데 필요한 방대한 문서와 충분한 양의 리소스를 제공합니다.

기능 세트:

  • 데이터 웨어하우징 기능: 보다 광범위한 웨어하우징 기능 세트를 제공하고 반구조화된 데이터, 데이터 공유 및 데이터 거버넌스를 지원합니다.
  • 동시성: 이 아키텍처는 데이터 처리 요구 사항이 까다로운 조직에 적합한 높은 동시성을 허용합니다.

성능 및 호환성:

  • 퍼포먼스: Snowflake는 확장성 측면에서도 성능 효율적이므로 최종 사용자가 대용량 데이터를 쉽게 처리할 수 있습니다.
  • 호환성: Snowflake는 또한 다양한 데이터 소스에 대한 다양한 커넥터를 제공하므로 다양한 데이터 생태계와의 상호 호환성을 보장합니다.
"

결론

데이터 레이크 및 웨어하우스 관리 워크플로우를 최적화하고 비즈니스 성과를 추출하려면 조직에 전환이 필수적입니다. 업계에서는 기능과 아키텍처 및 기술 차이 측면에서 두 플랫폼을 모두 활용하고 데이터 세트의 잠재력을 최대한 활용하기 위해 어느 플랫폼을 선택할지 결정할 수 있습니다. 장기적으로 조직에도 도움이 됩니다. 역동적이고 빠르게 변화하는 데이터 환경에서 혁신적인 솔루션은 조직을 우위에 유지할 수 있습니다.

주요 요점

  • Apache Iceberg는 스냅샷 격리, 효율적인 메타데이터 관리, 파티션 정리와 같은 환상적인 기능을 제공하므로 데이터 레이크 관리 기능이 향상됩니다.
  • Apache Iceberg로 마이그레이션하려면 신중한 계획과 실행이 필요합니다. 조직은 스키마 발전, 데이터 마이그레이션 전략, 쿼리 호환성과 같은 요소를 고려해야 합니다.
  • Databricks Delta Lake는 클라우드 스토리지를 기본 스토리지 계층으로 활용하여 데이터 파일과 트랜잭션 로그를 저장하는 반면, Iceberg는 데이터 파일에서 메타데이터를 분리하여 성능과 확장성을 향상시킵니다.
  • 조직은 또한 스토리지 비용, 컴퓨팅 비용, 라이선스 비용, 마이그레이션에 필요한 임시 리소스 등 재정적 영향을 고려해야 합니다.

자주하는 질문

Q1. Databricks Delta Lake에서 Apache Iceberg로의 마이그레이션 프로세스는 어떻게 수행되나요?

A. Databricks Delta Lake에서 데이터를 내보내고 필요한 경우 정리한 다음 Apache Iceberg 테이블로 가져옵니다.

Q2. 수동 개입 없이 마이그레이션을 지원하는 데 사용할 수 있는 자동화된 도구가 있습니까?

A. 조직에서는 일반적으로 사용자 정의 Python/Scala 스크립트와 ETL 도구를 활용하여 이 워크플로를 구축합니다.

Q3. 마이그레이션 과정에서 조직이 직면하는 일반적인 문제는 무엇입니까?

A. 발생할 가능성이 매우 높은 몇 가지 과제로는 데이터 일관성, 스키마 진화 차이 처리, 마이그레이션 후 성능 최적화 등이 있습니다.

Q4. Apache Iceberg와 Parquet 또는 ORC와 같은 다른 테이블 형식의 차이점은 무엇입니까?

A. Apache Iceberg는 Parquet 및 ORC와 다른 스키마 진화, 스냅샷 격리 및 효율적인 메타데이터 관리와 같은 기능을 제공합니다.

Q5. 클라우드 기반 스토리지 솔루션과 함께 Apache Iceberg를 사용할 수 있습니까?

A. 확실히 Apache Iceberg는 AWS S3, Azure Blob Storage, Google Cloud Storage 등 일반적으로 사용되는 클라우드 기반 스토리지 솔루션과 호환됩니다.

이 기사에 표시된 미디어는 Analytics Vidhya의 소유가 아니며 작성자의 재량에 따라 사용됩니다.

spot_img

최신 인텔리전스

spot_img