將查詢結果匯出至 Amazon S3
BigQuery 可讓您使用 EXPORT DATA 陳述式,將針對 BigLake 資料表執行的查詢結果,直接匯出至 Amazon Simple Storage Service (Amazon S3) bucket。匯出查詢結果後,您就能在外部雲端儲存空間中儲存及使用處理過的資料,不必透過 BigQuery 儲存空間移轉結果。
如要瞭解資料如何在 BigQuery 和 Amazon S3 之間流動,請參閱「匯出資料時的資料流」。
限制
如要查看適用於 Amazon S3 和 Blob 儲存體 BigLake 資料表的完整限制清單,請參閱「限制」。
事前準備
請確認您具備下列資源:
- 可存取 Amazon S3 bucket 的連線。
- Amazon S3 BigLake 資料表。
- 正確的 Amazon Web Services (AWS) Identity and Access Management (IAM) 政策:
- 您必須具備
PutObject權限,才能將資料寫入 Amazon S3 bucket。詳情請參閱「為 BigQuery 建立 AWS IAM 政策」。
- 您必須具備
- 如果您採用依運算資源計價模式,請務必為專案啟用 BigQuery Reservation API。如要瞭解定價,請參閱「BigQuery Omni 定價」。
匯出查詢結果
BigQuery Omni 會寫入指定的 Amazon S3 位置,無論是否有任何現有內容。匯出查詢可以覆寫現有資料,或將查詢結果與現有資料混合。建議您將查詢結果匯出至空白的 Amazon S3 bucket。
如要執行查詢,請選取下列其中一個選項:
SQL
在「Query editor」(查詢編輯器) 欄位中,輸入 GoogleSQL 匯出查詢。GoogleSQL 是 Google Cloud 控制台的預設語法。
前往 Google Cloud 控制台的「BigQuery」頁面。
在查詢編輯器中輸入下列陳述式:
EXPORT DATA WITH CONNECTION `CONNECTION_REGION.CONNECTION_NAME` OPTIONS(uri="s3://BUCKET_NAME/PATH", format="FORMAT", ...) AS QUERY
更改下列內容:
CONNECTION_REGION:建立連線的區域。CONNECTION_NAME:您建立的連線名稱,具備寫入 Amazon S3 bucket 的必要權限。BUCKET_NAME:要寫入資料的 Amazon S3 bucket。PATH:要寫入匯出檔案的路徑。路徑字串的葉目錄中必須包含一個萬用字元*,例如../aa/*、../aa/b*c、../aa/*bc和../aa/bc*。BigQuery 會根據匯出的檔案數量,將*替換為0000..N。BigQuery 會判斷檔案數量和大小。如果 BigQuery 決定匯出兩個檔案,則第一個檔案名稱中的*會替換為000000000000,第二個檔案名稱中的*則會替換為000000000001。FORMAT:支援的格式為JSON、AVRO、CSV和PARQUET。QUERY:用於分析 BigLake 資料表所儲存資料的查詢。查詢中使用的 BigLake 資料表所屬資料集,必須與目標 Amazon S3 bucket 位於相同的 Amazon S3 區域。按一下「 執行」。
如要進一步瞭解如何執行查詢,請參閱「執行互動式查詢」。
Java
在試用這個範例之前,請先按照「使用用戶端程式庫的 BigQuery 快速入門導覽課程」中的 Java 設定操作說明進行操作。詳情請參閱 BigQuery Java API 參考文件。
如要向 BigQuery 進行驗證,請設定應用程式預設憑證。詳情請參閱「設定用戶端程式庫的驗證機制」。
疑難排解
如果收到與 quota failure 相關的錯誤,請檢查是否已為查詢保留運算資源。如要進一步瞭解運算單元預留項目,請參閱本文的「事前準備」一節。
後續步驟
- 瞭解 BigQuery Omni。
- 瞭解如何匯出表格資料。
- 瞭解如何查詢儲存在 Amazon S3 中的資料。
- 瞭解如何為 BigQuery Omni 設定 VPC Service Controls。