일반적으로 BigQuery에 쌓인 Data를 스프레드시트에 연결하여 사용하지만, 때로는 스프레드시트의 Data를 BigQuery에 저장하여 분석 및 보고서 생성을 위해 사용해야할 필요가 있습니다..


이 가이드에서는 Google Drive 외부 테이블Scheduled Query를 사용하여 스프레드시트의 Data를 정기적으로 BigQuery Dataset에 저장하게 합니다.



1. Drive Source의 BigQuery Table 생성 


1) GCP Console > BigQuery > BigQuery Studio > Project ID > Dataset > Create table



  • Create table from : Drive를 선택합니다.

  • Select Drive URI : Data Source 스프레드시트의 URI 값을 입력합니다.

  • File format : Google Sheet를 선택합니다.

  • Sheet range : 해당 스프레드시트에서 값을 넣을 범위를 입력합니다.

예를들어 Activity_Data(BTC) 시트의 A2부터 E열까지의 데이터를 가져오려면 다음과 같이 값을 설정합니다. Activity_Data(BTC)!A2:E

  • Table : Table Name을 입력합니다.


2) Schema 값을 설정하고 테이블을 생성합니다.


  • Auto detect를 사용하여도 되지만 Schema name 및 type을 지정하기 위해 아래 예시에서는 수동으로 Schema 값을 입력 하였습니다.

  • Auto detect 사용 시 해당열에 숫자 값만 있을 경우 INTEGER Type이 일반적으로 적용되지만, 추후 해당 열에 문자열 값이 들어갈 경우 쿼리 시 에러가 발생할 수 있음으로 주의하시기 바랍니다.



3) 생성된 테이블을 확인합니다.



4) 해당 테이블의 쿼리 결과와 기존 스프레드시트의 값을 비교하여 정상적으로 스프레드시트 데이터가 쿼리 되는지 확인합니다.





2. Scheduled Query로 BigQuery Table에 정기적으로 Data 저장


1) 쿼리 결과가 정상으로 확인되었으면 해당 쿼리문을 사용하여 Scheduled Query를 생성합니다.

  • 쿼리 Explorer 상단의 SCHEDULE 버튼을 클릭합니다.


  • Name for scheduled query : Scheduled query 이름을 입력합니다.

  • Schedule options : 해당 쿼리가 어느 빈도로 데이터를 저장할지 스케쥴을 설정합니다.

빈도 뿐만 아니라 시작 시점 및 종료 시점도 설정할 수 있습니다.

  • Destination for query results : 쿼리 결과를 저장할 Table을 설정합니다.

※ 이때, 테이블은 위에서 생성한 Drive Source의 테이블로 지정할 수 없습니다.

write preference는 데이터 중복을 방지하기 위해 Overwrite table로 설정하였습니다.


2) Scheduled Query가 실행 된 후 Data가 저장된 테이블을 확인


  • 저장된 테이블의 Preview 탭을 확인하여 데이터가 잘 쌓였는지 Row 수를 확인합니다.


  • 스프레드시트의 데이터와 비교합니다.(1열을 제외하였기에 Row 수가 동일함을 확인할 수 있습니다.)


위와 같은 방법으로 스프레드시트의 데이터를 BigQuery에 테이블 형태로 저장할 수 있습니다.