대량의 데이터를 이동해야 하는 경우 Delta Lake 테이블을 경계 없는 레이크하우스로 마이그레이션하는 것이 복잡하고 비용이 많이 들 수 있습니다. Dataflow 작업 빌더는 Cloud Storage Delta Lake 테이블을 Lakehouse로 직접 가져오기 위한 로우 코드 또는 노 코드 인터페이스를 제공합니다. 기존 데이터는 데이터 볼륨에 따라 자동 확장되는 Dataflow 작업을 사용하여 Delta Lake 테이블에서 대상 Lakehouse 테이블로 복사됩니다.
새 테이블의 경우 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 테이블 데이터를 Lakehouse로 가져오는 데는 다음과 같은 제한사항이 있습니다.
- 이 기능을 사용하려면 배치 파이프라인 작업을 사용해야 합니다.
- 기존 대상 테이블의 경우 스키마가 수정되지 않습니다. 대상 테이블 스키마는 소스 Delta Lake 테이블 스키마에 올바르게 매핑되어야 합니다.
- 소스 데이터는 Cloud Storage에 저장된 유효한 Delta Lake 테이블이어야 합니다. 테이블 루트 디렉터리에는 Delta Lake에서 생성한 Parquet 데이터 파일과
_delta_log/트랜잭션 로그 디렉터리 (JSON 또는 Parquet 로그 파일 포함)가 포함되어야 합니다. - Delta Lake 테이블 소스에는 Amazon S3가 지원되지 않습니다.
Delta Lake 테이블 가져오기
Delta Lake 테이블을 Lakehouse로 가져오려면 다음 단계를 완료하세요.
Google Cloud 콘솔에서 레이크하우스 런타임 카탈로그 페이지로 이동합니다.
데이터를 가져올 카탈로그, 네임스페이스, 테이블을 선택합니다.
표 세부정보 페이지에서 표 가져오기를 클릭한 다음 Delta Lake에서 (일괄)를 선택합니다.
Dataflow 작업 빌더 페이지가 열리고 Delta Lake to Lakehouse 블루프린트가 로드됩니다.
소스 섹션에서 다음을 수행합니다.
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 Lakehouse table 싱크 패널을 검토합니다. Lakehouse 테이블, 카탈로그 이름, 웨어하우스 위치와 같은 이 패널의 정보는 일반적으로 미리 채워져 있습니다.
완료를 클릭합니다.
Dataflow 옵션 섹션에서 작업 실행을 클릭합니다.
Delta Lake 테이블을 가져오는 데 사용되는 Dataflow 파이프라인을 추가로 맞춤설정해야 하는 경우 작업 빌더 양식이나 YAML 편집기를 사용하여 맞춤설정할 수 있습니다.
작업 출력 검사
작업이 완료되면 BigQuery에서 Lakehouse 테이블을 쿼리하여 데이터가 복사되었는지 확인할 수 있습니다.
Dataflow 작업 목록에서 작업 상태가 Succeeded인지 확인합니다.
작업이 실패하거나 오류가 있는 경우 작업 로그 또는 작업자 로그에서 세부정보를 확인합니다.
Google Cloud 콘솔에서 BigQuery Studio 페이지로 이동합니다.
쿼리 편집기에서 SQL 쿼리를 입력하여 테이블을 검사합니다.
PROJECT_ID.CATALOG.NAMESPACE.TABLE_NAME규칙을 사용하여 다음을 쿼리할 수 있습니다.SELECT * FROM `PROJECT_ID`.`CATALOG`.`NAMESPACE`.`TABLE_NAME` LIMIT 10;실행을 클릭합니다.
쿼리 결과를 검토하여 데이터가 올바르게 처리되었는지 확인합니다.
(선택사항) 지속적 마이그레이션 사용 설정
Delta Lake에서 Lakehouse로의 엔드 투 엔드 연속 마이그레이션을 설정하려면 다음 작업 순서를 완료하세요.
- 입력 Delta Lake 테이블에서
delta.enableChangeDataFeed속성을 사용 설정합니다. delta.enableChangeDataFeed속성을 설정한 후 커밋 ID 또는 타임스탬프로 초기 테이블 마이그레이션을 실행합니다.- 워크로드 요구사항에 따라 선택한 빈도 (커밋 ID 또는 타임스탬프 범위)를 사용하여 후속 데이터에 대해 예약된 CDC 작업을 실행합니다.
자세한 내용은 Dataflow를 사용하여 Delta Lake 변경 데이터 캡처 (CDC) 데이터를 Lakehouse로 마이그레이션을 참고하세요.
다음 단계
- 자세한 내용은 BigQuery의 Apache Iceberg용 Lakehouse 테이블 소개를 참고하세요.
- 주기적으로 Delta Lake CDC 데이터를 Lakehouse로 이전하는 방법을 자세히 알아보세요.
- Lakehouse의 변경 데이터 캡처 수집에 대해 알아봅니다.
- 작업 빌더 UI로 맞춤 작업을 만드는 방법을 자세히 알아보세요.