GCP/Bigquery

[GCP] GCS → Bigquery with Python

운호(Noah) 2024. 3. 21. 14:55

들어가기 앞서,

  • 해당 포스팅에선 Google Cloud Storage(GCS)에서 CSV 파일을 읽어서 Google BigQuery에 데이터를 저장하는 코드에 대해서 다뤄보겠습니다.

예제 코드

# 필요한 라이브러리를 불러옵니다.
from google.cloud import storage, bigquery
import pandas as pd
from io import StringIO

# Google Cloud Storage(GCS) 설정
bucket_name = 'your_bucket_name'  # GCS 버킷 이름
prefix = 'your_file_prefix'  # 파일 경로 및 이름의 공통된 시작 부분
gcs_client = storage.Client()  # GCS 클라이언트 객체 생성
bucket = gcs_client.bucket(bucket_name)  # 버킷 객체 생성

# BigQuery 설정
bq_client = bigquery.Client()  # BigQuery 클라이언트 객체 생성
dataset_id = 'your_dataset_id'  # 데이터셋 ID
table_id = 'your_table_id'  # 테이블 ID
table_ref = bq_client.dataset(dataset_id).table(table_id)  # 테이블 참조 생성

# GCS에서 CSV 파일들을 읽고 BigQuery에 저장하는 과정
blobs = bucket.list_blobs(prefix=prefix)  # 지정된 경로의 파일 목록을 가져옵니다.
for blob in blobs:

    # CSV 파일 읽기
    data = blob.download_as_string()  # 파일 내용을 문자열로 다운로드
    df = pd.read_csv(StringIO(data.decode('utf-8')))  # 데이터프레임으로 변환

    # BigQuery에 데이터프레임 저장
    job = bq_client.load_table_from_dataframe(df, table_ref)
    job.result()  # Job이 완료될 때까지 대기

    print(f'{blob.name} 처리 완료')