- BigQuery 教程
- BigQuery - 首頁
- BigQuery - 概述
- BigQuery - 初始設定
- BigQuery 與本地 SQL 引擎的比較
- BigQuery - Google Cloud Console
- BigQuery - Google Cloud 層次結構
- 什麼是 Dremel?
- 什麼是 BigQuery Studio?
- BigQuery - 資料集
- BigQuery - 表
- BigQuery - 檢視
- BigQuery - 建立表
- BigQuery - 基礎架構設計
- BigQuery - 修改表
- BigQuery - 複製表
- 刪除和恢復表
- BigQuery - 填充表
- 標準 SQL 與傳統 SQL 的區別
- BigQuery - 編寫第一個查詢
- BigQuery - CRUD 操作
- 分割槽和聚類
- BigQuery - 資料型別
- BigQuery - 複雜資料型別
- BigQuery - STRUCT 資料型別
- BigQuery - ARRAY 資料型別
- BigQuery - JSON 資料型別
- BigQuery - 表元資料
- BigQuery - 使用者自定義函式
- 連線外部資料來源
- 整合定時查詢
- 整合 BigQuery API
- BigQuery - 整合 Airflow
- 整合連線的表格
- 整合資料傳輸
- BigQuery - 物化檢視
- BigQuery - 角色和許可權
- BigQuery - 查詢最佳化
- BigQuery - BI 引擎
- 監控使用情況和效能
- BigQuery - 資料倉庫
- 挑戰與最佳實踐
- BigQuery 資源
- BigQuery - 快速指南
- BigQuery - 資源
- BigQuery - 討論
BigQuery - 基礎架構設計
與**Excel**電子表格不同,**SQL**表不會自動接受呈現的資料。資料來源和表必須就資料的範圍和型別達成一致,才能成功匯入。資料型別必須一致,並且必須採用 BigQuery 可以解析並在**BigQuery Studio**中使用的格式。
什麼是模式?
為此,開發人員必須提供一個模式。本質上,**模式是有序的屬性列表**以及**它們對應的型別**。
在 BigQuery 中,列的順序和列的數量很重要,因此任何提供的模式都必須與源表匹配。
指定模式的三種方法
在 BigQuery 中,有三種方法可以指定模式:
- 在“建立表”步驟中,在 UI 中建立模式。
- 將模式編寫或上傳為 JSON 文字檔案。
- 讓 BigQuery 自動推斷模式。
自動推斷模式
雖然自動推斷模式對開發人員來說工作量最小,但這也會給資料管道帶來最大的風險。
即使資料型別在一個執行中保持一致,它們也可能意外更改。如果沒有固定的模式,BigQuery 必須“確定”要接受哪種資料型別,這可能會導致模式不匹配錯誤。
建立模式的 UI 方法
由於建立模式的 UI 方法相當直觀,因此下一部分將重點介紹如何將模式建立為 JSON 檔案。
建立 JSON 模式檔案
JSON 模式的格式是在列表“[ ]”內的字典“{}”。每個欄位可以具有三個屬性:
- 欄位名稱
- 列型別
- 列模式
預設列模式為“NULLABLE”,這意味著該列接受 NULL 值。其他列模式將在討論巢狀資料型別時介紹。
JSON 模式的一行**示例**如下:
{"name": "id", "type": "STRING", "mode": "NULLABLE"}
如果您只是新增列或更改現有列的型別,可以使用此查詢生成現有表的模式:
[Generate schema query]
只需確保將結果設定為“JSON”即可複製/下載生成的 JSON 檔案。
GCP Cloud Shell:建立表
Cloud Shell 是 Google Cloud Platform 的命令列介面 (CLI) 工具,允許使用者直接從終端視窗與資料來源互動。就像可以使用 GCP Console 中的 BigQuery UI 建立表一樣,也可以透過 CLI 使用類似 Linux 的語法快速建立表。
與在本地機器上配置 CLI 不同,只要您登入到 Google 帳戶,您就會自動登入到 Cloud Shell,因此可以在終端中與 BigQuery 資源互動。也可以(但更復雜)在本地 IDE 中配置 gcloud CLI。
“bq”命令列
無論哪種情況,BigQuery Cloud Shell 整合都依賴於一個命令:**bq**。**bq 命令列**是一個基於 Python 的命令列工具,與 Cloud Shell 相容。
要建立表,需要將**“bq”**與**“mk”**結合使用:
--bq mk
此語法與**“-table”或“-t”標誌**結合使用。還可以指定多個引數,就像在 BigQuery UI 中建立表時一樣。
可用的**引數**包括:
- 過期規則(以秒為單位的過期時間)
- 描述
- 標籤
- 新增標籤(策略標籤)
- 專案 ID
- 資料集 ID
- 表名
- 模式
這是一個**示例**:
**注意** - 提供了內聯模式。
Bq mk -t sample_dataset.bikeshare_table_cli name:STRING,station_id:STRING,modified_date:TIMESTAMP
成功執行後,您將獲得如下輸出:
選擇 Cloud Shell 而不是 UI 沒有效能優勢;這僅僅取決於使用者偏好。但是,以這種方式建立表在建立迴圈或自動化流程時非常有用。