將查詢結果匯出為檔案
本文說明如何將查詢結果儲存為檔案,例如 CSV 或 JSON。
將查詢結果下載到本機檔案
bq 指令列工具或 API 都不支援下載查詢結果到本機檔案。
如要將查詢結果下載為 CSV 或以換行符號分隔的 JSON 檔案,請使用Google Cloud 主控台:
主控台
在 Google Cloud 控制台開啟「BigQuery」頁面。
按一下 [Compose new query] (撰寫新查詢)。
在「Query editor」(查詢編輯器) 文字區域中輸入有效的 GoogleSQL 查詢。
選用:如要變更處理位置,請按一下「More」並選取「Query settings」。針對「Data location」(資料位置),選擇資料的位置。
按一下「執行」。
傳回結果時,按一下「儲存結果」,然後選取您要用來儲存結果的格式或位置。
檔案會下載至瀏覽器的預設下載位置。
將查詢結果儲存至 Google 雲端硬碟
bq 指令列工具或 API 都不支援將查詢結果儲存到 Google 雲端硬碟。
嘗試將 BigQuery 結果儲存到 Google 雲端硬碟時,可能會發生錯誤。這個錯誤是因為 Drive SDK API 無法存取 Google Workspace。如要解決這個問題,您必須啟用使用者帳戶,讓使用者透過 Drive SDK API 存取 Google 雲端硬碟。
如要將查詢結果儲存到 Google 雲端硬碟,請使用 Google Cloud 主控台:
主控台
在 Google Cloud 控制台開啟「BigQuery」頁面。
在「Query editor」(查詢編輯器) 文字區域中輸入有效的 GoogleSQL 查詢。
按一下「執行」。
傳回結果時,按一下 [Save Results] (儲存結果)。
選取 [CSV (Google Drive)] (CSV (Google 雲端硬碟)) 或 [JSON (Google Drive)] (JSON (Google 雲端硬碟))。當您儲存結果到 Google 雲端硬碟時,無法選擇位置。結果一律會儲存到根目錄「我的雲端硬碟」的位置。
系統可能需要幾分鐘的時間,才能將結果儲存至 Google 雲端硬碟。儲存結果時,您會收到包含下列檔案名稱的對話方塊訊息:
bq-results-[TIMESTAMP]-[RANDOM_CHARACTERS].[CSV or JSON]
。在對話方塊訊息中,按一下「開啟」來開啟檔案,或者前往 Google 雲端硬碟,然後按一下「我的雲端硬碟」。
將查詢結果儲存到 Google 試算表
bq 指令列工具或 API 均不支援將查詢結果儲存到 Google 試算表。
嘗試從 Google 試算表開啟 BigQuery 結果時,可能會發生錯誤。這個錯誤是因為 Drive SDK API 無法存取 Google Workspace。如要解決這個問題,您必須啟用使用者帳戶,讓使用者能夠透過 Drive SDK API 存取 Google 試算表。
如要將查詢結果儲存到 Google 試算表,請使用 Google Cloud 主控台:
主控台
在 Google Cloud 控制台開啟「BigQuery」頁面。
按一下 [Compose new query] (撰寫新查詢)。
在「Query editor」(查詢編輯器) 文字區域中輸入有效的 GoogleSQL 查詢。
選用:如要變更處理位置,請按一下「More」並選取「Query settings」。針對「Data location」(資料位置),選擇資料的位置。
按一下「執行」。
傳回結果時,按一下 [Save results] (儲存結果) 並選取 [Google Sheets] (Google 試算表)。
如有必要,請依照提示登入使用者帳戶,並按一下「Allow」(允許),授予 BigQuery 將資料寫入 Google 雲端硬碟
MY Drive
資料夾的權限。依照提示執行後,您應該會收到電子郵件,確認 BigQuery 用戶端工具已連結至您的使用者帳戶。電子郵件中的資訊包含您具有的權限以及移除這些權限的相關步驟。
儲存結果後,類似下列的訊息會顯示在 Google Cloud 主控台
Saved to Sheets as "results-20190225-103531. Open
的查詢結果下方:按一下訊息中的連結,即可查看 Google 試算表中的結果,您也可以前往My Drive
資料夾並手動開啟檔案。將查詢結果儲存至 Google 試算表時,檔案名稱以
results-[DATE]
開頭,其中[DATE]
是今天的日期,格式為YYYYMMDD
。
排解檔案匯出問題
將資料從 BigQuery 匯出至 Google 試算表時,您可能會發現試算表中的部分儲存格為空白。當您寫入儲存格的資料超過 Google 試算表的 50,000 個半形字元限制時,就會發生這個錯誤。如要解決這個問題,請在 GoogleSQL 查詢中使用字串函式,將含有長資料的資料欄拆分為兩個或更多資料欄,然後再次將結果儲存到試算表。
後續步驟
- 瞭解如何以程式輔助方式將資料表匯出為 JSON 檔案。
- 瞭解匯出工作配額。
- 瞭解 BigQuery 儲存空間定價。