안녕하세요, 

베스핀글로벌 GCP Support팀입니다.


이번 아티클에서는 주제로 "Cloud SQL 통합 쿼리"를 다루고자 합니다.



Cloud SQL 통합 쿼리


Cloud SQL 통합 쿼리(Federated queries)[1]란 BigQuery에서 Cloud SQL의 데이터를 쿼리하는 방법으로 Cloud SQL에 위치한 데이터를 실시간으로, 데이터 복사나 이동 없이 쿼리할 수 있습니다.

BigQuery Cloud SQL 통합은 Public IP 연결이 가능한 Cloud SQL 인스턴스에만 지원되는 점 참고하시기 바랍니다.

※ Cloud SQL 인스턴스 보호를 위해 승인된 주소 없이 Public IP 연결을 추가하여도 BigQuery Cloud SQL 통합이 가능합니다.


통합 쿼리 사용 방법


1. BigQuery 연결 서비스를 사용 설정


콘솔 > BigQuery > 데이터 추가 > 외부 데이터 소스 > Connection type을 Cloud SQL 설정(MySQL, PostgreSQL 지원)




2. 연결 생성 후 EXTERNAL_QUERY 함수를 사용하여 쿼리


EXTERNAL_QUERY 함수를 사용하여 쿼리합니다. 아래 예시 쿼리문을 참고하시기 바랍니다.


---------------------------------------------------------------------------

SELECT c.customer_id, c.name, rq.first_order_date

FROM mydataset.customers AS c

LEFT OUTER JOIN EXTERNAL_QUERY(

  'us.connection_id',

  '''SELECT customer_id, MIN(order_date) AS first_order_date

  FROM orders

  GROUP BY customer_id''') AS rq ON rq.customer_id = c.customer_id

GROUP BY c.customer_id, c.name, rq.first_order_date;

---------------------------------------------------------------------------


Cloud SQL 통합 쿼리 사용 시 제한 사항


  • 성능 : 통합 쿼리는 임시 데이터를 외부소스에서 BigQuery로 이동 시 시간이 소요됨으로, BigQuery 스토리지만 쿼리하는 것만큼 빠르지 않을 수 있습니다.
  • 통합 쿼리는 읽기 전용입니다. 소스 데이터베이스에서 실행되는 외부 쿼리는 읽기 전용이어야 합니다. 따라서 DML 또는 DDL 문은 지원되지 않습니다.
  • 지원되지 않는 데이터 유형 외부 쿼리에 BigQuery에서 지원되지 않는 데이터 유형이 포함되면 쿼리는 즉시 실패합니다.
    - 지원되는 데이터 유형 문서[2] 참조
  • 통합 쿼리는 Project 유형의 권한입니다. Cloud SQL 인스턴스와 동일한 프로젝트에서 연결 리소스를 만들어야 합니다.



참조 링크


[1] BigQuery - Cloud SQL 통합 쿼리

https://cloud.google.com/bigquery/docs/cloud-sql-federated-queries

[2] BigQuery - Standard SQL Data types

https://cloud.google.com/bigquery/docs/reference/standard-sql/data-types



관련 문의사항이 있으시면 Support Portal에 문의해 주시기 바랍니다.


감사합니다.