연속 쿼리 소개
이 문서에서는 BigQuery 연속 쿼리를 설명합니다.
BigQuery 연속 쿼리는 지속적으로 실행되는 SQL 문입니다. 연속 쿼리를 사용하면 BigQuery에서 수신 데이터를 실시간으로 분석할 수 있습니다. 연속 쿼리에서 생성된 출력 행을 BigQuery 테이블에 삽입하거나 Pub/Sub 또는 Bigtable로 내보낼 수 있습니다. 연속 쿼리는 다음 방법 중 하나를 사용하여 표준 BigQuery 테이블에 기록된 데이터를 처리할 수 있습니다.
연속 쿼리를 사용하여 통계를 만들어 즉시 조치, 실시간 머신러닝(ML) 추론 적용, 다른 플랫폼에 데이터 복제 등 시간에 민감한 작업을 수행할 수 있습니다. 이를 통해 애플리케이션 결정 로직을 위한 이벤트 기반 데이터 처리 엔진으로 BigQuery를 사용할 수 있습니다.
다음 다이어그램은 일반적인 연속 쿼리 워크플로를 보여줍니다.
사용 사례
연속 쿼리를 사용할 수 있는 일반적인 사용 사례는 다음과 같습니다.
- 맞춤설정된 고객 상호작용 서비스: 생성형 AI를 사용하여 각 고객 상호작용에 맞춤설정된 메시지를 만듭니다.
- 이상 감지: 복잡한 데이터에 대해 실시간으로 이상 및 위협 감지를 수행할 수 있는 솔루션을 빌드하여 문제에 보다 신속하게 대응할 수 있습니다.
- 맞춤설정 가능한 이벤트 기반 파이프라인: Pub/Sub와의 연속 쿼리 통합을 사용해서 수신 데이터를 기반으로 다운스트림 애플리케이션을 트리거합니다.
- 데이터 보강 및 항목 추출: 연속 쿼리를 사용하여 SQL 함수 및 ML 모델을 사용하여 실시간 데이터 보강 및 변환을 수행합니다.
- 역방향 추출, 변환, 로드(ETL): 지연 시간이 짧은 애플리케이션 제공에 더 적합한 다른 스토리지 시스템으로 실시간 역방향 ETL을 수행합니다. 예를 들어 BigQuery에 기록되는 이벤트 데이터를 분석 또는 향상한 후 애플리케이션을 제공할 수 있도록 Bigtable로 스트리밍합니다.
지원되는 작업
연속 쿼리에서 지원되는 작업은 다음과 같습니다.
INSERT
문을 실행하여 연속 쿼리의 데이터를 BigQuery 테이블에 씁니다.EXPORT DATA
문을 실행하여 Pub/Sub 주제에 연속 쿼리 출력을 게시합니다. 자세한 내용은 Pub/Sub로 데이터 내보내기를 참조하세요.Pub/Sub 주제에서 Dataflow를 사용하여 스트리밍 분석을 수행하거나 애플리케이션 통합 워크플로에서 데이터를 사용하는 등 다른 서비스에서 데이터를 사용할 수 있습니다.
EXPORT DATA
문을 실행하여 BigQuery에서 Bigtable 테이블로 데이터를 내보냅니다. 자세한 내용은 Bigtable에 데이터 내보내기를 참조하세요.다음 생성형 AI 함수 호출:
이러한 함수를 사용하려면 Vertex AI 모델을 통한 BigQuery ML 원격 모델이 있어야 합니다.
다음 AI 함수 호출:
이러한 함수를 사용하려면 Cloud AI API를 통한 BigQuery ML 원격 모델이 있어야 합니다.
ML.NORMALIZER
함수를 사용하여 수치 데이터를 정규화합니다.스테이트리스(Stateless) GoogleSQL 함수 사용(예: 변환 함수) 스테이트리스(Stateless) 함수에서 각 행은 테이블의 다른 행과 독립적으로 처리됩니다.
APPENDS
변경 내역 함수를 사용하여 특정 시점에서 연속 쿼리 처리를 시작합니다.
승인
장기 실행 연속 쿼리를 실행하려면 사용자 계정이 아닌 서비스 계정을 사용합니다.
연속 쿼리 작업을 실행할 때 사용되는 Google Cloud 액세스 토큰은 사용자 계정으로 생성된 경우 2일의 TTL(수명)을 갖습니다. 따라서 이러한 작업은 2일 후에 실행 중지됩니다. 서비스 계정에서 생성된 액세스 토큰은 TTL의 제약을 받지 않으므로 서비스 계정으로 실행되는 연속 쿼리 작업은 명시적으로 취소될 때까지 실행됩니다. 자세한 내용은 서비스 계정을 사용하여 연속 쿼리 실행을 참조하세요.
위치
다음 위치에서는 연속 쿼리가 지원되지 않습니다.
US
EU
asia-northeast1
asia-south1
europe-west1
europe-west2
europe-west4
us-central1
us-east1
us-east4
us-west1
제한사항
연속 쿼리에는 다음과 같은 제한사항이 적용됩니다.
- BigQuery 연속 쿼리는 수집된 데이터의 상태를 유지하지 않습니다.
JOINs
, 집계 함수, 기간 설정 분석 함수와 같이 상태에 의존하는 일반적인 작업은 현재 지원되지 않습니다. 연속 쿼리에서는 다음 SQL 기능을 사용할 수 없습니다.
- 비확정적 스칼라 함수(예:
CURRENT_DATE
함수) JOIN
운영- 집계 함수
- 근사치 집계 함수
다음 쿼리 절:
다음 쿼리 연산자:
쿼리 설정 연산자
지원되는 작업에 나열되지 않은 BigQuery ML 함수
INSERT
를 제외한 데이터 조작 언어(DML) 문Bigtable 또는 Pub/Sub를 대상으로 하지 않는
EXPORT DATA
문
- 비확정적 스칼라 함수(예:
연속 쿼리는 데이터 소스로 와일드 카드 테이블을 지원하지 않습니다.
연속 쿼리는 데이터 소스로 외부 테이블을 지원하지 않습니다.
연속 쿼리는 다음 BigQuery 보안 기능을 지원하지 않습니다.
- 열 및 행 수준 보안
- 승인된 뷰 또는 승인된 루틴
- 고객 관리 암호화 키(CMEK)
- AEAD 암호화 함수
Bigtable로 데이터를 내보낼 때는 쿼리 중인 테이블이 포함된 BigQuery 데이터 집합과 동일한 Google Cloud 리전 경계 내에 있는 Bigtable 인스턴스만 대상으로 지정할 수 있습니다. 자세한 내용은 위치 고려사항을 참조하세요. Pub/Sub는 전역 리소스이므로 Pub/Sub로 데이터를 내보내는 경우에는 이 제한이 적용되지 않습니다.
데이터 캔버스에서는 연속 쿼리를 실행할 수 없습니다.
연속 쿼리 작업이 실행되는 동안에는 연속 쿼리에 사용되는 SQL을 수정할 수 없습니다. 자세한 내용은 연속 쿼리의 SQL 수정을 참조하세요.
연속 쿼리 작업이 7일 이상 지연된 경우 작업을 취소하고 새 연속 쿼리 작업을 시작해야 합니다. 쿼리를 다시 실행하고
APPENDS
변경 내역 함수를 사용하여 이전 연속 쿼리 작업을 중지한 시점부터 처리를 재개할 수 있습니다. 자세한 내용은 특정 시점에서 연속 쿼리 시작을 참조하세요.
예약 제한사항
- 연속 쿼리를 실행하려면 Enterprise 버전 또는 Enterprise Plus 버전 예약을 만들어야 합니다. 연속 쿼리는 주문형 컴퓨팅 청구 모델을 지원하지 않습니다.
- 연속 쿼리에 대한 예약 할당을 만드는 경우 관련 예약이 500슬롯 이하로 제한되며 자동 확장을 사용하도록 구성할 수 없습니다.
- 연속 쿼리 예약 할당은 예약이 구성되어 있더라도 유휴 슬롯을 공유하지 않습니다.
- 연속 쿼리 예약 할당과 동일한 예약에서 다른 작업 유형을 사용하는 예약 할당을 만들 수 없습니다.
- 연속 쿼리 동시 실행을 구성할 수 없습니다. BigQuery는
CONTINUOUS
작업 유형을 사용하는 사용 가능한 예약 할당을 기반으로 동시에 실행할 수 있는 연속 쿼리 수를 자동으로 결정합니다. - 동일한 예약을 사용하여 여러 개의 연속 쿼리를 실행하는 경우 BigQuery 공정성에 정의된 대로 개별 작업이 사용 가능한 리소스를 공정하게 분할하지 않을 수 있습니다.
가격 책정
연속 쿼리에서는 슬롯으로 측정되는 BigQuery 용량 컴퓨팅 가격 책정을 사용합니다.
연속 쿼리를 실행하려면 Enterprise 또는 Enterprise Plus 버전을 사용하는 예약 CONTINUOUS
작업 유형을 사용하는 예약 할당이 있어야 합니다.
데이터 수집 및 스토리지 등의 기타 BigQuery 리소스 사용 요금은 BigQuery 가격 책정에 표시된 요율에 따라 청구됩니다.
연속 쿼리 결과를 받거나 연속 쿼리 처리 중에 호출되는 다른 서비스를 사용하면 해당 서비스에 대해 게시된 요금이 청구됩니다. 연속 쿼리에 사용되는 기타 Google Cloud 서비스의 가격은 다음 주제를 참조하세요.