Delta Lake란 무엇인가요?

호수에 있는 댐의 항공 사진

작성자

Matthew Kosinski

Staff Editor

IBM Think

Delta Lake란 무엇인가요?

Delta Lake는 Apache Parquet 데이터 파일과 강력한 메타데이터 로그를 결합한 오픈 소스 데이터 스토리지 형식입니다. Delta Lake 형식은 ACID 트랜잭션 및 데이터 버전 관리와 같은 주요 데이터 관리 기능을 데이터 레이크에 제공하므로 많은 데이터 레이크하우스의 기반이 됩니다. 

2016년 Databricks에서 처음 개발한 Delta Lake는 기존 파일 형식 위에 메타데이터 계층을 구축하는 테이블 형식 데이터용 오픈 소스 프레임워크인 오픈 테이블 형식입니다. Delta Lake는 특히 데이터 저장을 위해 Parquet 테이블을 사용합니다. 다른 오픈 테이블 형식으로는 Apache Iceberg와 Apache Hudi가 있습니다.

메타데이터 계층을 사용하면 Delta Lake와 기타 오픈 테이블에서 검색 쿼리를 최적화하고 많은 표준 테이블 형식에서는 지원할 수 없는 고급 데이터 작업을 지원할 수 있습니다. 조직에서는 Delta Lake를 사용하여 데이터 레이크의 안정성과 직관적인 환경을 구축하는 경우가 많습니다.

Delta Lake의 개발은 데이터 레이크의 스토리지와 데이터 웨어하우스의 성능을 결합한 데이터 레이크하우스 아키텍처 개발에서 중요한 단계였습니다.

트랙에서 굴러가는 공의 3D 디자인

최신 AI 뉴스+인사이트


주간 Think 뉴스레터에서 전문가들이 선별한 AI, 클라우드 등에 관한 인사이트와 소식을 살펴보세요. 

Delta Lake와 데이터 레이크의 차이점은 무엇인가요? 

Delta Lake와 데이터 레이크는 종종 함께 논의되지만 이러한 기술은 서로 구별된다는 것을 아는 것이 중요합니다.

데이터 레이크는 모든 데이터 유형 및 형식의 대규모 데이터 세트를 처리하도록 설계된 저비용 데이터 스토리지 환경입니다. 대부분의 데이터 레이크는 Amazon Simple Storage Service(S3), Microsoft Azure Blob 스토리지 또는 IBM Cloud Object Storage와 같은 Cloud Object Storage 플랫폼을 사용합니다.

Delta Lake는 조직이 데이터 레이크나 다른 데이터 저장소에서 사용할 수 있는 테이블 형식의 데이터 저장 형식입니다.

Delta Lake는 데이터 레이크 유형이 아니며 데이터 레이크의 대안도 아닙니다. 오히려 데이터 레이크는 '장소'로, Delta Lake는 '방법'으로 생각할 수 있습니다.

  • 데이터는 어디에 저장되어 있나요? 데이터 레이크에 저장됩니다.
  • 데이터는 어떻게 저장되나요? Delta Lake 테이블로 저장됩니다.

Delta Lake 형식은 데이터 레이크를 더 관리하기 쉽고 효율적으로 만드는 데 도움이 될 수 있습니다.

데이터 레이크에는 많은 이점이 있지만, 일반적으로 기본적인 데이터 품질 관리 기능이 부족하고, 데이터 레이크에 직접 쿼리를 보내는 것이 어려울 수 있습니다. 조직은 종종 레이크에서 데이터를 가져와 정리하고 별도의 데이터 웨어하우스와 데이터 마트에 로드해야 사용하는 경우가 많습니다.

Delta Lake는 메타데이터 계층을 도입함으로써 조직에 스키마를 적용하고, 변경 사항을 추적하고 롤백하고, ACID 트랜잭션을 지원하는 방법을 제공합니다.

사용자는 데이터 레이크에서 바로 SQL 쿼리, 분석, 기타 활동을 실행하여 비즈니스 인텔리전스(BI), 데이터 인텔리전스(DI), 인공 지능(AI) 및 머신 러닝(ML)을 간소화할 수 있습니다.

AI 아카데미

데이터 관리가 생성형 AI 구현의 비결일까요?

생성형 AI를 성공적으로 사용하기 위해 고품질 데이터가 필수적인 이유를 알아보세요.

Delta Lake 작동 방식

Delta Lake에는 데이터가 포함된 데이터 파일과 해당 데이터 파일에 대한 메타데이터가 포함된 트랜잭션 로그의 2가지 핵심 구성 요소가 있습니다.

  • 델타 레이크의 데이터 파일은 "Delta Lake 테이블" 또는 "Delta 테이블"이라고 하며, 열 형식의 Parquet 파일 형식을 사용합니다.

  • 트랜잭션 로그는 최근 활동을 JSON 로그 파일에 저장하고 이전 메타데이터를 Parquet 파일에 보관합니다. 로그는 데이터 파일과 함께 데이터 레이크에 저장됩니다.

트랜잭션 로그는 데이터 파일에 대한 정보(예: 열 이름, 최솟값 및 최댓값)와 파일 변경 사항(변경 내용, 시기, 방법, 변경한 사람)을 기록합니다.

Delta Lake가 표준 Parquet 파일과 다른 점은 로그입니다. 트랜잭션 로그는 기본적으로 데이터 레이크의 모든 활동에 대한 관리 계층 및 일련의 지침 역할을 하여 ACID 트랜잭션, 시간 여행 및 스키마 진화를 가능하게 합니다.

일반 Parquet 파일은 변경할 수 없으므로 만든 후에는 변경할 수 없습니다. 다시 쓸 수만 있습니다. Delta Lake의 트랜잭션 로그는 물리적 작업(데이터에서 직접 수행되는 작업)과 논리적 작업(메타데이터에서 수행되는 작업)을 구분하여 Parquet 파일을 문자 그대로는 아니더라도 기능적으로 변경할 수 있도록 합니다.

예를 들어, 사용자는 전체 파일을 다시 작성하지 않고는 Parquet 테이블에서 단일 열을 제거할 수 없습니다. Delta Lake에서 사용자는 테이블의 메타데이터를 변경하여 해당 열을 삭제된 것으로 표시함으로써 해당 열을 효과적으로 제거할 수 있습니다. 열은 파일에 남아 있지만 이후의 모든 쿼리, 업데이트 및 쓰기는 메타데이터를 확인하고 해당 열을 존재하지 않는 것으로 취급합니다.  

Delta Lake의 주요 기능

ACID 트랜잭션

"ACID"는 신뢰할 수 있는 데이터 트랜잭션의 핵심 속성인 "원자성, 일관성, 격리성 및 내구성"을 의미합니다.

  • 원자성은 데이터에 대한 모든 변경이 마치 하나의 작업인 것처럼 수행된다는 것을 의미합니다.

  • 일관성은 트랜잭션이 시작될 때와 끝날 때 데이터가 일관된 상태에 있음을 의미합니다.

  • 격리는 트랜잭션의 중간 상태가 다른 트랜잭션에 보이지 않음을 의미합니다.

  • 내구성은 데이터에 대한 변경 사항이 지속되고 실행 취소되지 않음을 의미합니다.

Standard 데이터 레이크는 ACID 트랜잭션을 지원할 수 없습니다. ACID가 보장되지 않으면 데이터 레이크는 트랜잭션 실패, 부분 쓰기 및 데이터를 손상시킬 수 있는 기타 문제에 취약해집니다. 

Delta Lake의 트랜잭션 로그는 ACID 원칙에 따라 트랜잭션 정보를 기록할 수 있으므로 스트리밍 데이터 파이프라인, 비즈니스 인텔리전스, 분석 및 기타 사용 사례에서 데이터 레이크의 안정성을 더욱 높일 수 있습니다. 

스키마 시행 및 스키마 진화

관리자는 트랜잭션 로그에서 스키마 요구 사항을 설정할 수 있으며, 이러한 요구 사항은 수집 시 모든 데이터에 적용됩니다. 스키마 요구 사항을 충족하지 않는 데이터는 거부됩니다.

또한 관리자는 트랜잭션 로그를 사용하여 새 열 추가 또는 열 유형 변경과 같은 기존 파일의 스키마를 변경할 수 있습니다. 이 프로세스를 “스키마 진화”라고 합니다.

쿼리 최적화

기존 인덱스는 아니지만 트랜잭션 로그는 쿼리에서 데이터를 더 빠르고 효율적으로 검색하는 데 도움이 될 수 있습니다.

예를 들어 사용자가 열에서 특정 값을 검색한다고 가정해 보겠습니다. 트랜잭션 로그의 메타데이터를 사용하면 사용자의 쿼리에서 대상 값이 존재할 수 없는 파일을 건너뛸 수 있습니다. 최소값이 높거나 최대값이 목표값보다 낮으면 쿼리에서 파일을 건너뛸 수 있습니다.

트랜잭션 로그에는 파일 경로도 저장됩니다. 쿼리는 전체 데이터 레이크를 스캔하는 대신 이러한 파일 경로를 사용하여 관련 파일로 직접 이동할 수 있습니다.

Delta Lake는 Z 순서와 같은 기술을 사용하여 유사한 데이터를 디스크에 더 가깝게 저장할 수 있으므로 관련 없는 파일을 건너뛰고 관련 파일을 쉽게 찾을 수 있습니다. 

데이터 운영

일반 Parquet 파일은 변경할 수 없지만 사용자는 메타데이터 계층을 통해 Delta 테이블을 조작할 수 있습니다. Delta Lake는 열 추가 또는 삭제, 항목 업데이트 및 파일 병합을 포함한 모든 종류의 데이터 작업을 지원합니다.

데이터 버전 관리

트랜잭션 로그는 델타 테이블에서 발생하는 모든 것을 기록하므로 각 테이블의 버전 기록을 효과적으로 유지 관리합니다. 사용자는 이전 버전을 쿼리하고 심지어 시간 여행을 할 수도 있습니다. 즉, 변경 사항을 롤백하여 이전 테이블 버전을 복원할 수 있습니다.

커넥터

Delta Lake는 강력한 커넥터 에코시스템을 가지고 있습니다. 이 형식은 Apache Spark, Apache Hive, Apache Flink 또는 Trino와 같은 다양한 컴퓨팅 엔진과 함께 사용할 수 있습니다. Delta Lake에는 Python, Java, Scala 및 기타 언어를 위한 애플리케이션 프로그래밍 인터페이스(API)도 있어 개발자가 프로그래밍 방식으로 Delta 테이블을 관리하고 쿼리할 수 있습니다.

액세스 및 거버넌스 제어

Delta Lake는 기본적으로 보안 제어를 시행하지 않지만, 데이터 보안데이터 거버넌스 툴과 통합될 수 있습니다. 그런 다음 이러한 툴은 트랜잭션 로그의 메타데이터를 사용하여 활동을 감사하고, 변경 사항을 추적하고, 역할 기반 액세스 제어(RBAC) 정책을 시행할 수 있습니다.

배치 및 스트리밍 데이터 지원

Delta Lake는 스트리밍 및 배치 데이터를 모두 수용할 수 있으며, 데이터는 Delta 테이블에서 스트림 또는 배치로 연결된 서비스로 보낼 수 있습니다.

최근 개발 사항

Delta Lake의 다음 예정된 주요 릴리스인 Delta Lake 4.0에는 다음과 같은 더 많은 기능이 추가될 계획입니다.

  • 조정된 커밋은 여러 테이블과 여러 엔진에서 한 번에 쓰는 프로세스를 간소화합니다.

  • 기존에 테이블 형식으로 저장하기 어려웠던 반구조화 데이터를 저장하기 위한 새로운 "변형" 데이터 유형입니다.

  • 타입 확장(Type Widening)은 사용자가 열의 데이터 유형을 변경할 수 있도록 하는 기능입니다. 

Delta Lake와 다른 오픈 테이블 형식 비교

Delta Lake와 Apache Iceberg 비교

Apache Iceberg는 대규모 분석 테이블을 위한 고성능 오픈 소스 형식입니다. Delta Lake와 마찬가지로 Iceberg는 기존 테이블 형식 위에 메타데이터 계층을 구축하여 데이터 레이크에서 ACID 트랜잭션 및 기타 작업을 지원합니다.

Iceberg는 Parquet, ORC 또는 Avro 파일에 데이터를 저장할 수 있는 반면 Delta Lake는 Parquet만 사용합니다. 또한 Iceberg는 Delta Lake와 같은 단일 트랜잭션 로그 대신 3계층 메타데이터 계층을 사용합니다.

Iceberg는 기본적으로 다양한 쿼리 엔진과 통합되며 데이터 레이크의 분석에 일반적으로 선택됩니다. 

Delta Lake와 Apache Hudi 비교

델타 레이크(Delta Lake)와 아이스버그(Iceberg)처럼 Hudi는 데이터 계층 위에 메타데이터 계층을 유지합니다. Hudi는 Parquet, HFile 및 ORC 파일 형식을 사용할 수 있으며, 메타데이터 계층은 데이터 계층에서 발생하는 모든 일을 기록하는 “타임라인”의 형태를 취합니다.

Hudi는 소량의 데이터 배치가 자주 처리되는 증분 데이터 처리를 위해 설계되었습니다. 증분 처리에 중점을 두기 때문에 Hudi는 실시간 분석 및 변경 데이터 캡처(CDC)를 위한 일반적인 선택지가 되었습니다. 

데이터 레이크하우스에서 Delta Lake의 역할

Delta Lake 형식의 개발은 데이터 레이크하우스를 만드는 데 도움이 되었습니다.

오랫동안 기업들은 주로 데이터 웨어하우스에서 데이터를 관리해 왔습니다. 분석 및 BI에는 유용하지만 웨어하우스에는 엄격한 스키마가 필요합니다. 이는 조직이 AI 및 ML에 대한 투자를 늘리면서 점점 더 보편화되고 더 중요해지고 있는 비정형 또는 반정형 데이터에는 잘 작동하지 않습니다.

2010년대 초반에 데이터 레이크가 등장하면서 조직은 모든 종류의 데이터 소스에서 모든 종류의 데이터를 한 곳에 집계할 수 있게 되었습니다.

그러나 데이터 레이크에는 고유한 문제가 있습니다. 바로 품질 관리가 부족한 경우가 많다는 것입니다. 이는 ACID 트랜잭션을 지원하지 않으며 직접 쿼리하는 것도 쉽지 않습니다.

데이터를 사용 가능하게 만들기 위해 조직은 데이터를 레이크에서 웨어하우스로 이동하기 위해 별도의 ETL(추출, 변환, 로드) 데이터 파이프라인을 구축해야 하는 경우가 많았습니다.  

2016년에 등장한 Delta Lake는 데이터 레이크에 ACID 트랜잭션, 스키마 적용, 시간 여행을 추가하여 직접 쿼리 및 분석에 더욱 안정적으로 사용할 수 있도록 했습니다.

2019년에 오픈 소스로 제공되는 Delta Lake는 데이터 레이크의 유연성과 데이터 웨어하우스의 성능을 결합한 데이터 레이크하우스 아키텍처를 형성하는 데 핵심적인 역할을 했습니다.

많은 조직에서 기존 데이터 레이크 위에 Delta Lake 스토리지 계층을 구축하고 이를 Spark나 Hive와 같은 데이터 처리 엔진과 통합하여 데이터 레이크하우스를 만듭니다.

데이터 레이크하우스는 데이터 사일로로 이어질 수 있는 별도의 데이터 레이크와 웨어하우스를 유지 관리할 필요가 없어 데이터 통합을 지원하고 데이터 아키텍처를 간소화하는 데 도움이 됩니다.

결과적으로 이러한 간소화된 아키텍처는 데이터 과학자, 데이터 엔지니어 및 기타 사용자가 필요할 때 필요한 데이터에 액세스할 수 있도록 지원합니다. AI 및 ML 워크로드는 Delta Lake 기반 데이터 레이크하우스의 일반적인 사용 사례입니다.

데이터 레이크는 방대한 양의 정형, 비정형 및 반정형 데이터를 수용할 수 있기 때문에 그 자체로 이미 이러한 워크로드에 유용합니다.

Delta Lake는 ACID 트랜잭션 및 스키마 적용과 같은 기능을 추가하여 표준 데이터 레이크에서는 불가능한 방식으로 데이터 품질과 안정성을 보장할 수 있도록 지원합니다.  

관련 솔루션
IBM watsonx.data

AI 및 분석을 위한 하이브리드 오픈 데이터 레이크하우스를 활용하여 데이터가 어디에 있든 활용하세요. 

watsonx.data 알아보기
데이터 레이크 솔루션

레이크하우스 아키텍처로 오늘날의 데이터 문제 해결하기몇 분 안에 데이터에 연결하고 신뢰할 수 있는 인사이트를 빠르게 얻고 데이터 웨어하우스 비용을 줄일 수 있습니다.

IBM의 데이터 레이크 솔루션 살펴보기
데이터 및 분석 컨설팅 서비스

IBM Consulting을 통해 엔터프라이즈 데이터의 가치를 실현하여 비즈니스 이점을 제공하는 인사이트 중심의 조직을 구축하세요.

분석 서비스 알아보기
다음 단계 안내

탁월한 고객 및 직원 경험을 제공하기 위해 데이터 사일로를 제거하고, 복잡성을 줄이며, 데이터 품질을 개선하는 데이터 전략을 구축하세요.

데이터 관리 솔루션 살펴보기 watsonx.data 알아보기