캐글(Kaggle)에서 빅쿼리(BigQuery) Google Analytics 퍼블릭 데이터 쿼리하기 (Pandas 사용)

 빅쿼리(BigQuery) API 연습/공부는 캐글(Kaggle)에서 하시면 좋습니다. 캐글 커널을 사용하면 파이썬, 에디터 설치를 하지 않아도 되고, GCP 계정 환경 설정이나 인증, 카드 등록 등을 하지 않아도 됩니다. Kaggle에 로그인만하면 끝입니다! 

그리고 Kaggle에서 매달 5TB만큼 무료로 빅쿼리 퍼블릭데이터를 사용할 수 있습니다. 그 이상 넘어가도 과금 안됩니다. 다만 쿼리가 안될뿐이고 다음 달에 다시 재충전됩니다.  5TB는 한 달 내내 연습하기에 충분합니다. 알뜰하게 쿼리하는 방법은 아래서 다시 언급하겠습니다.   

그럼 제가 한번 Kaggle에서 빅쿼리 파이썬 클라이언트 라이브러리를 사용해서 빅쿼리 퍼블릭 데이터 중 구글 애널리틱스(GA) 데이터를 조회해보겠습니다. 팬다스(pandas) 라이브러리를 사용할 것입니다. 코드는 끝에 첨부하였습니다.


  • 캐글 > Code 탭에서 New Notebook 버튼을 클릭합니다.
캐글(Kaggle)에서 빅쿼리(BigQuery) Google Analytics 퍼블릭 데이터 쿼리하기 (Pandas 사용)
New Notebook 클릭


캐글(Kaggle)에서 빅쿼리(BigQuery) Google Analytics 퍼블릭 데이터 쿼리하기 (Pandas 사용)
노트북 첫 화면



  • 빅쿼리 API 를 사용하기 위해 파이썬(Python) 클라이언트 라이브러리를 가져오고 빅쿼리 클라이언트 객체를 생성합니다. 아래의 코드를 실행하면 캐글의 퍼블릭 데이터셋 빅쿼리 인테그레이션을 사용한다는 메세지가 보입니다.
캐글(Kaggle)에서 빅쿼리(BigQuery) Google Analytics 퍼블릭 데이터 쿼리하기 (Pandas 사용)



  • 퍼블릭 GA(Google Analytics) 데이터 중 테이블 하나를 가져와 10개의 행을 출력하겠습니다.  빅쿼리 API 공식 문서를 보시면 get_table(), list_row(), to_dataframe() 메소드에 대해 알 수 있습니다.  코드는 마지막에 제공합니다. 
캐글(Kaggle)에서 빅쿼리(BigQuery) Google Analytics 퍼블릭 데이터 쿼리하기 (Pandas 사용)

캐글(Kaggle)에서 빅쿼리(BigQuery) Google Analytics 퍼블릭 데이터 쿼리하기 (Pandas 사용)

Pandas.DataFrame 메소드/function



  • 팬다스(Pandas) 라이브러리를 쓰면 여러모로 편리합니다. create_bqstorage_client=False  를 사용한 이유는  아래 warning이  보기 싫어서 넣었습니다요 헤헤. 
create_bqstorage_client=False

create_bqstorage_client=False



  • 팬다스를 사용하면  그래프도 그릴 수 있습니다. 시간 관계상 구글 공식 문서에서 코드 복붙했습니다. 이 샘플 코드 역시 빅쿼리 퍼블릭 데이터를 사용합니다.
캐글(Kaggle)에서 빅쿼리(BigQuery) Google Analytics 퍼블릭 데이터 쿼리하기 (Pandas 사용)

캐글(Kaggle)에서 빅쿼리(BigQuery) Google Analytics 퍼블릭 데이터 쿼리하기 (Pandas 사용)



  • GA 데이터는 struct 데이터 구조 때문에 네스티드(nested) 되어 있습니다.
구글 애널리틱스(Google Analytics) 스트럭트(struct) 데이터 구조



  • 예로, totals 필드를 보면 아래 visits, hits 등등의 자식 필드들이 있습니다. 
구글 애널리틱스(Google Analytics) 스트럭트(struct) 데이터 구조



  • query 메소드를 사용해서 데이터를 조회해 보겠습니다.
빅쿼리 API / query 메소드 사용하기



  • 심심해서 조금 변형해보았습니다. 
빅쿼리 API / query 메소드 사용하기



* 캐글 노트북을 공유할까 했는데 최대한 익명성을 유지하기 위해서 안하기로 했습니다.  (응?) 

**  빅쿼리에서 쿼리하실 때 wildcard(와일드카드, *)는 사용하시지 않는게 좋습니다. 빅쿼리 초기에는 와일드카드 사용을 못하게 막기도 했습니다. 빅쿼리는 쿼리한만큼 요금을 부과합니다.
제가 위에서 돌린 테이블은 와일드카드 쓰더라도 15.9 MB 밖에 안합니다. 다 저의 깊은 뜻이 있답니다. 5TB 있으시니 마음껏 연습하십쇼. 그리고 한 번 쿼리하면 캐쉬돼서 여러번 쿼리해도 돈 안든다고 알고 있습니다.  (이부분은 다시 확인해보세요. 빅쿼리 안쓴지 1년 넘어서리) 
캐글(Kaggle)에서 빅쿼리(BigQuery) Google Analytics 퍼블릭 데이터 쿼리하기 (Pandas 사용)
증거 자료 첨부합니다요 


- The End - 

Comments