BigQuery 메타스토어 소개
BigQuery 메타스토어는 Google Cloud의 데이터 분석 제품을 위한 완전 관리형 메타스토어입니다. BigLake Metastore는 여러 소스의 메타데이터를 관리하기 위한 단일 정보 소스를 제공합니다. 메타스토어는 BigQuery 및 다양한 개방형 데이터 처리 엔진에서 액세스할 수 있으므로 데이터 분석가 및 엔지니어에게 유용한 도구입니다.
예를 들어 Apache Spark와 같은 오픈소스 쿼리 엔진에서 BigQuery 메타스토어를 카탈로그로 사용할 수 있습니다. Spark를 사용하여 만든 테이블은 메타데이터를 동기화하지 않고도 BigQuery를 사용하여 쿼리할 수 있습니다.
이점
BigQuery 메타스토어는 데이터 관리 및 분석에 여러 가지 이점을 제공합니다.
- 서버리스 아키텍처. BigQuery 메타스토어는 서버리스 아키텍처를 제공하므로 서버 또는 클러스터 관리가 필요하지 않습니다. 이렇게 하면 운영 오버헤드가 줄고 배포가 간소화되며 수요에 따라 자동 확장이 가능합니다.
- 엔진 상호 운용성 BigQuery 메타스토어는 BigQuery에서 직접 테이블 액세스를 제공하므로 추가 구성 없이 BigQuery에 저장된 개방형 형식의 테이블을 쿼리할 수 있습니다. 예를 들어 Spark에서 테이블을 만든 후 BigQuery에서 직접 쿼리할 수 있습니다. 이렇게 하면 분석 워크플로를 간소화하고 복잡한 데이터 이동 또는 ETL 프로세스의 필요성을 줄일 수 있습니다.
통합된 사용자 환경 BigQuery 메타스토어는 BigQuery와 BigQuery Studio 전반에서 통합된 워크플로를 제공합니다. 이렇게 하면 BigQuery 및 BigQuery Studio에서 직접 Spark를 사용할 수 있습니다. 예를 들면 다음과 같습니다.
먼저 BigQuery Studio 노트북을 사용하여 Spark에서 테이블을 만들 수 있습니다.
그런 다음 Google Cloud 콘솔에서 동일한 Spark 테이블을 쿼리할 수 있습니다.
지원되는 통합
Google Cloud 콘솔, gcloud CLI 또는 BigQuery REST API와 함께 BigQuery 메타스토어를 사용할 수 있습니다.
BigQuery 메타스토어는 다음 통합을 지원합니다.
- 표 형식 Apache Iceberg 1.5.2 이상
- Dataproc. 버전 2.2 이상
- 데이터 처리 엔진 Spark 버전 3.3 이상
- 플러그인 BigQuery metastore Iceberg 카탈로그 플러그인
BigLake Metastore와의 차이점
BigQuery metastore는 Google Cloud에서 권장되는 메타스토어입니다.
BigQuery metastore와 BigLake Metastore의 핵심적인 차이점은 다음과 같습니다.
BigLake Metastore는 BigQuery와는 별개이며 Iceberg 테이블만 지원하는 독립형 메타스토어 서비스입니다. 리소스 모델은 세 부분으로 구성됩니다. BigLake의 테이블은 BigQuery에서 자동으로 검색되지 않습니다.
BigQuery 메타스토어는 BigQuery 카탈로그를 기반으로 하며 BigQuery와 직접 통합됩니다. BigQuery metastore의 테이블은 여러 오픈소스 엔진에서 변경할 수 있으며 동일한 테이블을 BigQuery에서 쿼리할 수 있습니다. BigQuery를 사용하면 메타데이터의 정보 소스가 하나만 있습니다. 예를 들어 BigQuery 메타스토어는 Spark와의 직접 통합을 지원합니다. 이 통합은 더 원활한 워크플로를 제공하고 메타데이터를 저장하고 작업을 실행할 때 중복을 줄이는 데 도움이 됩니다.
제한사항
BigQuery 메타스토어 테이블에는 다음과 같은 제한사항이 적용됩니다.
- BigQuery 엔진을 사용하여 DDL 또는 DML 문을 통해 BigQuery metastore 테이블을 만들거나 수정할 수 없습니다. BigQuery API (bq 명령줄 도구 또는 클라이언트 라이브러리 사용)를 사용하여 BigQuery 메타스토어 테이블을 수정할 수 있지만, 이렇게 하면 외부 엔진과 호환되지 않는 변경사항이 적용될 수 있습니다.
- BigQuery 메타스토어 테이블은 이름 변경 작업 또는
ALTER TABLE ... RENAME TO
Spark SQL 문을 지원하지 않습니다. - BigQuery 메타스토어 테이블에는 표준 테이블과 동일한 할당량 및 한도가 적용됩니다.
- BigQuery 엔진의 BigQuery 메타스토어 테이블의 쿼리 성능은 표준 BigQuery 테이블의 데이터를 쿼리할 때보다 느릴 수 있습니다. 일반적으로 BigQuery metastore 테이블의 쿼리 성능은 Cloud Storage에서 직접 데이터를 읽을 때와 동일합니다.
- BigQuery 메타스토어 테이블을 사용하는 쿼리의 테스트 실행은 행이 반환되더라도 0바이트의 하한 데이터를 보고할 수 있습니다. 이는 테이블에서 처리되는 데이터 양을 실제 쿼리가 완료될 때까지 확인할 수 없기 때문입니다. 쿼리를 실행하면 이 데이터를 처리하는 데 비용이 발생합니다.
- 와일드 카드 테이블 쿼리에서는 BigQuery 메타스토어 테이블을 참조할 수 없습니다.
tabledata.list
메서드를 사용하여 BigQuery metastore 테이블에서 데이터를 가져올 수 없습니다. 대신 쿼리 결과를 대상 테이블에 저장한 다음 해당 테이블에서tabledata.list
메서드를 사용할 수 있습니다.- BigQuery 메타스토어 테이블은 클러스터링을 지원하지 않습니다.
- BigQuery 메타스토어 테이블은 유연한 열 이름을 지원하지 않습니다.
- BigQuery 메타스토어 테이블의 테이블 스토리지 통계 표시는 지원되지 않습니다.
다음 단계
- Dataproc Metastore 데이터를 BigQuery metastore로 마이그레이션
- Dataproc에서 BigQuery metastore 사용
- Dataproc Serverless에서 BigQuery metastore 사용