Skip to main content

[Tech 011] GCP 빅쿼리(BigQuery)로 이전 없이 외부 데이터 쿼리하기 – 외부데이터 분류 편

안녕하세요, 클루커스 구글 클라우드 컨설턴트 엄수민, 박보련, 오지수입니다.

이전에 올린 포스팅에서, Cloud SQL에 저장되어 있는 데이터를 BigQuery로의 이동 없이 외부 데이터 소스로 사용해 쿼리하는 방법을 소개드렸었는데요,
이번 포스팅에서는 ‘외부 데이터’에 대해 보다 자세히 소개드리고자 합니다.

외부 데이터 소스란, BigQuery에 저장되어 있지 않아도 BigQuery에서 직접 쿼리할 수 있는 데이터를 의미합니다. 이때, “BigQuery에 저장되어 있지 않은 경우”는 데이터가 Cloud SQL과 같은 Google Cloud의 다른 데이터베이스나, Google Cloud Storage 또는 타 클라우드에 저장되어 있는 상황을 의미합니다.
BigQuery에서 외부 데이터를 쿼리하는 방식은 크게 두 가지로 나눌 수 있습니다.

  1. 외부 테이블
  2. 통합 쿼리
 

 

1. 외부 테이블

1-1. 외부 테이블이란?

외부 테이블은 BigQuery 스토리지에 메타데이터 및 스키마를 저장한다는 점에서 표준 BigQuery 테이블과 비슷하지만, 해당 데이터가 외부 소스에 위치한다는 점이 큰 특징입니다. 외부 테이블은 데이터 세트 내에 포함되어 있고, 표준 BigQuery 테이블을 관리하는 것과 동일한 방식으로 관리합니다.

외부 테이블은 다음과 같이 5가지로 나눠 볼 수 있습니다.

    • BigLake 테이블
    • 객체 테이블
    • Cloud Storage
    • Cloud BigTable
    • Drive

 

1-2. 한 눈에 보는 GCP 외부 테이블 데이터 소스 별 특징!

아래 표에서 외부 테이블 데이터 소스 별 특징 및 제한 사항을 알아봅니다.

 

1-3. 한 눈에 보는 GCP 외부 테이블 데이터 소스 별 생성 방법!

다음 표에서는 외부 테이블 종류 별로 외부 데이터 소스를 사용하기 위해 필요한 권한 및 범위 등을 정리합니다.

*: Bigtable 인스턴스가 속한 프로젝트
: Bigtable 인스턴스 ID
: (선택)사용할 앱 프로필 ID
: 쿼리중인 테이블 이름
** Bigtable 외부 데이터 소스에는 와일드 카드가 지원되지 않습니다.
*** FILE_ID: Drive 파일 영숫자 ID

1-4. 권한 추가 설명

 

2. 통합 쿼리

2-1. 통합 쿼리란?

통합 쿼리는 Cloud Spanner 또는 Cloud SQL 데이터베이스에 쿼리 문을 보내고, 결과를 임시 테이블로 다시 가져올 수 있는 기능입니다. Spanner / Cloud SQL과의 연결은 BigQuery Connection API를 사용하여 설정합니다.
쿼리에서 EXTERNAL_QUERY 함수를 사용하여 쿼리 문을 외부 데이터베이스로 전송하며, 이때 해당 데이터베이스의 SQL 언어를 사용합니다.
통합 쿼리를 사용할 수 있는 데이터 스토어는 다음 두 가지 입니다.

    • Cloud Spanner
    • Cloud SQL

 

2-2. 한 눈에 보는 BigQuery 통합 쿼리 데이터 소스 별 특징!

통합 쿼리를 사용하기 위해선 어떤 권한이 필요한지, 제한 사항은 무엇인지 다음 표에서 알아봅니다.

 

3. 외부 데이터 소스 동작 기능 비교

아래 표에서는 외부 데이터 소스의 동작을 비교합니다.

 

References

https://cloud.google.com/bigquery/docs/external-data-sources?hl=ko
https://cloud.google.com/bigquery/docs/federated-queries-intro?hl=ko

 

4. Summary

이번 포스팅에서는  “BigQuery로 데이터를 이동하지 않고도 쿼리할 수 있는 외부 데이터 소스”에 대해 알아보았습니다. 

 

이와 관련하여 더 자세한 상담이 필요하시면 클루커스로 연락바랍니다.

💌문의 바로가기

Secured By miniOrange