Airflow寄信附檔1:儲存 Bigquery執行結果為 csv檔

許博淳
數據共筆
Published in
Jul 13, 2022

Google Cloud官方有給出建議的方式,可以將 Bigquery的表格輸出成 csv檔,同時儲存在 Google Cloud Storage中(https://cloud.google.com/bigquery/docs/exporting-data#exporting_table_data

這樣會需要3個步驟

BigQuery -> Cloud Storage -> local

有沒有可能直接從 BigQuery 儲存到 local,當然有

# 定義 client,這樣後續才能對 BigQuery做操作
from google.cloud import bigquery
from google.oauth2 import service_account
client = credential(GCP_SERVICE_ACCOUNT_CREDENTIALS)
import pandas as pd
import pandas_gbq
sql = f"""
SELECT
*
FROM
`{dataset}.{table_name}`
"""
# Extracting data from Bigquery
df.to_csv(
f"/opt/airflow/dags/{檔案名稱變數}_固定字串.csv",
index=False)

我們的作法是

  1. 執行一段 SQL code,取出我們要的資料;如果整張表都要取,就 SELECT *
  2. 使用 df.to_csv就可以將 Query結果存放到 local,並且是我們要的 csv檔

完全的完成任務了!

--

--