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

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

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


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 통합 쿼리 사용 시 아래와 같은 제한사항이 존재합니다.


1) 성능 : 통합 쿼리는 임시 데이터를 외부소스에서 BigQuery로 이동 시 시간이 소요됨으로, BigQuery 스토리지만 쿼리하는 것만큼 빠르지 않을 수 있습니다. 


2) 통합 쿼리는 읽기 전용입니다. 소스 데이터베이스에서 실행되는 외부 쿼리는 읽기 전용이어야 합니다. 따라서 DML 또는 DDL 문은 지원되지 않습니다.


3) 지원되지 않는 데이터 유형 외부 쿼리에 BigQuery에서 지원되지 않는 데이터 유형이 포함되면 쿼리는 즉시 실패합니다. 

- 지원되는 데이터 유형 문서 참조


4) 통합 쿼리는 Project 유형의 권한입니다. Cloud SQL 인스턴스와 동일한 프로젝트에서 연결 리소스를 만들어야 합니다.