想把 CSV 檔匯入 BigQuery 卻不知道怎麼做嗎?雖然 BigQuery 提供從網頁介面和指令快速導入 CSV 的功能,但若 CSV 檔案內容太複雜,還是可能出現亂碼。以「紐約市 Airbnb 租金數據集」為例,該數據集共有16列,其中一列包含自由格式,代表內容可能有emoji等符號。

數據集

若直接使用 BigQuery 打開這份文件

文件

由於這份CSV 檔有換行符,而造成下列錯誤訊息:

換行符

這時候就要靠 Google Sheet 出馬救援!打開 Google Sheet 導入 CSV 文件,加載到 BigQuery 前可先在表格中進行交互作為數據的準備,第一步要先刪除第一行 (標題),因為這是不需要的資訊。

BigQuery

Google Sheet 中的 ELT
再將表格設定為 BigQuery 中的表格,這個小技巧可讓 BigQuery 直接查詢 Google Sheet。

ELT

BigQuery用戶界面的步驟

  • 選擇一個數據集(dataset),點擊建立新資料表(Table)
  • 選擇雲端硬碟(Drive)作為來源,指定Google表格的雲端硬盤網址(Drive URL)
  • 將 Google Sheet 設定為文件格式
  • 資料表(Table)命名,例如:airbnb_raw_googlesheet
  • 指定架構(schema):

Table

此資料表(Table)不會複製Google Sheet裡面的數據,而是會實時查詢工作表。因此,可將數據原樣複製到 BigQuery 中 (也能在這邊先進行一些轉換):

Python

如何自動化?
也可以接著設定以下步驟:

  1. 該如何透過 Python 將 CSV 檔案導入表格
  2. 即刻起,使用 dataform.co 或使用 BigQuery 腳本來定義 BigQuery 資料表(Table)並執行 ELT。

Google Sheet 真的很好用,以此作為 CSV 檔匯入 BigQuery 的 ELT 管道,就可以輕鬆處理複雜的 CSV 檔案啦!

資料來源:Google Cloud Blog