하이브 테이블 마이그레이션

하이브 테이블 마이그레이션 (Hive Table Migration)

아파치 하이브(Hive)는 ORC, Parquet, Avro 파일 포맷을 지원하고, 이 데이터들을 아이스버그로 마이그레이션할 수 있어요. 이 문서에서는 하이브 테이블을 아이스버그 테이블로 옮기는 세 가지 작업인 snapshot, migrate, add_files를 스파크 SQL로 실행하는 방법을 알려드릴게요. 버전 관리와 트랜잭션 업데이트를 제공하는 아이스버그로 옮길 때는 가장 최신 데이터 파일만 마이그레이션하면 돼요.

출처: 문서

본문

아파치 하이브는 아이스버그로 마이그레이션할 수 있는 ORC, Parquet, Avro 파일 포맷을 지원해요. 버전 관리와 트랜잭션 업데이트를 제공하는 아이스버그 테이블로 데이터를 옮길 때는 가장 최근 데이터 파일만 마이그레이션하면 돼요.

아이스버그는 하이브 테이블에서 아이스버그 테이블로 옮기는 세 가지 마이그레이션 작업인 스냅샷 테이블(Snapshot Table), 테이블 마이그레이션(Migrate Table), 파일 추가(Add Files)를 모두 지원해요. 하이브 테이블은 스냅샷을 유지하지 않기 때문에, 마이그레이션 과정은 기본적으로 기존 스키마로 새 아이스버그 테이블을 만들고 모든 파티션의 데이터 파일을 새 아이스버그 테이블에 커밋하는 방식으로 진행돼요. 초기 마이그레이션 이후의 새 데이터 파일은 파일 추가(Add Files) 작업으로 새 아이스버그 테이블에 추가해요.

하이브에서 아이스버그로의 마이그레이션 활성화 (Enabling Migration from Hive to Iceberg)

하이브 테이블 마이그레이션 작업은 스파크 통합(Spark Integration) 모듈에서 스파크 프로시저(Spark Procedures)로 지원돼요. 이 프로시저들은 아이스버그 릴리스 다운로드에서 제공되는 스파크 런타임 jar에 포함돼 있어요.

하이브 테이블을 아이스버그로 스냅샷 (Snapshot Hive Table to Iceberg)

하이브 테이블을 스냅샷하려면 다음 스파크 SQL을 실행하면 돼요:

CALL catalog_name.system.snapshot('db.source', 'db.dest')

자세한 내용은 스파크 프로시저: snapshot 문서를 확인해주세요.

하이브 테이블을 아이스버그로 마이그레이션 (Migrate Hive Table To Iceberg)

하이브 테이블을 아이스버그로 마이그레이션하려면 다음 스파크 SQL을 실행하면 돼요:

CALL catalog_name.system.migrate('db.sample')

자세한 내용은 스파크 프로시저: migrate 문서를 확인해주세요.

하이브 테이블에서 아이스버그로 파일 추가 (Add Files From Hive Table to Iceberg)

하이브 테이블의 데이터 파일을 특정 아이스버그 테이블에 추가하려면 다음 스파크 SQL을 실행하면 돼요:

CALL spark_catalog.system.add_files(
  table => 'db.tbl',
  source_table => 'db.src_tbl'
)

자세한 내용은 스파크 프로시저: add_files 문서를 확인해주세요.

더 알아보기 (Learn more)