Delta Live Tables: 데이터 파이프라인의 혁신적 접근법

GarionNachal·2025년 4월 6일
0

databricks

목록 보기
6/24
post-thumbnail

데이터 엔지니어링 분야에서 안정적이고 효율적인 ETL(Extract, Transform, Load) 파이프라인을 구축하는 것은 항상 큰 도전이었습니다. 데이터 소스와 목적지 간의 연결, 데이터 변환, 오류 처리, 모니터링 등을 관리하며 파이프라인을 유지하는 일은 복잡하고 시간 소모적인 작업입니다. 이러한 문제를 해결하기 위해 Databricks는 Delta Live Tables라는 혁신적인 솔루션을 출시했습니다. 이번 글에서는 Delta Live Tables가 무엇인지, 어떤 이점을 제공하는지, 그리고 어떻게 데이터 엔지니어링을 간소화하는지 알아보겠습니다.

Delta Live Tables란 무엇인가?

Delta Live Tables(DLT)는 안정적이고 유지 관리가 용이한 ETL 파이프라인을 간소화하기 위해 설계된 선언적 프레임워크입니다. 어떤 데이터를 수집하고 어떻게 변환할지 지정하면, Delta Live Tables가 오케스트레이션, 컴퓨팅 관리, 모니터링, 데이터 품질 강화, 오류 처리와 같은 데이터 파이프라인 관리의 핵심 측면을 자동화합니다. Databricks 문서

DLT는 Apache Spark를 기반으로 구축되었지만, 별도의 Apache Spark 태스크로 데이터 파이프라인을 정의하는 대신, 시스템이 생성하고 업데이트해야 하는 스트리밍 테이블과 구체화된 뷰(materialized views)를 정의합니다.

Delta Live Tables의 주요 개념

1. 스트리밍 테이블(Streaming Table)

스트리밍 테이블은 하나 이상의 스트림이 쓰는 Delta 테이블입니다. 이러한 테이블은 입력 데이터를 정확히 한 번 처리하고 대량의 추가 전용 데이터를 처리할 수 있기 때문에 수집에 주로 사용됩니다. 또한 스트리밍 테이블은 대용량 데이터 스트림의 저지연 변환에도 유용합니다.

2. 구체화된 뷰(Materialized View)

구체화된 뷰는 해당 뷰를 정의하는 쿼리를 기반으로 미리 계산된 레코드를 포함하는 뷰입니다. 구체화된 뷰의 레코드는 파이프라인의 업데이트 일정이나 트리거에 따라 Delta Live Tables에 의해 자동으로 최신 상태로 유지됩니다. 구체화된 뷰는 주로 데이터 변환에 사용됩니다.

3. 뷰(View)

Databricks의 모든 뷰는 쿼리할 때 소스 데이터셋에서 결과를 계산합니다. Delta Live Tables는 뷰를 카탈로그에 게시하지 않으므로 뷰는 정의된 파이프라인 내에서만 참조할 수 있습니다. 뷰는 최종 사용자나 시스템에 노출되지 않아야 하는 중간 쿼리로 유용합니다.

4. 파이프라인(Pipeline)

파이프라인은 함께 업데이트되는 스트리밍 테이블과 구체화된 뷰의 컬렉션입니다. 이러한 테이블과 뷰는 Python 또는 SQL 소스 파일에서 선언됩니다. 파이프라인에는 파이프라인이 실행될 때 스트리밍 테이블과 구체화된 뷰를 업데이트하는 데 사용되는 컴퓨팅을 정의하는 구성도 포함됩니다.

메달리온 레이크하우스 아키텍처와 DLT

메달리온 레이크하우스 아키텍처에서는 소스 데이터가 여러 데이터 수집 레이어를 통과한 후 처리되어 다운스트림 팀에 제공됩니다. 세 가지 데이터 수집 레이어는 다음과 같습니다:

Bronze Layer

원시 형태의 데이터를 저장합니다. 조직에서 감사 목적과 데이터 소스로 추적하기 위해 사용됩니다.

Silver Layer

Bronze 데이터를 정제하고 필터링합니다. 누락된 데이터를 처리하고 필요한 경우 데이터 유형 변환도 수행합니다. 또한 쿼리를 쉽게 하기 위해 중첩된 객체를 평면 구조로 변환합니다.

Gold Layer

변환, 집계 및 모델링된 데이터를 포함하며 SQL 쿼리에 사용할 수 있도록 합니다. 차원과 팩트를 기반으로 비즈니스별 모델 및 집계를 생성합니다.

출처

Delta Live Tables의 이점

1. Apache Spark와 비교한 이점

Apache Spark는 ETL을 포함한 다목적 오픈 소스 통합 분석 엔진입니다. Delta Live Tables는 Spark를 기반으로 특정 ETL 처리 작업을 해결합니다. 다음은 Apache Spark와 Delta Live Tables를 비교한 표입니다:

기능Delta Live TablesApache Spark
데이터 변환SQL 또는 Python을 사용하여 데이터를 변환할 수 있습니다.SQL, Python, Scala 또는 R을 사용하여 데이터를 변환할 수 있습니다.
증분 데이터 처리많은 데이터 변환이 자동으로 증분 처리됩니다.새 데이터가 무엇인지 결정하여 증분 처리해야 합니다.
오케스트레이션변환이 자동으로 올바른 순서로 오케스트레이션됩니다.다양한 변환이 올바른 순서로 실행되도록 해야 합니다.
병렬성모든 변환은 올바른 수준의 병렬성으로 실행됩니다.관련 없는 변환을 병렬로 실행하려면 스레드나 외부 오케스트레이터를 사용해야 합니다.
오류 처리실패는 자동으로 재시도됩니다.오류와 재시도를 처리하는 방법을 결정해야 합니다.
모니터링메트릭과 이벤트가 자동으로 기록됩니다.실행이나 데이터 품질에 대한 메트릭을 수집하는 코드를 작성해야 합니다.

2. 차별화 요소로서의 DLT

Delta Live Tables를 사용하면 SQL 또는 Python으로 엔드투엔드 데이터 파이프라인을 쉽게 정의할 수 있습니다. 데이터 소스, 변환 로직 및 데이터의 목적지 상태를 선언할 수 있습니다.

효과적인 연속 또는 예약된 데이터 수집

DLT의 Auto Loader 기능은 데이터가 클라우드 스토리지에 도착할 때 증분적이고 효율적으로 Delta Lake에 로드합니다. 또한 들어오는 파일의 스키마를 추론하고 입력 파일에 따라 스키마를 동적으로 발전시킵니다.

간단한 선언적 SQL 및 Python API

DLT는 데이터 엔지니어가 오류 처리 및 데이터 복구 작업보다는 데이터 변환 및 비즈니스 로직 적용에 더 중점을 둘 수 있도록 도와줍니다. 또한 데이터 파이프라인 전반에 걸쳐 테이블 종속성에 따라 자동으로 계보를 생성합니다.

쉬운 데이터 품질 검증 및 모니터링

Delta Live Tables는 데이터 기대치를 통해 파이프라인 내에서 데이터 품질 및 무결성 제어를 정의합니다. 또한 실패, 삭제, 경고, 격리(미래)와 같은 유연한 정책을 통해 데이터 품질 오류를 언급합니다.

데이터 파이프라인 관찰 가능성

DLT는 데이터 흐름 방식을 보여주는 고품질, 고충실도 계보 다이어그램을 생성합니다. 또한 행 수준에서 데이터 파이프라인의 운영, 거버넌스, 품질 및 상태에 대한 로깅을 제공합니다.

자동화된 ETL 운영

자동 오류 처리와 쉬운 재생 기능으로 다운타임을 줄입니다. DLT 자동 스케일링은 필요할 때 더 많은 리소스를 자동으로 추가하며, 모든 Delta Live Tables의 자동 최적화로 유지 관리 필요성을 제거합니다.

워크플로우 오케스트레이션

데이터 파이프라인의 오케스트레이션과 관리를 단순화합니다. DLT는 멀티 클라우드 환경에서 워크로드를 오케스트레이션하고 관리합니다.

Delta Live Tables 사용 방법

1. 첫 번째 데이터셋 선언

Delta Live Tables는 Python 및 SQL에 대한 새로운 구문을 도입합니다. 파이프라인 구문의 기본 사항은 "Develop pipeline code with Python" 및 "Develop pipeline code with SQL"에서 확인할 수 있습니다.

2. Delta Live Tables 파이프라인 구성

Delta Live Tables 파이프라인의 설정은 두 가지 광범위한 카테고리로 나뉩니다:

  1. Delta Live Tables 구문을 사용하여 데이터셋을 선언하는 노트북 또는 파일(소스 코드라고 함) 모음을 정의하는 구성
  2. 파이프라인 인프라, 종속성 관리, 업데이트 처리 방법, 테이블 저장 방법을 제어하는 구성

대부분의 구성은 선택 사항이지만 일부는 특히 프로덕션 파이프라인을 구성할 때 주의가 필요합니다.

3. 파이프라인 배포 및 업데이트 트리거

Delta Live Tables로 데이터를 처리하기 전에 파이프라인을 구성해야 합니다. 파이프라인이 구성된 후에는 업데이트를 트리거하여 파이프라인의 각 데이터셋에 대한 결과를 계산할 수 있습니다.

데이터 품질 모니터링 및 강화

  • 기대치(Expectations)*를 사용하여 데이터셋 내용에 대한 데이터 품질 제어를 지정할 수 있습니다. 기존 데이터베이스의 CHECK 제약 조건과 달리 기대치는 데이터 품질 요구 사항을 충족하지 못하는 데이터를 처리할 때 유연성을 제공합니다. 이러한 유연성을 통해 혼잡할 것으로 예상되는 데이터와 엄격한 품질 요구 사항을 충족해야 하는 데이터를 처리하고 저장할 수 있습니다.

Delta Live Tables에서 수행하는 유지 관리 작업

Delta Live Tables는 테이블이 업데이트된 후 24시간 이내에 유지 관리 작업을 수행합니다. 유지 관리는 쿼리 성능을 향상시키고 테이블의 이전 버전을 제거하여 비용을 절감할 수 있습니다. 기본적으로 시스템은 전체 OPTIMIZE 작업 후 VACUUM을 수행합니다.

결론

Delta Live Tables는 데이터 파이프라인 개발 및 유지 관리의 복잡성을 크게 줄여줍니다. 선언적 접근 방식을 통해 데이터 엔지니어는 도구 운영보다는 데이터 변환과 비즈니스 로직에 집중할 수 있습니다. 자동화된 오케스트레이션, 오류 처리, 모니터링 기능은 안정적이고 효율적인 ETL 파이프라인 구축에 큰 도움이 됩니다.

Delta Live Tables를 사용하면 데이터 품질을 보장하고, 배치 및 스트리밍 처리를 통합하며, 데이터 파이프라인의 관찰 가능성을 높일 수 있습니다. 데이터 중심의 의사 결정이 점점 더 중요해지는 현대 비즈니스 환경에서 Delta Live Tables는 데이터 엔지니어링의 효율성과 안정성을 높이는 강력한 도구입니다.

profile
AI를 꿈꾸는 BackEnd개발자

0개의 댓글