- 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 - 使用者自定義函式
BigQuery 的優勢之一是能夠建立自定義邏輯來操作資料。在像Python這樣的程式語言中,開發人員可以輕鬆地編寫和定義函式,這些函式可以在指令碼中的多個位置使用。
BigQuery 中的持久使用者自定義函式
許多SQL方言,包括 BigQuery,都支援這些函式。BigQuery 將其稱為持久使用者自定義函式。它們簡稱為 UDF(使用者自定義函式)或 PUDF(持久使用者自定義函式)。
使用者自定義函式的本質可以分為兩個步驟 -
- 定義函式邏輯
- 在指令碼中使用函式
定義使用者自定義函式
定義使用者自定義函式從一個熟悉的 CRUD 語句開始:CREATE OR REPLACE。
在這裡,而不是使用 CREATE OR REPLACE TABLE,需要使用 CREATE OR REPLACE FUNCTION 後跟AS()命令。
與可以在 BigQuery 中編寫的其他 SQL 查詢不同,在建立 UDF 時,需要指定輸入欄位和型別。
這些輸入的定義方式類似於 Python 函式 -
(column_name, type)
為了檢視這些步驟的組合,我建立了一個簡單的臨時 UDF,由 TEMP FUNCTION 指定,它根據使用者輸入解析各種 URL。
建立上述臨時函式的步驟如下 -
- CREATE TEMP FUNCTION
- 指定函式名稱 (get_sitetype)
- 指定函式輸入和型別 (inp_url, STRING)
- 告訴函式返回什麼型別 (STRING)
REGEXP_CONTAINS() 函式搜尋包含提供的 URL 字串的字串的匹配項。NET.HOST() 函式從輸入 URL 字串中提取主機域名。
將其應用於 hacker news 資料集(BigQuery 公共資料集),我們可以生成一個將儲存的 URL 分類為不同媒體類別的輸出 -
注意 - 臨時函式必須緊跟在查詢後面。
廣告