안녕하세요,
베스핀글로벌 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에 문의해 주시기 바랍니다.
감사합니다.