Delta Lake 시작

완료됨

Azure Databricks의 Delta Lake는 빅 데이터 처리에 안정성, 보안 및 성능을 제공하는 고급 스토리지 계층입니다. Apache Spark를 기반으로 구축되었으며 몇 가지 주요 이점을 제공하여 기존 데이터 레이크의 기능을 향상시킵니다.

ACID 거래

Delta Lake는 ACID 트랜잭션을 제공하여 여러 개의 동시 읽기 및 쓰기를 통해 데이터 무결성을 보장합니다.

  • 원자성 – Delta Lake 테이블(삽입, 업데이트, 삭제 또는 병합)에 쓰면 작업이 단일 트랜잭션으로 적용됩니다. 중간에 오류가 발생하면 Delta Lake는 트랜잭션 로그(_delta_log)를 사용하여 롤백하므로 전체 작업이 성공하거나 아무 것도 기록되지 않습니다.

  • 일관성 – Delta Lake는 스키마 제약 조건을 적용하고 커밋된 모든 트랜잭션이 테이블을 유효한 상태로 유지하도록 합니다. 예를 들어 열을 INT로 정의하면, 문자열을 삽입하려 할 때 실패하게 되어 데이터 세트를 손상시키는 것을 방지합니다.

  • 격리 – 여러 동시 판독기 및 기록기가 동일한 델타 테이블에 안전하게 액세스할 수 있습니다. Delta Lake는 한 작성자의 커밋이 다른 작성자의 커밋을 덮어쓰지 않도록 OCC(낙관적 동시성 제어)를 사용합니다. 판독기는 항상 데이터의 일관된 스냅샷을 볼 수 있습니다.

  • 내구성 – 델타 로그에서 트랜잭션이 커밋되면 변경 내용이 영구적이고 복구할 수 있습니다. 클러스터 크래시 또는 오류가 있더라도 Delta Lake는 트랜잭션 로그에서 테이블의 올바른 상태를 다시 구성할 수 있습니다.

즉, 데이터를 업데이트하거나 수정할 때 데이터의 무결성 및 일관성이 유지되어 데이터 손상 또는 불완전한 데이터 읽기와 같은 문제를 방지합니다. Delta Lake는 많은 양의 메타데이터로 어려움을 겪고 있는 기존 데이터 레이크에도 불구하고 대규모로 대량의 메타데이터 작업을 최적화합니다. 이렇게 하면 대량의 데이터에 사용할 때 효율적인 작업을 수행할 수 있습니다.

데이터 버전 관리

Delta Lake는 데이터가 정의된 스키마를 준수하도록 해 예기치 않거나 누락된 데이터 형식으로 인한 오류를 방지합니다. 이를 통해 가동 중지 시간 없이 스키마를 진화할 수 있으므로 새 데이터 필드가 도입될 때 스키마를 수정할 수 있습니다. Delta Lake는 데이터 버전 관리를지원하므로 감사 또는 롤백을 위해 이전 버전의 데이터에 액세스하고 되돌릴 수 있습니다. 이 기능은 실험, 감사를 재현하고 데이터 손상을 수정하는 데 유용합니다.

통합 일괄 처리 및 스트리밍

일괄 처리 는 일정 기간 동안 데이터를 수집한 다음 한 번에 모두 처리하는 것을 의미합니다. 일반적으로 실시간 결과가 필요하지 않은 대규모 데이터 집계, 보고 또는 기존 ETL 파이프라인에 사용됩니다. 예를 들어 회사에서 야간 작업을 실행하여 보고에 대한 전날의 판매 합계를 계산하고 저장할 수 있습니다. 이 방법은 높은 처리량과 효율성을 제공하지만 일괄 처리 작업이 완료된 후에만 데이터를 사용할 수 있으므로 대기 시간이 더 깁니다.

한편 스트리밍 처리는 움직이는 데이터를 다룹니다. 레코드는 도착 즉시 지속적으로 처리됩니다. 이렇게 하면 대기 시간이 짧은 인사이트를 사용할 수 있으며 실시간 대시보드, 사기 탐지 시스템 또는 권장 사항 엔진과 같은 즉각적인 조치가 필요한 애플리케이션에 특히 유용합니다. 데이터가 즉시 사용되므로 스트리밍을 통해 기업은 일괄 처리 주기를 기다리지 않고 거의 실시간으로 이벤트에 반응할 수 있습니다.

Delta Lake는 일괄 처리 및 스트리밍 데이터를 동일한 엔터티로 처리할 수 있도록 하여 이러한 두 세계를 연결합니다. 단일 델타 테이블을 사용하면 일괄 처리 원본과 스트리밍 원본 또는 싱크로 모두 사용할 수 있으므로 별도의 파이프라인을 유지할 필요가 없습니다. 이 통합은 데이터 아키텍처를 간소화하는 동시에 사용 사례에 따라 일괄 처리 또는 스트리밍을 유연하게 선택할 수 있으며 Delta Lake의 트랜잭션 보장 및 성능 최적화의 추가적인 이점을 제공합니다.

통합

Databricks 플랫폼의 일부인 Delta Lake는 기능을 확장하는 다른 여러 핵심 서비스와 통합됩니다. 예를 들어 Lakeflow 선언적 파이프라인을 사용하면 사용자가 델타 테이블에서 직접 일괄 처리 및 스트리밍 데이터 워크플로를 빌드하고 관리할 수 있습니다. Databricks SQL 은 Delta Lake 데이터를 쿼리하고 분석하기 위한 친숙한 SQL 인터페이스를 제공하므로 데이터 엔지니어뿐만 아니라 분석가 및 기타 SQL 사용자에게도 액세스할 수 있습니다. 이러한 통합을 통해 시스템 간에 데이터를 이동하고 대규모 데이터 세트 작업을 간소화할 필요가 줄어듭니다.

또한 Delta Lake는 Databricks의 거버넌스 및 공유 도구에 연결합니다. Unity 카탈로그 는 델타 테이블에 대한 메타데이터, 권한 및 감사를 관리하여 플랫폼 전체에서 일관된 제어 및 보안을 보장합니다. 델타 공유 를 사용하면 데이터 세트를 복제하지 않고도 여러 팀 또는 외부 조직에서 라이브 델타 데이터에 대한 제어된 액세스를 제공할 수 있습니다. 이러한 기능을 통해 Delta Lake는 Azure Databricks 에코시스템 내에서 안정적으로 일관되게 대규모 데이터를 관리하기 위한 실용적인 선택입니다.