[Python] Python에 Bigquery 연동하고 조회하기

참고자료

(1) GA4(Google Analytics4) → GCP(Google Cloud Platform) → Bigquery 연결 방법
 

GA4와 꼭 연동해야 하는 툴 '빅쿼리(Big Query)'

GA4와 꼭 연동해야 하는 툴 '빅쿼리(Big Query)'

www.openads.co.kr

(2) Bigquery에 데이터를 내보내는 3가지 방법(공개 데이터, CSV, GA4 연결)
 

Google BigQuery (1) 빅쿼리에 데이터를 연결하는 3가지 방법

빅쿼리에서 데이터를 연결하는 방법은 크게 세 가지가 있습니다. 여러분의 상황에 적합한 방법을 찾아 차근차근 따라 해보시면 아주 쉽게 빅쿼리에서 데이터를 보실 수 있을 거예요.

datarian.io

 

파이썬에서 google-cloud-bigquery  설치

pip install google-cloud-bigquery

 

Bigquery API 호출

Bigquery에 GCP 계정이 연동이 잘 되었는지 확인

import glob
from google.cloud import bigquery
from google.oauth2 import service_account

# 서비스 계정 키 json 파일 경로
key_path = glob.glob('./{Mykey}.json')[0] 
                      # {Mykey} 부분에 구글 클라우드 플랫폼에서 생성한 본인 json키 입력

# Credentials 객체 생성
credentials = service_account.Credentials.from_service_account_file(key_path)

# GCP 클라이언트 객체 생성
client_BQ = bigquery.Client(credentials = credentials, project = credentials.project_id)

연동이 잘 되었으면 client_BQ를 조회했을 때, 

<google.cloud.bigquery.client.Client at 숫자~>

와 같은 결과가 조회될 것이다.

 

Python에서 Bigquery 데이터 조회하는 방법 

from google.cloud import bigquery
from google.oauth2 import service_account
import pandas as pd

# 예시문
sql = """
SELECT
case when is_active_user is true then user_pseudo_id end is_active_user
FROM `myproject.analytics_123456789.events_*`, unnest(event_params)
WHERE _TABLE_SUFFIX between '20240629'
                    and format_date('%Y%m%d',date_sub(current_date(), interval 1 day)) 
LIMIT 1000
"""

# 데이터 조회 및 데이터프레임화 실행 결과
query = client_BQ.query(sql)
data = query.to_dataframe()
data

파이썬에서 bigquery 에서 쿼리한 구문 그대로 sql = """ ~ """ 에서 ~ 부분에 그대로 넣은 후,
위와 같이 조회 및 데이터 프레임화 코드를 실행하면 결과문을 볼 수 있다.