Delta Lake에 Parquet 및 Iceberg 테이블 증분 복제

Azure Databricks 복제 기능을 사용하여 Parquet 또는 Iceberg 데이터 원본에서 관리형 또는 외부 델타 테이블로 데이터를 증분 방식으로 변환할 수 있습니다.

Parquet 및 Iceberg용 Azure Databricks 복제는 델타 테이블을 복제하고 테이블을 Delta Lake로 변환하는 데 사용되는 기능을 결합합니다. 이 문서에서는 이 기능의 사용 사례 및 제한 사항에 대해 설명하고 예제를 제공합니다.

Important

이 기능은 공개 미리 보기 상태입니다.

참고 항목

이 기능을 사용하려면 Databricks Runtime 11.3 이상이 필요합니다.

Parquet 또는 Iceberg 데이터의 증분 수집에 복제본을 사용하는 경우

Azure Databricks는 레이크하우스에 데이터를 수집하기 위한 다양한 옵션을 제공합니다. Databricks는 다음과 같은 상황에서 복제본을 사용하여 Parquet 또는 Iceberg 데이터를 수집하는 것이 좋습니다.

참고 항목

원본 테이블이라는 용어는 복제할 테이블 및 데이터 파일을 참조하는 반면 대상 테이블은 작업에 의해 생성되거나 업데이트된 Delta 테이블을 나타냅니다.

  • Parquet 또는 Iceberg에서 Delta Lake로 마이그레이션을 수행하고 있지만 원본 테이블을 계속 사용해야 합니다.
  • 추가, 업데이트 및 삭제를 수신하는 대상 테이블과 프로덕션 원본 테이블 간에 수집 전용 동기화를 유지해야 합니다.
  • 보고, 기계 학습 또는 일괄 처리 ETL을 위한 원본 데이터의 ACID 규격 스냅샷을 만들려고 합니다.

복제용 구문은 무엇인가요?

Parquet 및 Iceberg용 복제본은 델타 테이블을 복제하는 데 사용되는 것과 동일한 기본 구문을 사용하며 부분 복제와 전체 복제를 지원합니다. 자세한 내용은 형식 복제를 참조하세요.

Databricks는 대부분의 워크로드에 대해 증분 방식으로 복제를 사용할 것을 권장합니다. Parquet 및 Iceberg에 대한 복제 지원은 SQL 구문을 사용합니다.

참고 항목

Parquet 및 Iceberg용 복제에는 복제 또는 Delta로 변환하는 것과는 다른 요구 사항과 보장이 있습니다. Parquet 및 Iceberg 테이블 복제에 대한 요구 사항 및 제한 사항을 참조하세요.

파일 경로를 사용하여 Parquet 또는 Iceberg 테이블을 전체 복제하려면 다음 구문을 사용합니다.

CREATE OR REPLACE TABLE <target-table-name> CLONE parquet.`/path/to/data`;

CREATE OR REPLACE TABLE <target-table-name> CLONE iceberg.`/path/to/data`;

파일 경로를 사용하여 Parquet 또는 Iceberg 테이블을 단순 복제하려면 다음 구문을 사용합니다.

CREATE OR REPLACE TABLE <target-table-name> SHALLOW CLONE parquet.`/path/to/data`;

CREATE OR REPLACE TABLE <target-table-name> SHALLOW CLONE iceberg.`/path/to/data`;

다음 예제와 같이 메타스토어에 등록된 Parquet 테이블에 대해 전체 복제본이나 부분 복제본을 만들 수도 있습니다.

CREATE OR REPLACE TABLE <target-table-name> CLONE <source-table-name>;

CREATE OR REPLACE TABLE <target-table-name> SHALLOW CLONE <source-table-name>;

Parquet 및 Iceberg 테이블 복제에 대한 요구 사항 및 제한 사항을 참조하세요.

전체 복제본을 사용하든 부분 복제본을 사용하든, 복제가 발생한 후 대상 테이블에 적용된 변경 내용은 원본 테이블로 다시 동기화할 수 없습니다. 복제본과의 증분 동기화는 단방향이므로 원본 테이블의 변경 내용을 대상 델타 테이블에 자동으로 적용할 수 있습니다.

Parquet 및 Iceberg 테이블과 함께 복제본을 사용하는 경우 다음과 같은 추가 제한 사항이 적용됩니다.

  • 원본 테이블을 확인하려면 테이블 이름을 복제하고 사용하기 전에 파티션이 있는 Parquet 테이블을 Hive 메타스토어와 같은 카탈로그에 등록해야 합니다. 파티션이 있는 Parquet 테이블에는 경로 기반 클론 구문을 사용할 수 없습니다.
  • 파티션이 진화한 Iceberg 테이블은 복제할 수 없습니다.
  • 업데이트, 삭제 또는 병합이 발생한 Iceberg 병합-읽기 테이블은 복제할 수 없습니다.
  • 다음은 잘린 열에 정의된 파티션을 사용하여 Iceberg 테이블을 복제하기 위한 제한 사항입니다.
    • Databricks Runtime 12.2 LTS 이하에서 지원되는 유일한 잘린 열 형식은 다음과 같습니다 string.
    • Databricks Runtime 13.3 LTS 이상에서는 잘린 형식 stringlong열 또는 int.
    • Azure Databricks는 잘린 형식 decimal의 열 작업을 지원하지 않습니다.
  • 증분 클론은 원본 테이블의 스키마 변경 내용과 속성을 동기화하고, 복제된 테이블에 로컬로 작성된 스키마 변경 내용 및 데이터 파일이 재정의됩니다.
  • Unity 카탈로그는 부분 복제본을 지원하지 않습니다.
  • 경로를 정의할 때는 glob 패턴을 사용할 수 없습니다.

참고 항목

Databricks Runtime 11.3에서 이 작업은 파일 수준 통계를 수집하지 않습니다. 따라서 대상 테이블은 Delta Lake 데이터 건너뛰기를 활용하지 않습니다. 파일 수준 통계는 Databricks Runtime 12.2 LTS 이상에서 수집됩니다.