BigQuery에서 쿼리 예약 하기
반복해서 쿼리를 실행해야 하는 경우 어떻게 하시나요?
쿼리 예약을 통해 작업하는 것이 떠오를 것입니다. 구글 클라우드가 자랑하는 BigQuery는 2018년 쿼리 예약을 지원하는 기능인 ‘BigQuery Scheduling’ 베타를 공개했습니다. 이 기능 덕분에 매일 반복해서 수동으로 쿼리를 실행하는 불편이 사라졌습니다. 이번 포스팅에서는 이 기능을 이용하는 방법을 알아볼까 합니다. 🙂
😃 쿼리 예약을 위한 사전 작업
먼저 BigQuery Scheduling 기능을 사용하려면 다음 API를 활성화해야 합니다.
- BigQuery API
- BigQuery Data Transfer Service API
다음으로 할 일은 쿼리 예약 관련 사용자 권한 부여를 위한 IAM(Identity and Access Management) 설정입니다. 데이터 보안의 핵심 중 하나인 접근 제어를 위한 설정이라고 보면 됩니다. 먼저 데이터 전송 권한을 위해 쿼리를 예약하고자 하는 관리자 또는 사용자에게 ‘bigquery.transfers.update’ 또는 ‘bigquery.jobs.create’와 ‘bigquery.transfers.get’ 권한을 부여해야 합니다. 다음으로 예약된 쿼리 작업 수행을 위해서 ‘bigquery.jobs.create’와 ‘bigquery.datasets.update’ 권한이 필요합니다. 예약된 쿼리 작업을 삭제하고자 할 때에는 ‘bigquery.transfers.update’ 권한이 있어야 합니다.
필요한 API 활성화 및 권한 설정을 마쳤다면 이제 본격적으로 예약된 작업을 만들 수 있습니다. 예약된 작업은 구글 클라우드 콘솔을 통해 생성할 수 있습니다.
※ 예약된 쿼리를 만들고 삭제하는 것은 매우 쉽습니다. 🙂
😃 구글 클라우드 콘솔을 활용한 쿼리 예약
구글 클라우드 콘솔에 로그인 후 BigQuery UI로 이동합니다. 쿼리 예약을 위해 ‘Schedule’ 메뉴에서 ‘Create new scheduled query’를 선택합니다.
그러면 다음과 같은 화면이 나옵니다. 이 화면에서 순서에 맞게 설정 값을 채우고 옵션을 선택하면 됩니다.
예약된 작업 설정 항목은 다음과 같습니다.
📌 예약된 쿼리의 이름
📌 일정 옵션
- 반복: 매시간, 매일, 매월 등 쿼리 실행 빈도 선택
- 시작 날짜 및 실행 시간: 특정 쿼리를 시작해야 하는 경우 실행 시간 설정
- 종료 날짜: 사전에 정의한 기간 동안 쿼리 실행 후 종료
📌 쿼리 결과를 저장할 위치
📌 테이블 이름
📌 쓰기 기본 설정
- 덮어쓰기 : 쿼리 결과를 테이블 데이터에 덮어씀
- 추가 : 쿼리 결과를 테이블의 데이터에 추가함
예약된 쿼리를 삭제하거나 비활성화려면 BigQuery UI 화면의 ‘Schedule’ 메뉴에서 ‘Update scheduled query’를 선택해 설정하면 됩니다.
한편, 예약된 쿼리는 분할 또는 분할되지 않은 대상 테이블을 생성할 수 있습니다. 파티셔닝 설정은 구글 클라우드 콘솔, CLI, API를 통해 할 수 있습니다. 파티셔닝은 수집 시간(Ingestion Time) 또는 열(column)로 나눌 수 있습니다.
▼ 구글 클라우드 콘솔에서 파티셔닝 설정을 하는 방법은 다음 데모영상을 참조 바랍니다.
이상으로 『 BigQuery에서 쿼리 예약하는 방법 』 에 대해 알아보았습니다. 😎🤗🤗
더 자세한 내용은 메가존소프트로 문의 바랍니다. 👉 메가존소프트 문의 바로가기