Lakehouse for Apache Iceberg의 기술 아키텍처는 메타데이터 관리를 중앙 집중화하고 특정 경로를 통해 쿼리를 처리하여 엔진 간의 상호 운용성을 지원합니다.
아키텍처
Google Cloud의 Lakehouse는 다음과 같은 기술 구성요소로 구성됩니다.
스토리지: Cloud Storage 및 BigQuery 스토리지가 스토리지 레이어 역할을 하며, Apache Iceberg는 Cloud Storage에서 상호 운용 가능한 고성능 스토리지를 위한 추천 개방형 테이블 형식입니다.
카탈로그: Lakehouse 런타임 카탈로그는 메타데이터를 관리하기 위한 단일 정보 소스를 제공합니다. Apache Iceberg REST 카탈로그 엔드포인트와 같은 다양한 호환성 옵션을 사용하여 여러 엔진에서 메타데이터 검색을 중앙 집중화합니다. 카탈로그에 테이블을 등록하면 비즈니스 메타데이터 Knowledge Catalog에 항목이 자동으로 등록됩니다.
쿼리 엔진: BigQuery와 Apache Spark, Apache Flink, Trino를 비롯한 오픈소스 엔진은 Lakehouse 런타임 카탈로그에 연결하여 원활하게 상호 운용됩니다. Apache Spark용 관리 서비스와 같은 컴퓨팅 엔진은 실행 최적화가 적용된 오픈소스 Apache Spark를 활용하여 워크로드 이식성을 보장하고 공급업체 종속을 방지합니다.
거버넌스: Knowledge Catalog는 전체 레이크하우스에서 중앙 집중식 보안, 계보, 거버넌스 정책을 제공합니다.
데이터 쓰기 및 분석 도구: 통합 엔진과 도구는 데이터 수집 및 분석을 위한 여러 경로를 제공하여 데이터 과학자와 분석가 모두에게 일관된 데이터 액세스를 보장합니다.
리소스 계층 구조
Google Cloud의 레이크하우스는 Apache Iceberg 표준 및 표준 데이터베이스 개념에 부합하는 계층 구조를 사용하여 데이터를 정리합니다. 이 구조를 통해 Lakehouse 런타임 카탈로그는 논리적 ID를 실제 스토리지 경로에 매핑할 수 있습니다. 이 리소스 계층 구조와 상호작용하고 쿼리 엔진을 카탈로그에 연결하려면 아래에 설명된 대로 특정 엔드포인트를 사용합니다.
- 레이크하우스 런타임 카탈로그: 메타데이터를 호스팅하는 Google Cloud 최상위 지역 서비스 리소스입니다. 쿼리 엔진을 이 서비스에 연결하고 기본 카탈로그를 관리하려면 Apache Iceberg REST 카탈로그 엔드포인트와 같은 특정 카탈로그 엔드포인트를 사용하여 클라이언트 애플리케이션을 구성합니다.
- 카탈로그: 런타임 카탈로그 서비스 내의 논리적 컨테이너입니다. 프로젝트/카탈로그/네임스페이스/표 (P.C.N.T) 명명 구조에서 이는 쿼리 중인 특정 카탈로그 인스턴스를 나타냅니다.
- 네임스페이스: 카탈로그 내 테이블의 논리적 그룹화입니다. BigQuery에 익숙한 사용자에게 네임스페이스는 기능적으로 데이터 세트와 유사합니다.
- 표: Cloud Storage의 데이터를 가리키는 특정 항목입니다. 테이블 메타데이터에는 스키마, 파티셔닝 정보, Apache Iceberg
metadata.json파일을 통한 현재 테이블 상태 포인터가 포함됩니다.
지원되는 엔드포인트
Lakehouse 런타임 카탈로그는 Cloud Storage와 BigQuery 전반에서 데이터를 연결하는 여러 엔드포인트를 제공합니다.
Apache Iceberg REST 카탈로그 엔드포인트: Apache Spark, Apache Flink, Trino와 같은 오픈소스 엔진과의 광범위한 호환성을 위해 표준 REST 인터페이스를 제공합니다. 이는 새 워크로드에 권장되는 인터페이스이며 전체 읽기 및 쓰기 상호 운용성을 제공합니다.
BigQuery 엔드포인트용 맞춤 Apache Iceberg 카탈로그: 엔진이 BigQuery 카탈로그와 직접 상호 운용할 수 있습니다. 이 인터페이스는 주로 BigQuery에서 관리하는 Apache Iceberg 테이블과 레이크하우스 아키텍처로 전환하는 기존 워크로드에 사용됩니다.
Apache Hive 카탈로그 엔드포인트: Apache Hive 메타스토어 (HMS) 인터페이스에 종속된 오픈소스 워크로드의 호환성을 제공합니다. 이를 통해 Google Cloud에서 완전 관리형 메타스토어 서비스에 대해 Apache Hive 또는 Spark 워크로드를 실행할 수 있습니다.
Lakehouse 런타임 카탈로그
리소스 계층 내에서 Lakehouse 런타임 카탈로그는 Google Cloud의 최상위 지역 메타데이터 서비스 역할을 합니다. 개별 카탈로그 인스턴스를 호스팅하는 루트 컨테이너 역할을 하여 서로 다른 쿼리 엔진 간의 메타데이터 검색을 중앙 집중화합니다.
주요 기능, 지원되는 엔진, 엔드포인트 구성, 제한사항 등 메타스토어 서비스에 대해 자세히 알아보려면 레이크하우스 런타임 카탈로그 정보를 참고하세요.
카탈로그
카탈로그는 단일 Cloud Storage 웨어하우스 버킷으로 지원되는 논리적 메타스토어 컨테이너입니다. Project.Catalog.Namespace.Table (P.C.N.T) 명명 구조에서 카탈로그는 개방형 테이블 메타데이터를 쿼리 엔진과 연결하는 고유한 메타스토어 인스턴스를 나타냅니다.
카탈로그의 주요 특징은 다음과 같습니다.
- 스토리지 연결: 하나의 카탈로그만 단일 Cloud Storage 버킷과 연결할 수 있습니다.
- 리전 복제: 카탈로그의 리전이 기본 Cloud Storage 버킷의 리전과 자동으로 일치합니다.
- 액세스 위임: 관리자는 카탈로그에서 사용자 인증 정보 판매를 사용 설정하여 액세스를 위임할 수 있습니다. 이렇게 하면 사용자에게 직접 버킷 권한을 부여하는 대신 범위가 축소된 단기 사용자 인증 정보가 자동으로 생성됩니다.
네임스페이스
네임스페이스는 카탈로그 내 테이블의 논리적 그룹으로, 데이터베이스, 스키마 또는 BigQuery 데이터 세트와 유사하게 작동합니다. 테이블의 액세스 제어를 정리하고 관리하는 구조를 제공합니다.
네임스페이스의 주요 특징은 다음과 같습니다.
- 리전: 네임스페이스를 만들면 상위 카탈로그와 동일한 리전을 자동으로 사용합니다.
- 중첩 제한사항: 중첩된 네임스페이스 (하위 네임스페이스)는 지원되지 않습니다.
- 보안 경계: 네임스페이스 수준에서 IAM 역할을 부여하여 네임스페이스에 포함된 모든 테이블에 대한 액세스를 관리할 수 있습니다.
테이블
Google Cloud의 Lakehouse로 빌드할 때는 다음 표 유형 중에서 선택할 수 있습니다.
Lakehouse 런타임 카탈로그에서 지원
권장
- Apache Iceberg 테이블: 오픈소스 엔진에서 만들고 Cloud Storage에 저장하는 Apache Iceberg 테이블입니다. 이러한 기능은 Lakehouse 런타임 카탈로그 REST 엔드포인트를 통해 개방형 호환성 및 관리를 제공합니다.
BigQuery에서 지원
- Apache Iceberg 테이블: BigQuery에서 생성하고 관리하는 Apache Iceberg 테이블입니다. 이러한 테이블의 메타데이터는 BigQuery 카탈로그에 저장되고 테이블 데이터와 물리적 메타데이터는 Cloud Storage에 저장됩니다.
- 기본 테이블: BigQuery에서 완전히 관리하며 레이크하우스 런타임 카탈로그에 연결하여 오픈소스 엔진과의 상호 운용성을 지원할 수 있는 테이블입니다.
- 외부 테이블: 데이터와 메타데이터가 자체 관리되는 Lakehouse 런타임 카탈로그 외부의 테이블입니다. Cloud Storage, Amazon S3 또는 Azure Blob Storage에 저장된 데이터에 대한 연결을 통해 위임된 액세스를 지원합니다.
이러한 옵션의 자세한 비교는 표 개요를 참고하세요.
지원되는 표 형식
Apache Iceberg V2 테이블만 지원되며 Iceberg V1 테이블은 지원되지 않습니다. 기존 Iceberg V1 테이블이 있는 경우 Lakehouse for Apache Iceberg와 함께 사용하기 전에 V2로 업그레이드해야 합니다 (예: ALTER TABLE catalog.schema.table SET TBLPROPERTIES ('format-version'='2'); 실행 또는 유사한 엔진 작업 사용).
쿼리 처리 시퀀스
Google Cloud의 Lakehouse 테이블에 쿼리를 제출하면 데이터가 처리되기 전에 정책을 적용하고 메타데이터를 가져오기 위해 요청이 특정 경로를 따릅니다.
- 제출: Apache Spark, Trino, BigQuery와 같은 호환 엔진에 SQL 쿼리를 제출합니다.
- 메타데이터 요청: 엔진은 Lakehouse 런타임 카탈로그에서 테이블 메타데이터를 요청하여 테이블과 메타데이터 위치를 식별합니다.
- 승인: 사용 중인 엔드포인트에서 지원하는 경우 카탈로그는 Identity and Access Management (IAM) 및 세분화된 보안 정책에 대해 요청을 검증합니다.
- 메타데이터 응답: 카탈로그에서 메타데이터를 반환합니다. 사용자 인증 정보 제공이 사용 설정된 경우 보안 스토리지 액세스를 지원하는 단기 토큰도 제공합니다.
- 데이터 검색: 엔진은 메타데이터와 선택적 토큰을 사용하여 Cloud Storage에서 데이터 파일을 직접 읽습니다.
- 실행: 엔진이 데이터를 처리하고 결과를 반환합니다.
권장사항
Google Cloud에서 데이터 레이크하우스를 설계하고 운영할 때는 다음 권장사항을 고려하세요.
- 메달리온 아키텍처 채택: 데이터 웨어하우스를 점진적인 논리적 레이어 (원시 수집용 브론즈, 정리되고 준수하는 데이터용 실버, 선별된 비즈니스 수준 집계용 골드)로 구조화합니다. 골드 소비 레이어에 BigQuery를 사용하여 쿼리 성능과 동시성을 극대화합니다.
- 대화형 워크로드에 세션 템플릿 사용: 탐색적 분석 및 노트북 작성의 경우 세션 템플릿을 사용하여 개발팀 간에 환경 구성을 표준화하고 반복적인 설정을 줄입니다.
- 맞춤 일괄 작업 식별자 할당: 비대화형 서버리스 Apache Spark 일괄 워크로드를 제출할 때 맞춤 일괄 작업 및 작업 이름을 할당합니다. 이렇게 하면 모니터링 가능성이 개선되어 Cloud Logging 및 Google Cloud 콘솔 내에서 작업 실행을 더 쉽게 필터링하고 추적할 수 있습니다.
- 진단 로깅 사용 설정: 복잡한 데이터 엔지니어링 파이프라인의 경우 진단 번들을 사용 설정하고 드라이버 및 실행기 로그가 유지되도록 하여 문제 해결 및 지원 가능성을 간소화합니다.
다음 단계
- 메타스토어 서비스에 대해 자세히 알아보려면 레이크하우스 런타임 카탈로그 정보를 참고하세요.
- Apache Spark, BigQuery, Apache Iceberg REST 카탈로그 엔드포인트와 함께 Lakehouse 런타임 카탈로그를 사용합니다.