델타 라이브 테이블이란?

Delta Live Tables는 신뢰할 수 있고, 기본 지속 가능하고, 테스트 가능한 데이터 처리 파이프라인을 빌드하기 위한 선언적 프레임워크입니다. 데이터에 대해 수행할 변환을 정의하고 Delta Live Tables는 작업 오케스트레이션, 클러스터 관리, 모니터링, 데이터 품질 및 오류 처리를 관리합니다.

참고 항목

Delta Live Tables에는 프리미엄 플랜이 필요합니다. 자세한 내용은 Databricks 계정 팀에 문의하세요.

일련의 별도 Apache Spark 작업을 사용하여 데이터 파이프라인을 정의하는 대신 시스템에서 만들고 최신 상태로 유지해야 하는 스트리밍 테이블 및 구체화된 뷰를 정의합니다. Delta Live Tables는 각 처리 단계에 대해 정의한 쿼리에 따라 데이터가 변환되는 방식을 관리합니다. 또한 Delta Live Tables 기대치를 사용하여 데이터 품질을 적용할 수 있습니다. 이를 통해 예상 데이터 품질을 정의하고 이러한 기대에 실패한 레코드를 처리하는 방법을 지정할 수 있습니다.

Delta Live Tables를 사용하여 ETL 파이프라인을 빌드하고 실행하는 이점에 대한 자세한 내용은 Delta Live Tables 제품 페이지를 참조 하세요.

Delta Live Tables 데이터 세트란?

Delta Live Tables 데이터 세트는 선언적 쿼리의 결과로 기본 스트리밍 테이블, 구체화된 뷰 및 뷰입니다. 다음 표에서는 각 데이터 세트를 처리하는 방법을 설명합니다.

데이터 세트 형식 정의된 쿼리를 통해 레코드를 처리하는 방법
스트리밍 테이블 각 레코드는 정확히 한 번 처리됩니다. 이 경우 추가 전용 원본이 있다고 가정합니다.
구체화된 보기 레코드는 현재 데이터 상태에 대한 정확한 결과를 반환하는 데 필요한 대로 처리됩니다. 구체화된 뷰는 업데이트, 삭제 또는 집계가 있는 데이터 원본과 CDC(변경 데이터 캡처 처리)에 사용해야 합니다.
보기 레코드는 뷰를 쿼리할 때마다 처리됩니다. 공용 데이터 세트에 게시해서는 안 되는 중간 변환 및 데이터 품질 검사 보기를 사용합니다.

다음 섹션에서는 각 데이터 세트 형식에 대한 자세한 설명을 제공합니다. 데이터 처리 요구 사항을 구현하기 위해 데이터 세트 형식을 선택하는 방법에 대한 자세한 내용은 뷰, 구체화된 뷰 및 스트리밍 테이블을 사용하는 경우를 참조 하세요.

스트리밍 테이블

스트리밍 테이블은 스트리밍 또는 증분 데이터 처리를 추가로 지원하는 델타 테이블입니다. 스트리밍 테이블을 사용하면 증가하는 데이터 세트를 처리하여 각 행을 한 번만 처리할 수 있습니다. 대부분의 데이터 세트는 시간이 지남에 따라 지속적으로 증가하므로 스트리밍 테이블은 대부분의 수집 워크로드에 적합합니다. 스트리밍 테이블은 데이터 새로 고침 및 짧은 대기 시간이 필요한 파이프라인에 적합합니다. 스트리밍 테이블은 새 데이터가 도착할 때 결과를 증분 방식으로 계산할 수 있으므로 각 업데이트로 모든 원본 데이터를 완전히 다시 계산하지 않고도 결과를 최신 상태로 유지할 수 있으므로 대규모 변환에도 유용할 수 있습니다. 스트리밍 테이블은 추가 전용인 데이터 원본용으로 설계되었습니다.

참고 항목

기본적으로 스트리밍 테이블에는 추가 전용 데이터 원본이 필요하지만 스트리밍 원본이 업데이트 또는 삭제가 필요한 다른 스트리밍 테이블인 경우 skipChangeCommits 플래그를 사용하여 이 동작을 재정의할 수 있습니다.

구체화된 뷰

구체화된 뷰(또는 라이브 테이블)는 결과가 사전 계산된 뷰입니다. 구체화된 뷰는 포함된 파이프라인의 업데이트 일정에 따라 새로 고쳐집니다. 구체화된 뷰는 입력의 변경 내용을 처리할 수 있으므로 강력합니다. 파이프라인이 업데이트될 때마다 준수, 수정, 집계 또는 일반 CDC로 인해 발생할 수 있는 업스트림 데이터 세트의 변경 내용을 반영하도록 쿼리 결과가 다시 계산됩니다. Delta Live Tables는 구체화된 뷰를 델타 테이블로 구현하지만 효율적인 업데이트 적용과 관련된 복잡성을 추상화하여 사용자가 쿼리 작성에 집중할 수 있도록 합니다.

보기

Azure Databricks의 모든 는 쿼리될 때 원본 데이터 세트의 결과를 계산하고, 사용 가능한 경우 캐싱 최적화를 활용합니다. Delta Live Tables는 뷰를 카탈로그에 게시하지 않으므로 뷰가 정의된 파이프라인 내에서만 참조할 수 있습니다. 보기는 최종 사용자 또는 시스템에 노출되어서는 안 되는 중간 쿼리로 유용합니다. Databricks는 뷰를 사용하여 데이터 품질 제약 조건을 적용하거나 여러 다운스트림 쿼리를 구동하는 데이터 세트를 변환하고 보강하는 것이 좋습니다.

Delta Live Tables에서 첫 번째 데이터 세트 선언

Delta Live Tables에는 Python 및 SQL에 대한 새로운 구문이 도입되었습니다. Delta Live Tables 구문을 시작하려면 다음 자습서 중 하나를 사용합니다.

참고 항목

Delta Live Tables는 데이터 세트 정의를 업데이트 처리와 분리하며 Delta Live Tables Notebook은 대화형 실행을 위한 것이 아닙니다. Delta Live Tables 파이프라인이란?을 참조하세요.

Delta Live Tables 파이프라인이란?

파이프라인은 Delta Live Tables를 사용하여 데이터 처리 워크플로를 구성하고 실행하는 데 사용되는 기본 단위입니다.

파이프라인에는 Python 또는 SQL 원본 파일에 선언된 구체화된 뷰 및 스트리밍 테이블이 포함됩니다. 델타 라이브 테이블은 이러한 테이블 간의 종속성을 유추하여 업데이트가 올바른 순서로 수행되도록 합니다. 각 데이터 세트에 대해 Delta Live Tables는 현재 상태를 원하는 상태와 비교하고 효율적인 처리 방법을 사용하여 데이터 세트를 만들거나 업데이트합니다.

Delta Live Tables 파이프라인의 설정은 다음과 같은 두 가지 광범위한 범주로 구분됩니다.

  1. Delta Live Tables 구문을 사용하여 데이터 세트를 선언하는 Notebook 또는 파일(소스 코드 또는 라이브러리라고 함)의 컬렉션을 정의하는 구성입니다.
  2. 파이프라인 인프라, 업데이트 처리 방법 및 테이블이 작업 영역에 저장되는 방법을 제어하는 구성입니다.

대부분의 구성은 선택 사항이지만 일부는 특히 프로덕션 파이프라인을 구성할 때 주의해야 합니다. 여기에는 다음이 포함됩니다.

  • 파이프라인 외부에서 데이터를 사용할 수 있도록 하려면 Hive 메타스토어에 게시할 대상 스키마를 선언하거나 대상 카탈로그대상 스키마를 선언하여 Unity 카탈로그에 게시해야 합니다.
  • 데이터 액세스 권한은 실행에 사용되는 클러스터를 통해 구성됩니다. 지정된 경우 클러스터에 데이터 원본 및 대상 스토리지 위치에 대해 구성된 적절한 권한이 있는지 확인합니다.

Python 및 SQL을 사용하여 파이프라인에 대한 소스 코드를 작성하는 방법에 대한 자세한 내용은 Delta Live Tables SQL 언어 참조Delta Live Tables Python 언어 참조를 참조하세요.

파이프라인 설정 및 구성에 대한 자세한 내용은 Delta Live Tables에 대한 파이프라인 설정 구성을 참조 하세요.

첫 번째 파이프라인 배포 및 업데이트 트리거

Delta Live Tables를 사용하여 데이터를 처리하기 전에 파이프라인을 구성해야 합니다. 파이프라인이 구성되면 업데이트를 트리거하여 파이프라인의 각 데이터 세트에 대한 결과를 계산할 수 있습니다. Delta Live Tables 파이프라인 사용을 시작하려면 자습서: 첫 번째 Delta Live Tables 파이프라인 실행을 참조하세요.

파이프라인 업데이트란?

파이프라인은 업데이트를 시작할 때 인프라를 배포하고 데이터 상태를 다시 계산합니다. 업데이트는 다음을 수행합니다.

  • 올바른 구성으로 클러스터를 시작합니다.
  • 정의된 모든 테이블과 뷰를 검색하고 잘못된 열 이름, 종속성 누락 및 구문 오류 등의 분석 오류를 확인합니다.
  • 사용 가능한 가장 최근 데이터로 테이블과 뷰를 만들거나 업데이트합니다.

파이프라인은 사용 사례의 비용 및 대기 시간 요구 사항에 따라 지속적으로 또는 일정에 따라 실행할 수 있습니다. Delta Live Tables 파이프라인에서 업데이트 실행을 참조하세요.

Delta Live Tables를 사용하여 데이터 수집

Delta Live Tables는 Azure Databricks에서 사용할 수 있는 모든 데이터 원본을 지원합니다.

Databricks는 대부분의 수집 사용 사례에 스트리밍 테이블을 사용하는 것이 좋습니다. 클라우드 개체 스토리지에 도착하는 파일의 경우 Databricks는 자동 로더를 권장합니다. 대부분의 메시지 버스에서 Delta Live Tables를 사용하여 데이터를 직접 수집할 수 있습니다.

클라우드 스토리지에 대한 액세스 구성에 대한 자세한 내용은 클라우드 스토리지 구성을 참조하세요.

자동 로더에서 지원되지 않는 형식의 경우 Python 또는 SQL을 사용하여 Apache Spark에서 지원하는 모든 형식을 쿼리할 수 있습니다. Delta Live Tables를 사용하여 데이터 로드를 참조 하세요.

데이터 품질 모니터링 및 적용

기대치를 사용하여 데이터 세트의 내용에 대한 데이터 품질 제어를 지정할 수 있습니다. 제약 조건에 실패한 레코드 추가를 방지하는 기존 데이터베이스의 CHECK 제약 조건과 달리 데이터 품질 요구 사항을 충족하지 못하는 데이터를 처리할 때 예상은 유연성을 제공합니다. 이러한 유연성 덕분에 지저분할 것으로 예상되는 데이터와 엄격한 품질 요구 사항을 충족해야 하는 데이터를 처리하고 저장할 수 있습니다. Delta Live Tables를 사용하여 데이터 품질 관리를 참조하세요.

Delta Live Tables는 Delta Lake의 기능을 확장합니다. Delta Live Tables에서 만들고 관리하는 테이블은 델타 테이블이므로 Delta Lake에서 제공하는 것과 동일한 보장 및 기능이 있습니다. Delta Lake란?을 참조하세요.

Delta Live Tables는 Delta Lake에서 설정할 수 있는 많은 테이블 속성 외에도 여러 테이블 속성을 추가합니다. Delta Live Tables 속성 참조델타 테이블 속성 참조를 참조하세요.

Delta Live Tables에서 테이블을 만들고 관리하는 방법

Azure Databricks는 Delta Live Tables로 만든 테이블을 자동으로 관리하여 테이블의 현재 상태를 올바르게 계산하기 위해 업데이트를 처리해야 하는 방법을 결정하고 여러 기본 테넌트 및 최적화 작업을 수행합니다.

대부분의 작업의 경우 Delta Live Tables가 대상 테이블에 대한 모든 업데이트, 삽입 및 삭제를 처리하도록 허용해야 합니다. 자세한 내용 및 제한 사항은 수동 삭제 또는 업데이트 유지를 참조 하세요.

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

Delta Live Tables는 업데이트되는 테이블의 24시간 이내에 기본 테넌트 작업을 수행합니다. 유지 관리를 통해 이전 버전의 테이블을 제거하여 쿼리 성능을 개선하고 비용을 절감할 수 있습니다. 기본적으로 시스템은 전체 OPTIMIZE 작업을 수행한 후 VACUUM을 수행합니다. 테이블의 테이블 속성에서 pipelines.autoOptimize.managed = false를 설정하여 테이블에 대해 OPTIMIZE를 사용하지 않도록 설정할 수 있습니다. 유지 관리 작업은 예약되기 24시간 전에 파이프라인 업데이트가 실행된 경우에만 실시됩니다.

제한 사항

다음과 같은 제한 사항이 적용됩니다.

  • Delta Live Tables에서 만들고 업데이트한 모든 테이블은 델타 테이블입니다.
  • Delta Live Tables 테이블은 한 번만 정의할 수 있습니다. 즉, 모든 Delta Live Tables 파이프라인에서 단일 작업의 대상이 될 수 있습니다.
  • ID 열은 대상 APPLY CHANGES INTO 테이블로 지원되지 않으며 구체화된 뷰에 대한 업데이트 중에 다시 계산될 수 있습니다. 이러한 이유로 Databricks는 델타 라이브 테이블에서 스트리밍 테이블이 있는 ID 열만 사용하는 것이 좋습니다. Delta Lake에서 ID 열 사용을 참조하세요.
  • Azure Databricks 작업 영역은 100개의 동시 파이프라인 업데이트로 제한됩니다.

추가 리소스