Generalist/data engineering

BigQuery - Colab 연동법 (ver. 최신 업데이트)

홍원 2022. 10. 26. 17:39

원래 bigquery와 colab을 연동하기 위해서는 꽤 복잡한 방법을 거쳐야 했습니다.

빅쿼리와 코랩을 넘나드는 자유로운 분석, 시각화에 불편함은 물론이고, 그 분석 내용을 notebook 형태로 정리하기 위해서는 정말 많은 시간이 소요되었습니다.

 

그러던 2022년 10월 21일 Google Cloud Blog에 Build limitless workloads on BigQuery: New features beyond SQL란 글이 업로드되었습니다. 

 

BigQuery removes SQL-only limits and provides new developer extensions | Google Cloud Blog

BigQuery announces preview of Stored Procedures for Spark, letting customers build ML & ETL jobs written in Python directly into BigQuery’s environment.

cloud.google.com

이 중 제가 정말 기다리던 bigquery - colab 연동 업데이트 소식이 있어서, 시험이 끝나자마자 얼른 가져와봤습니다. 


1. Google Blog 주요 내용

※ 전문
For years, BigQuery customers have found Colab to be a delightful notebook-based programming experience for extending their BigQuery SQL with Python-based analysis. Now, in Preview, a customer can jump immediately from the result of a SQL query into a notebook to do further analysis in Python, as shown in the image below. This lets you move quickly into running descriptive statistics, generating visualizations, creating a predictive analysis, or even sharing your results with others.

BigQuery 고객들은 BigQuery SQL를 Python 기반 분석으로 확장하기 위해, Colab을 가장 선호하였습니다.

이제 고객들은 SQL 쿼리 결과에서 노트북으로 즉시 이동하여  Python에서 추가 분석을 수행할 수 있습니다.

이를 통해 기술 통계 실행, 시각화 생성, 예측 분석 생성 또는 다른 사용자와 결과 공유로 빠르게 이동할 수 있습니다.

 

그럼 간단한 예제로 연동법을 알아보겠습니다.


2. 연동법

예제 데이터 셋

sample_data - data set

  • 테이블 명 : market.sample_data
  • Date : 구매 날짜
  • Order_ID : 주문 ID
  • Customer_id : 고객 ID
  • Product_id : 상품 ID
  • Sale : 상품 가격

 

bigquery - colab 연동

Colab 노트북으로 탐색 클릭

Product_ID는 분석에 필요 없는 피쳐였기에 Date, Order_id, Customer_id, Sale 열을 쿼리문으로 가져왔습니다.

그리고 이번 업데이트를 통해  '데이터 탐색 - Colab 노트북으로 탐색'을 클릭하여 해당 결과 테이블을 쉽게 colab과 연동할 수 있게 되었습니다.

 


 colab 전문

연동 시 colab 전문

그럼 colab으로 연결되어 위와 같은 화면이 나오게 됩니다.  갑작스러운 영어로 당황할 수 있지만, 위 네 단락의 뜻은 다음과 같습니다.

  • 설정값
  • 연동된 SQL 쿼리문 보기
  • 연동된 결과 테이블을 DataFrame으로 변경
  • describe() 함수로 통계 값 보기

세부 내용

추가 코드 입력을 할 것이 하나도 없을 정도로, 정말 직관적이고 편리하게 업데이트되었습니다. 

단번에 이해하셨을 테지만, 그래도 결과 해석과 약간의 설명을 하겠습니다.


설정값

client에 연동 project id와 locaion을 입력합니다.

enable_dataframe_formatter()로 데이터 프레임 포맷 형식을 활성화합니다.


연동된 SQL 쿼리문 보기

get_job 함수에 Job_id 입력합니다. 그리고 job.query를 통해 해당 쿼리문을 출력합니다. 

빅쿼리는 쿼리문마다 ID를 생성합니다.  그 Job_id는 bigquery의 쿼리 작업 정보에서 확인할 수 있습니다. 

job_id


연동된 결과 테이블을 DataFrame으로 변경

빅쿼리의 결과값을 job.to_dataframe()으로데이터 프레임화 한 결과입니다.

이제는 빅쿼리 테이블이 아닌 results라는 dataframe이니, pandas로 핸들링하고 시각화 패키지를 사용할 수 있겠네요.


describe() 함수로 통계 값 보기

당연히 describe()로 통계 값을 볼 수 있습니다.

데이터 분석 글이 아니니 분석 결과에 대한 설명은 하지 않겠지만,  결과값의 dataframe_format은 보기에 상당히 불편하네요. disable_dataframe_formatter()를 추가로 입력하여 끄겠습니다.

disable_dataframe_formatter()


이번 글은 업데이트된 bigquery-colab 연동방법을 알아보았습니다.

항상 불편해하던 것이 드디어 업데이트되어서 기분이 좋네요! (왜 이제 해주는 건지... 해줘도 불만이긴 함...ㅎㅎ...)

주로 sql로 분석을 하다 보니 pandas, 시각화 패키지 사용법이 항상 손에 안 익었었는데, 이제 걸림돌이 없어졌으니 앞으로 더 좋은 분석 글 올리겠습니다!


해당 소식을 알려주신 AWS korea 정도현 님 항상 감사드립니다. 

끝까지 읽어주신 분들을 위해 해당 글에 간단한 분석을 추가해보았습니다. 깃허브에서 확인해주세요!

 

GitHub - hongwon2/BigQuery-Practice: 데이터 분석을 위한 빅쿼리SQL 연습 레파지토리입니다.

데이터 분석을 위한 빅쿼리SQL 연습 레파지토리입니다. Contribute to hongwon2/BigQuery-Practice development by creating an account on GitHub.

github.com