- BigQuery教程
- BigQuery - 首頁
- BigQuery - 概覽
- BigQuery - 初始設定
- BigQuery與本地SQL引擎
- BigQuery - Google Cloud Console
- BigQuery - Google Cloud 層級結構
- 什麼是Dremel?
- 什麼是BigQuery Studio?
- BigQuery - 資料集
- BigQuery - 表格
- BigQuery - 檢視
- BigQuery - 建立表格
- BigQuery - 基本Schema設計
- 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標準SQL與傳統SQL
雖然SQL沒有像Python(或任何其他指令碼語言)那樣的底層依賴關係,但是您選擇的BigQuery SQL版本之間存在差異。
由於Google Cloud Platform認識到開發人員熟悉不同的SQL方言,因此他們為那些可能習慣於使用更傳統或“傳統”SQL版本的人提供了選擇。
標準SQL和傳統SQL之間的區別
標準SQL和傳統SQL之間的主要區別在於型別對映。雖然傳統SQL支援與通用資料型別更緊密匹配的型別,但標準SQL型別更特定於BigQuery。例如,BigQuery標準SQL支援的時間戳值的範圍要窄得多。
其他差異包括 -
- 使用反引號而不是方括號來轉義特殊字元。
- 表引用使用冒號而不是點。
- 不支援萬用字元運算子。
在BigQuery SQL環境中切換標準SQL和傳統SQL非常簡單。在編寫和執行SQL查詢之前,只需在第1行添加註釋:“#legacy”。
BigQuery標準SQL的優勢
與派生的傳統SQL方言相比,標準SQL使SQL開發人員能夠以更高的靈活性和效率編寫查詢。標準SQL透過提供在處理專業環境中遇到的“雜亂”資料時有用的函式和框架,提供了更多“現實世界”的實用程式。
標準SQL促進以下方面 -
- 更靈活的WITH子句,使使用者能夠在指令碼中多次重複使用子查詢和CTE。
- 可以用SQL或JavaScript編寫的使用者自定義函式。
- SELECT子句中的子查詢。
- 相關子查詢。
- 複雜資料型別(ARRAY和STRUCT型別)。
標準SQL和傳統SQL之間的不相容性
通常,標準SQL和傳統SQL操作之間不相容的情況不會導致很多問題。但是,有一種情況適用於AirFlow使用者。
如果使用BigQueryExecuteQuery運算子,則可以指定是否使用傳統SQL。要使用標準SQL,請設定“use_legacy_sql = FALSE”。
但是,如果開發人員未能執行此操作並使用僅與標準SQL相容的函式,例如TIMESTAMP_MILLIS()(一個時間戳轉換函式),則整個查詢可能會失敗。
廣告