Apache Iceberg 테이블 개요

Lakehouse 런타임 카탈로그Iceberg REST 카탈로그 엔드포인트로 관리되는 Apache Iceberg 테이블은 오픈소스 Apache Iceberg 테이블 사양을 준수하는 개방형의 상호 운용 가능한 Iceberg 테이블로, 모든 Iceberg 호환 처리 엔진 또는 BigQuery를 사용하여 읽고 쓸 수 있습니다.

이 문서에서는 이러한 테이블을 'Lakehouse Iceberg 테이블' 또는 'Iceberg 테이블'이라고 합니다.

테이블 옵션을 구성하여 다음 기능을 선택하고 사용 설정할 수 있습니다.

  1. 읽기/쓰기 상호 운용성 (프리뷰): BigQuery, Managed Service for Apache Spark, 오픈소스 엔진 (Apache Spark, Apache Flink, Trino)과 같은 Iceberg 호환 엔진, 서드 파티 엔진 (예: Snowflake)을 비롯한 여러 엔진에 대한 원활한 읽기 및 쓰기 지원
  2. 자동 테이블 관리 (프리뷰): 압축 및 가비지 컬렉션과 같은 자동 테이블 관리 (스토리지 최적화)

앞의 기능 외에도 Lakehouse Iceberg 테이블 (프리뷰)은 기본적으로 다음 기능을 지원합니다.

  1. BigQuery 데이터 정의 언어 (프리뷰): Spark, Flink, Trino와 같은 Iceberg 호환 엔진을 사용하여 테이블을 만들거나 업데이트하는 것 외에도 BigQuery DDL 문 (예: CREATE TABLE, ALTER TABLE, DROP TABLE)을 사용하여 Iceberg 테이블을 만들거나 업데이트할 수 있습니다. 테이블이 생성되면 이러한 엔진과 BigQuery에서 읽고 쓸 수 있으며 Lakehouse 런타임 카탈로그로 관리되는 동일한 카탈로그 및 네임스페이스 구성의 일부입니다.
  2. BigQuery용 사용자 인증 정보 제공 지원 (프리뷰): BigQuery는 Lakehouse 런타임 카탈로그에서 Iceberg 테이블을 읽거나 쓸 때 인증을 위해 사용자 인증 정보 제공을 지원합니다. 카탈로그 수준에서 사용자 인증 정보 제공을 설정할 수 있습니다.

관리 작업

Apache Iceberg 테이블에서 다음 관리 작업을 수행할 수 있습니다.

  • 테이블 만들기: 콘솔, Spark, Trino, gcloud, BigQuery (프리뷰) 또는 Iceberg REST 카탈로그 API (CreateIcebergTable)를 사용하여 카탈로그 네임스페이스 내에 Apache Iceberg 테이블을 만듭니다. Google Cloud
  • 테이블 나열: 콘솔, Spark, Trino, gcloud, BigQuery (프리뷰) 또는 Iceberg REST 카탈로그 API (ListIcebergTableIdentifiers)를 사용하여 네임스페이스 내에서 테이블 식별자를 봅니다. Google Cloud
  • 테이블 세부정보 가져오기: 콘솔, Google Cloud Spark, Trino, gcloud, BigQuery (프리뷰) 또는 Iceberg REST 카탈로그 API (GetIcebergTable, LoadIcebergTableCredentials)를 사용하여 테이블 스키마, 속성, 사용자 인증 정보를 검사합니다.
  • 데이터 삽입: Spark, Trino 또는 BigQuery (프리뷰)를 사용하여 Iceberg 테이블에 데이터 행을 추가합니다.
  • 테이블 쿼리: 4부 테이블 이름을 사용하여 Spark, Trino 또는 BigQuery (프리뷰)에서 Iceberg 테이블에 대해 쿼리를 실행합니다.
  • DML로 데이터 수정: BigQuery (프리뷰), Spark 또는 Trino의 DML 문을 사용하여 Iceberg 테이블에서 데이터 행을 업데이트, 삭제 또는 병합합니다.
  • 테이블 변경: 콘솔, Spark, Trino, gcloud, BigQuery (프리뷰) 또는 Iceberg REST 카탈로그 API (UpdateIcebergTable)를 사용하여 테이블 스키마를 발전시키고 메타데이터 속성을 업데이트합니다. Google Cloud
  • 테이블 옵션 구성: BigQuery (프리뷰) DML 및 자동 테이블 관리를 사용 설정하도록 속성을 구성합니다.
  • 테이블 ACL 관리: Iceberg 테이블에서 IAM 정책을 보고 업데이트하여 특정 보안 주체의 액세스를 제어합니다 (get-iam-policy, set-iam-policy).
  • Iceberg V1 테이블을 V2로 업그레이드: 기존 Iceberg V1 테이블을 지원되는 V2 형식으로 업그레이드합니다.
  • Iceberg V3 테이블에서 바이너리 삭제 벡터 사용: Iceberg V3 테이블에서 최적화된 삭제 성능을 위해 바이너리 삭제 벡터를 사용 설정합니다.
  • 테이블 삭제: 콘솔, Spark, Trino, gcloud, BigQuery (프리뷰) 또는 Iceberg REST 카탈로그 API (DeleteIcebergTable)를 사용하여 기본 스토리지 파일을 삭제하지 않고 카탈로그에서 테이블 등록을 삭제합니다. Google Cloud

다음 단계