這很重要
mustache 參數語法僅支援於舊有 SQL 編輯器。 Databricks 建議在新查詢中使用命名參數標記。 如果你將使用 mustache 語法的查詢複製到筆記本、AI/BI 儀表板資料集編輯器或 Genie 空間中,在執行之前必須先將其轉換為命名參數標記。
在舊有的 SQL 編輯器中,任何用雙大括{{ }}號包裹的字串都會被視為查詢參數。 小工具會出現在結果窗格上方,您可以在其中設定參數值。
新增 Mustache 參數
- 按
Cmd + I。 參數插入游標位置,並顯示 「新增參數 」對話框。 - 輸入 關鍵字,可選擇更改 標題,並選擇 一種類型。
- 按下 [新增參數]。
- 在小工具中設定參數值。
- 按下 [套用變更]。
- 點選 [儲存]。
或者,直接輸入 {{ }} 查詢,然後點擊參數小工具中的齒輪圖示來設定。
若要用不同值重新執行查詢,請更新小工具並點選 「套用變更」。
編輯、移除及重新排序參數
編輯:點擊參數小工具旁的齒輪圖示。 為了防止不擁有查詢的使用者更改參數值,請點擊 「僅顯示結果」。
移除:刪除查詢中的參數標記。 該小工具會自動移除。
重新排序:點擊並拖曳參數元件到想要的順序。
小工具類型
以下小工具類型可供選擇:
文字
接受字串做為輸入。 反斜線、單引號和雙引號會自動跳脫。 Azure Databricks 會在數值周圍加上引號。
SELECT * FROM samples.tpch.customer WHERE c_name = {{ name_param }}
編號
接受一個數字作為輸入。
SELECT * FROM users WHERE age = {{ number_param }}
日期與時間
參數化日期與時間戳記值。 有三個選項可用:
| 類型 | 精確度 |
|---|---|
| 日期 | Day |
| 日期和時間 | 分鐘 |
| 日期與時間 (含秒) | 第二個 |
所有日期和時間值都以字串字面形式傳遞,並在查詢中必須以單引號包裹:
SELECT * FROM usage_logs WHERE date = '{{ date_param }}'
當你選擇 Range 選項時,Azure Databricks 會用 .start 和 .end 後綴建立兩個參數:
SELECT * FROM usage_logs
WHERE modified_time > '{{ date_range.start }}'
AND modified_time < '{{ date_range.end }}'
備註
日期範圍小工具僅對 DATE 類型的欄位回傳正確結果。 關於時間戳記欄位,請使用日期與時間範圍小工具。
動態日期值:日期小工具包含藍色閃電圖示。 點擊它以選取動態值,如 today、 yesterday、 this weeklast weeklast monthlast year。 這些數值會自動更新。
這很重要
動態日期值與排程查詢不相容。
下拉式清單
限制輸入到預先定義的靜態清單。 支援單一值與多值選擇。
單一值:在查詢中將參數包裹在單引號中。
多值:啟用 在元件設定中 允許多個值 。 使用 引號 選項來控制數值是否加上單引號、雙引號或不加任何引號。 更新你的
WHERE條款以使用IN:SELECT * FROM orders WHERE status IN ( {{ status_param }} )選擇雙引號後,查詢解析為:
WHERE status IN ("value1", "value2", "value3")。
下拉選單的列表值是字串。 要使用日期或時間戳記,請依資料來源所需的格式輸入。
Query-Based 下拉式清單
從已儲存的查詢中填充下拉選單選項。 它的行為像下拉選單,但選項是動態的。
- 在設定面板中的類型,選擇查詢式下拉選單。
- 點擊 查詢 欄位並選擇已儲存的查詢。
如果查詢回傳多於一欄,Azure Databricks 會使用第一欄。 如果查詢回傳名為 name 和 value的欄位,元件會顯示該 name 欄位,但在執行時將相關欄位 value 傳遞給查詢。
範例:
SELECT user_uuid AS 'value', username AS 'name' FROM users
| value | 名字 |
|---|---|
| 1001 | 約翰·史密斯 |
| 1002 | 無名女屍 |
| 1003 | Bobby 數據表 |
執行時傳遞給資料庫的值是 1001、 , 1002或 1003,而非顯示名稱。
備註
若來源查詢回傳大量紀錄,效能會下降。