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에서 테이블을 만들 수 있습니다.

    BQMS에서 테이블 만들기

    그런 다음 Google Cloud 콘솔에서 동일한 Spark 테이블을 쿼리할 수 있습니다.

    BQMS에서 테이블 쿼리

지원되는 통합

Google Cloud 콘솔, gcloud CLI 또는 BigQuery REST API와 함께 BigQuery 메타스토어를 사용할 수 있습니다.

BigQuery 메타스토어는 다음 통합을 지원합니다.

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 메타스토어 테이블의 테이블 스토리지 통계 표시는 지원되지 않습니다.

다음 단계