BigQuery용 커스텀 Apache Iceberg 카탈로그 엔드포인트는 Apache Spark 및 Apache Flink와 같은 오픈소스 쿼리 엔진을 Lakehouse 런타임 카탈로그 에 연결합니다. 커스텀 카탈로그 플러그인 (BigQueryMetastoreCatalog)을 통합하면 이 엔드포인트를 통해 Cloud Storage에 데이터 및 메타데이터 파일을 저장하면서 BigQuery를 통해 Apache Iceberg 테이블 메타데이터를 직접 관리하고 쿼리할 수 있습니다.
커스텀 Iceberg 카탈로그 작동 방식
커스텀 Apache Iceberg 카탈로그는 JAR 라이브러리에서 제공되는 커스텀 카탈로그 구현(org.apache.iceberg.gcp.bigquery.BigQueryMetastoreCatalog)을 사용합니다. 컴퓨팅 워크로드가 Managed Service for Apache Spark에서 실행되면 엔진은 이 플러그인을 사용하여 Apache Iceberg 테이블의 메타데이터 저장소로 BigQuery와 상호작용합니다.
워크플로는 다음과 같이 작동합니다.
- 카탈로그 구현: 쿼리 엔진은 BigQuery Metastore 카탈로그 JAR을 로드하고
org.apache.iceberg.gcp.bigquery.BigQueryMetastoreCatalog를 사용하도록 Spark 세션 카탈로그 속성을 구성합니다. - 메타데이터 관리: Spark SQL 또는 DataFrame API를 사용하여 테이블을 만들거나 수정하면 플러그인이 BigQuery에 데이터 세트 및 테이블 정의를 저장합니다.
- 데이터 스토리지: Apache Iceberg 메타데이터 파일 (
metadata.json, 매니페스트 목록, 매니페스트) 및 데이터 파일 (예: Parquet 파일)은 지정된 Cloud Storage 웨어하우스 경로에 직접 저장됩니다. - 엔진 간 액세스: 메타데이터가 BigQuery에 등록되므로 Spark와 같은 오픈소스 엔진과 BigQuery에서 직접 테이블을 쿼리할 수 있습니다.
리소스 계층 구조
BigQuery 엔드포인트용 커스텀 Apache Iceberg 카탈로그는 메타데이터를 다음 계층 구조로 구성합니다.
| 리소스 | 설명 |
|---|---|
| 프로젝트 | BigQuery 리소스 및 Cloud Storage 웨어하우스 스토리지가 포함된 Google Cloud 프로젝트입니다. |
| 네임스페이스 (데이터 세트) | Iceberg 네임스페이스 역할을 하도록 구성된 BigQuery 데이터 세트로, 그 안에 생성된 테이블의 기본 Cloud Storage 위치를 정의합니다. |
| 테이블 | 스키마, 스냅샷, 메타데이터 포인터가 BigQuery에서 추적되고 데이터 파일이 Cloud Storage에 있는 Apache Iceberg 테이블입니다. |
커스텀 Iceberg 카탈로그와 Iceberg REST 카탈로그 비교
다음 표에는 BigQuery 엔드포인트용 커스텀 Apache Iceberg 카탈로그와 Apache Iceberg REST 카탈로그 엔드포인트 간의 주요 차이점이 요약되어 있습니다.
| 기능 | BigQuery용 커스텀 Iceberg 카탈로그 | Apache Iceberg REST 카탈로그 엔드포인트 (권장) |
|---|---|---|
| 카탈로그 API 표준 | 커스텀 플러그인 (BigQueryMetastoreCatalog) |
오픈 표준 Apache Iceberg REST Catalog API |
| 카탈로그 계층 구조 | 프로젝트 > BigQuery 데이터 세트 > 테이블 | 프로젝트 > 카탈로그 > 네임스페이스 > 테이블 (P.C.N.T) |
| 스토리지 구성 | 데이터 세트 또는 테이블별로 지정된 Cloud Storage 경로 | 다중 버킷 (bl://) 또는 단일 버킷 (gs://) 카탈로그 |
| 사용자 인증 정보 벤더 제공 | 지원되지 않음 (직접 IAM 사용자 인증 정보 사용) | 지원됨 (단기 스토리지 액세스 토큰 벤더 제공) |
| 재해 복구 | 지원되지 않음 | 지원됨 (리전 간 복제 및 장애 조치) |
| 추천 대상 | 기존 배포 및 워크플로 | 새 워크로드 및 표준 Iceberg REST 클라이언트 통합 |
다음 단계
- Apache Iceberg 1.10 이상을 사용하여 런타임 카탈로그를 구성합니다.
- Apache Iceberg 1.9 이하를 사용하여 런타임 카탈로그를 구성합니다.
- 카탈로그 리소스 를 만들고 관리합니다.
- BigQuery 테이블과 함께 런타임 카탈로그를 사용합니다.
- Apache Spark 저장 프로시저를 사용합니다.
- 추가 카탈로그 기능을 맞춤설정합니다.