본문 바로가기

Google Cloud Blog

BigLake기반으로 Apache Iceberg lakehouse 현대화하기

BigLake기반으로 Apache Iceberg lakehouse 현대화하기

 

데이터가 lake와 warehouse에 분산되어 있으면 데이터 분석 작업에 다양한 이슈가 있을 수 있습니다. Apache Iceberg는 object storage에서 호스팅되는 데이터의 관리 기능을 제공하고 데이터의 복제없이 분석 및 AI 개발에 효율적으로 활용될 수 있는 open table format입니다. 다수의 데이터 엔지니어, 고객 및 업계 파트너 커뮤니티는 Iceberg에 다양한 기여를 하였으며 이를 기반으로 open-format 레이크하우스를 구축하는 것이 조직의 표준이 되고 있습니다.

이러한 흐름속에 Google Cloud는 2022년 10월, BigLake를 통해 Iceberg에 대한 지원을 발표하였습니다. 프리뷰 이후 많은 고객이 Apache Iceberg를 데이터 관리 계층으로 사용하여 레이크하우스 워크로드를 구축하기 시작했으며 이제 이 기능이 정식으로 출시되었습니다.

데이터복제 없이 데이터분석, 실시간 처리, AI 서비스의 통합 개발

오픈소스 엔진으로 데이터를 처리하고 Iceberg 테이블로 저장하면 BigQuery는 이러한 테이블을 seamless하게 분석할 수 있습니다. 프리뷰 기간동안 개발자는 Spark, Trino 및 Flink를 사용하여 Iceberg 테이블을 처리하고 해당 테이블을 BigQuery 사용자가 사용할 수 있도록 했습니다. 그런 다음 BigLake Metastore는 BigQuery 및 오픈 소스 엔진에서 Iceberg 테이블에 대한 공유 메타데이터를 제공하므로 복수의 테이블 정의를 유지할 필요가 없습니다. 또한 Spark에서 새 Iceberg 테이블을 생성할 때 BigQuery 데이터 세트 및 테이블 속성을 제공할 수 있으며 해당 테이블은 BigQuery 사용자가 쿼리할 수 있도록 자동으로 제공됩니다.

*출시 예정 (Azure data lake)

Iceberg lakehouse 워크로드를 구현할 때 쿼리 성능은 가장 중요한 요소입니다. BigQuery는 기본적으로 Iceberg 트랜잭션 로그와 native하게 통합되며 효율적인 query planning을 위해 다양한 메타데이터를 활용합니다. Query planning은 데이터 scan을 줄이고 조인을 최적화하고 data-plane parallelism을 개선하여 BigQuery 컴퓨팅을 줄이도록 설계되었습니다. 그 결과 BigLake Iceberg 테이블을 쿼리할 때 쿼리 성능이 향상되고 슬롯 사용량이 줄어듭니다.

이번 GA 릴리스에는 오픈 소스 엔진을 통해 테이블이 수정될 때 BigQuery 테이블 스키마의 자동 동기화를 제공하는 기능도 추가되었습니다.

분석엔진에 독립적이며 업계 최고의 보안 및 거버넌스 내장

보안과 거버넌스가 지원되는 Iceberg lakehouse를 구축하는것이 가장 중요한 시장의 요구사항이었습니다. Iceberg를 지원하는 BigLake는 행 및 열 level로 세분화된 액세스 제어(fine-grained access control)을 지원할 뿐만아니라 data masking 기능을 지원하여 이러한 요구사항을 만족시킵니다. 또한 프리뷰 기간 동안 BigQuery는 Iceberg를 포함한 모든 테이블형식에 차등 개인정보 보호(differential privacy)도 지원했습니다.

BigQuery를 통해 BigLake Iceberg 테이블의 보안 정책을 정의할 수도 있습니다. 그러면 사용된 쿼리 엔진과 관계없이(BigQuery뿐만 아니라) 보안 정책이 적용됩니다. BigQuery는 기본적으로 런타임에 이러한 정책을 적용하며 다양한 오픈소스 분석엔진은 BigQuery Storage API를 사용하여 데이터에 안전하게 액세스할 수 있습니다. BigQuery Storage API는 데이터 평면 계층(data-plane layer)에서 보안 정책을 시행하고 Spark, Trino, Presto 및 TensorFlow용으로 사전 구축된 커넥터를 통해 제공됩니다. 클라이언트 라이브러리를 사용하여 사용자 지정 애플리케이션용 커넥터를 구축할 수도 있습니다.

Multi-cloud기반 Iceberg lakehouse 사용 사례

Apache Iceberg의 개방성과 BigQuery Omni 덕분에 Multi-cloud 환경의 데이터를 통합 관리할 수 있는 Multi-cloud 레이크하우스를 구축할 수 있습니다. 이번 출시로 Amazon S3에서 BigLake Iceberg 테이블을 생성하고 BigQuery Omni를 사용하여 쿼리할 수 있습니다. BigLake의 성능 및 세분화된 액세스 제어(fine-grained access control) 기능은 Multi-cloud 환경의 Iceberg 테이블로 원활하게 확장되므로 BigQuery로 클라우드 간 분석을 안전하게 수행할 수 있습니다. 추후 Azure Data Lake Gen 2에 대해서도 지원할 예정입니다.

클라우드 전반에서 Apache Iceberg의 형식 균일성(format uniformity)은 또한 새로운 데이터 공유 사용 사례를 지원하여 사용 중인 클라우드에 관계없이 고객, 파트너 및 공급업체와 데이터를 공유할 수 있도록 합니다. Cloud Storage 또는 Amazon S3의 BigLake Iceberg 테이블은 Analytics Hub를 통해 공유하고 BigQuery Storage Read API를 통해 BigQuery 또는 OSS 엔진을 통해 사용할 수 있으므로 개방형 공유 표준과 다양한 쿼리 엔진을 사용할 수 있는 유연성을 제공합니다. 이에 대한 주목할만한 예는 최근 발표된 Salesforce Data Cloud 데이터 공유 분석 사례로, Iceberg기반으로 Salesforce와 BigQuery간 양방향으로 multi-cloud 데이터 공유를 지원합니다.

시작해보기

설명서에 따라 첫 번째 Iceberg 테이블을 만들고 쿼리합니다. 또는 Iceberg jump start 솔루션을 사용하여 분석 레이크하우스 PoC를 빠르게 진행해 보세요.