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 런타임 카탈로그에 연결하여 원활하게 상호 운용됩니다. Managed Service for Apache Spark와 같은 컴퓨팅 엔진은 실행 최적화가 포함된 오픈소스 Apache Spark를 사용하여 워크로드 이식성을 보장하고 공급업체 종속을 방지합니다.
거버넌스: Knowledge Catalog는 전체 레이크하우스에서 중앙 집중식 보안, 계보, 거버넌스 정책을 제공합니다.
데이터 쓰기 및 분석 도구: 통합 엔진 및 도구는 데이터 과학자와 분석가 모두에게 일관된 데이터 액세스를 보장하는 데 도움이 되는 데이터 수집 및 분석을 위한 여러 경로를 제공합니다.
리소스 계층 구조
Google Cloud의 Lakehouse는 Apache Iceberg 표준 및 표준 데이터베이스 개념에 부합하는 계층 구조를 사용하여 데이터를 구성합니다. 이 구조를 사용하면 Lakehouse 런타임 카탈로그가 논리적 ID를 실제 스토리지 경로에 매핑할 수 있습니다. 이 리소스 계층 구조와 상호작용하고 쿼리 엔진을 카탈로그에 연결하려면 다음 목록에 설명된 대로 특정 엔드포인트를 사용합니다.
- Lakehouse 런타임 카탈로그: 메타데이터를 호스팅하는 최상위 리전 서비스 리소스입니다. 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 테이블 과 Lakehouse 아키텍처로 전환하는 기존 워크로드에 사용됩니다.
Apache Hive 카탈로그 엔드포인트 (프리뷰): Apache Hive 메타스토어 (HMS) 인터페이스에 종속된 오픈소스 워크로드의 호환성을 제공합니다. 이를 통해 에서 완전 관리형 메타스토어 서비스에 대해 Apache Hive 또는 Spark 워크로드를 실행할 수 있습니다 Google Cloud.
Lakehouse 런타임 카탈로그
리소스 계층 구조 내에서 Lakehouse 런타임 카탈로그 는 의 최상위 리전 메타데이터 서비스 역할을 합니다 Google Cloud. 개별 카탈로그 인스턴스를 호스팅하는 루트 컨테이너 역할을 하며, 서로 다른 쿼리 엔진에서 메타데이터 검색을 중앙 집중화합니다.
오픈소스 Apache Iceberg REST 카탈로그 API 를 구현하여 네임스페이스와 테이블을 관리하고 카탈로그 관리를 위한 확장 프로그램을 제공합니다.
주요 기능, 지원되는 엔진, 엔드포인트 구성, 제한사항을 비롯한 메타스토어 서비스에 대한 자세한 내용은 Lakehouse 런타임 카탈로그 정보를 참조하세요.
카탈로그
카탈로그는 Cloud Storage 웨어하우스 위치에서 지원되는 논리적 메타스토어 컨테이너입니다. Project.Catalog.Namespace.Table (P.C.N.T) 명명 구조에서 카탈로그는 오픈 테이블 메타데이터를 쿼리 엔진에 연결하는 고유한 메타스토어 인스턴스를 나타냅니다.
카탈로그의 주요 특징은 다음과 같습니다.
- 스토리지 연결: 카탈로그와 기본 스토리지 간의 관계는 구성하는 카탈로그 유형에 따라 달라집니다.
- 리전 복제: 카탈로그의 리전은 기본 버킷의 리전과 자동으로 일치합니다.
- 액세스 위임: 관리자는 카탈로그에서 사용자 인증 정보 판매를 사용 설정하여 액세스를 위임할 수 있으므로 사용자에게 직접 버킷 권한을 부여하는 대신 범위가 축소된 단기 사용자 인증 정보가 자동 생성됩니다.
네임스페이스
네임스페이스는 카탈로그 내의 테이블의 논리적 그룹화로, 데이터베이스, 스키마 또는 BigQuery 데이터 세트와 유사하게 작동합니다. 테이블의 액세스 제어를 구성하고 관리하는 구조를 제공합니다.
네임스페이스의 주요 특징은 다음과 같습니다.
- 리전: 네임스페이스를 만들 때 상위 카탈로그와 동일한 리전을 자동으로 사용합니다.
- 위치 유연성: 커스텀 네임스페이스 위치를 지정하는 옵션은 카탈로그의 웨어하우스 유형에 따라 결정됩니다.
- 중첩 제한: 중첩된 네임스페이스 (하위 네임스페이스)는 지원되지 않습니다.
- 보안 경계: 네임스페이스 수준에서 IAM 역할을 부여하여 네임스페이스에 포함된 모든 테이블에 대한 액세스를 관리할 수 있습니다.
테이블
Google Cloud의 Lakehouse로 빌드할 때 다음 테이블 유형 중에서 선택할 수 있습니다.
Lakehouse 런타임 카탈로그에서 지원
권장
Apache Iceberg 테이블: 오픈소스 엔진에서 만들고 Cloud Storage에 저장하는 Apache Iceberg 테이블입니다. Lakehouse 런타임 카탈로그 REST 엔드포인트를 통해 개방형 호환성 및 관리를 제공합니다. 두 테이블이 동일한 위치를 차지하지 않도록 하려면 커스텀 테이블 경로를 상위 네임스페이스 경로 아래에 중첩해야 하며, 결과 테이블 위치에는 충돌을 방지하기 위해 임의의 문자열 접미사가 자동으로 추가됩니다.
지원되는 테이블 형식
Apache Iceberg V2 테이블 (정식 버전) 및 V3 테이블 (프리뷰)이 지원됩니다. Iceberg V1 테이블은 지원되지 않습니다. Lakehouse for Apache Iceberg에서 기존 V1 테이블을 사용하기 전에 지원되는 버전으로 업그레이드해야 합니다. 자세한 내용은 Iceberg V1 테이블을 V2로 업그레이드를 참조하세요.
BigQuery에서 지원
- Apache Iceberg 테이블: BigQuery에서 만들고 관리하는 Apache Iceberg 테이블입니다. 이러한 테이블의 메타데이터는 BigQuery 카탈로그에 저장되고 테이블 데이터와 실제 메타데이터는 Cloud Storage에 저장됩니다.
- 기본 테이블: BigQuery에서 완전히 관리하는 테이블로, Lakehouse 런타임 카탈로그에 연결하여 오픈소스 엔진과 상호 운용할 수 있습니다.
- 외부 테이블: 데이터와 메타데이터가 자체 관리되는 Lakehouse 런타임 카탈로그 외부의 테이블입니다. Cloud Storage, Amazon S3 또는 Azure Blob Storage에 저장된 데이터에 대한 연결을 통해 위임된 액세스를 지원합니다.
이러한 옵션의 자세한 비교는 테이블 유형 및 기능 이해를 참조하세요.
쿼리 처리 순서
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 콘솔 내에서 작업 실행을 필터링하고 추적하는 데 도움이 됩니다.
- 진단 로깅 사용 설정: 복잡한 데이터 엔지니어링 파이프라인의 경우 진단 번들을 사용 설정하고 문제 해결 및 지원 가능성에 도움이 되도록 드라이버 및 실행자 로그가 보관되도록 합니다.
다음 단계
- 메타스토어 서비스에 대한 자세한 내용은 Lakehouse 런타임 카탈로그 정보를 참조하세요.
- Apache Spark, BigQuery, Apache Iceberg REST 카탈로그 엔드포인트와 함께 Lakehouse 런타임 카탈로그를 사용합니다.