대용량의 데이터를 다시 작성하거나 이동해야 하는 경우 Delta Lake 테이블을 Lakehouse for Apache Iceberg로 마이그레이션하는 작업은 복잡하고 비용이 많이 들 수 있습니다. 기본 파일을 이동하거나 다시 작성하지 않고 레이크하우스에서 Delta Lake 데이터를 사용할 수 있도록 하려면 Dataflow 작업 빌더를 사용하면 됩니다. 작업 빌더는 Cloud Storage Delta Lake 테이블을 레이크하우스로 직접 가져오는 로우 코드 또는 노 코드 인터페이스를 제공합니다.
새 테이블의 경우 Dataflow가 스키마를 자동으로 만듭니다. 기존 테이블의 경우 스키마가 수정되지 않으므로 작업이 성공하려면 대상 테이블 스키마가 소스 Delta Lake 테이블에 올바르게 매핑되어야 합니다.
다음 연결 세부정보를 사용하여 Cloud Storage에 저장된 Delta Lake 테이블에서 데이터를 가져옵니다.
시작하기 전에
Delta Lake 테이블 데이터를 가져오려면 다음이 필요합니다.
Dataflow, BigQuery, Lakehouse API를 사용 설정합니다.
API 사용 설정에 필요한 역할
API를 사용 설정하려면
serviceusage.services.enable권한이 필요합니다. 프로젝트를 만든 경우 소유자 역할 (roles/owner)을 통해 이 권한을 이미 보유하고 있을 가능성이 높습니다. 그렇지 않은 경우 서비스 사용량 관리자 역할 (roles/serviceusage.serviceUsageAdmin)을 통해 이 권한을 얻을 수 있습니다. 역할 부여 방법 알아보기리소스를 만드는 데 필요한 권한을 얻으려면 관리자에게 프로젝트에 필요한 Identity and Access Management (IAM) 역할을 부여해 달라고 요청하세요.
Cloud Storage 버킷에 저장된 기존 Delta Lake 테이블입니다. 테이블 디렉터리는 Parquet 데이터 파일과
_delta_log/트랜잭션 로그 디렉터리가 포함된 유효한 Delta Lake 테이블 루트여야 합니다.데이터를 가져올 Lakehouse Iceberg 카탈로그, 네임스페이스, 테이블입니다.
지원 및 제한 사항
Dataflow를 사용하여 Delta Lake 테이블 데이터를 Apache Iceberg용 레이크하우스로 가져오는 데는 다음과 같은 제한사항이 있습니다.
- 이 기능을 사용하려면 일괄 파이프라인 작업을 사용해야 합니다.
- 기존 대상 테이블의 경우 스키마가 수정되지 않습니다. 대상 테이블 스키마는 소스 Delta Lake 테이블 스키마에 올바르게 매핑되어야 합니다.
- 소스 데이터는 Cloud Storage에 저장된 유효한 Delta Lake 테이블이어야 합니다. 테이블 루트 디렉터리에는 Delta Lake에서 만든 Parquet 데이터 파일과
_delta_log/트랜잭션 로그 디렉터리 (JSON 또는 Parquet 로그 파일 포함)가 포함되어야 합니다. - Amazon S3는 Delta Lake 테이블 소스에 지원되지 않습니다.
Delta Lake 테이블 가져오기
Delta Lake 테이블을 Lakehouse for Apache Iceberg로 가져오려면 다음 단계를 완료하세요.
Google Cloud 콘솔에서 Lakehouse 런타임 카탈로그 페이지로 이동합니다.
데이터를 가져올 카탈로그, 네임스페이스, 테이블을 선택합니다.
테이블 세부정보 페이지에서 테이블 가져오기를 클릭한 후 Delta Lake에서 (일괄)를 선택합니다.
Dataflow 작업 빌더 페이지가 열리고 Delta Lake에서 레이크하우스로 블루프린트가 로드됩니다.
소스 섹션에서 다음을 수행합니다.
ReadFromDeltaLake Delta Lake 테이블 소스 패널을 펼치려면 확장기 화살표를 클릭합니다.
테이블 경로 필드에 Delta Lake 테이블의 루트 디렉터리 (데이터 파일과
_delta_log/디렉터리가 포함된 디렉터리)의 Cloud Storage URI를 입력합니다. 예를 들면gs://BUCKET_NAME/tables/TABLE_NAME입니다.선택사항: Hadoop 구성 속성 필드에서 Cloud Storage에서 읽는 데 필요한 추가 Hadoop 구성 속성을 구성합니다. 예를 들면
fs.gs.impl=com.google.cloud.hadoop.fs.gcs.GoogleHadoopFileSystem입니다.완료 를 클릭합니다.
싱크 섹션에서 다음을 수행합니다.
선택사항: WriteToIceberg 레이크하우스 테이블 싱크 패널을 검토합니다. 이 패널의 정보(예: 레이크하우스 테이블, 카탈로그 이름, 웨어하우스 위치)는 일반적으로 미리 채워져 있습니다.
완료 를 클릭합니다.
Dataflow 옵션 섹션에서 작업 실행 을 클릭합니다.
Delta Lake 테이블을 가져오는 데 사용되는 Dataflow 파이프라인을 추가로 맞춤설정해야 하는 경우 작업 빌더 양식 또는 YAML 편집기를 사용하여 맞춤설정할 수 있습니다.
작업 출력 검사
작업이 완료되면 BigQuery에서 쿼리하여 데이터가 Iceberg 테이블에 등록되었는지 확인할 수 있습니다.
Dataflow 작업 목록에서 작업 상태가 성공 인지 확인합니다.
작업이 실패하거나 오류가 있는 경우 작업 로그 또는 작업자 로그에서 세부정보를 확인합니다.
Google Cloud 콘솔에서 BigQuery Studio 페이지로 이동합니다.
쿼리 편집기에서 테이블을 검사하는 SQL 쿼리를 입력합니다.
PROJECT_ID.CATALOG.NAMESPACE.TABLE_NAME규칙을 사용하여 쿼리할 수 있습니다.SELECT * FROM `PROJECT_ID`.`CATALOG`.`NAMESPACE`.`TABLE_NAME` LIMIT 10;실행 을 클릭합니다.
쿼리 결과 를 검토하여 데이터가 올바르게 처리되었는지 확인합니다.
다음 단계
- 작업 빌더 UI로 커스텀 작업을 만드는 방법을 자세히 알아보세요.
- BigQuery의 Apache Iceberg용 레이크하우스 테이블 소개에서 자세히 알아보세요.