.create 函式命令
建立預存函式,這是具有指定名稱的可重複使用 KQL 查詢。 函數的定義會隨著資料庫中繼資料保存。
) 不支援函式呼叫其他函式 (遞歸。 此外, let
語句也允許作為 函式主體的一部分。 請參閱 let
陳述式。
參數類型和 CSL 陳述式的規則與 let
陳述式的規則相同。
權限
您必須至少有 資料庫使用者 許可權才能執行此命令。
Syntax
.create
function
[ ] [ with
ifnotexists
(
propertyName =
propertyValue [,
...])
]functionName(
參數)
{
身體}
深入瞭解 語法慣例。
參數
名稱 | 類型 | 必要 | Description |
---|---|---|---|
ifnotexists |
string |
如果指定,則只有在函式尚不存在時,才會建立函式。 | |
functionName | string |
✔️ | 要建立或改變之函式的名稱。 |
propertyName, propertyValue | string |
索引鍵/值屬性組的逗號分隔清單。 請參閱 支持的屬性。 | |
parameters | string |
函式所需參數的逗號分隔清單。 每個參數的格式必須是 ParameterName: ParameterDataType。 |
|
body | string |
✔️ | 用戶定義函數表達式。 |
支援的屬性
名稱 | 類型 | Description |
---|---|---|
docstring |
string |
用於 UI 的函式說明。 |
folder |
string |
用於 UI 函式分類的資料夾名稱。 |
view |
bool |
將此函式指定為預存檢視。 預存檢視可以參與 搜尋 和 聯集 * 案例。 如需詳細資訊,請參閱 檢視。 |
skipvalidation |
bool |
判斷是否要在函式上執行驗證邏輯,並在函式無效時讓進程失敗。 預設值為 false 。 |
提示
如果函式涉及跨叢集查詢,而且您打算使用 Kusto 查詢語言 腳本重新建立函式,請將 設定skipvalidation
為 true
。
傳回
輸出參數 | 類型 | Description |
---|---|---|
名稱 | string |
函式的名稱。 |
參數 | string |
函式所需的參數。 |
主體 | string |
(零或多個) let 陳述式,後面接著在函式呼叫時評估的有效 CSL 運算式。 |
資料夾 | string |
用於分類 UI 函數的資料夾。 此參數不會變更叫用函數的方式。 |
DocString | string |
用於 UI 的函數說明。 |
注意
- 如果函式已經存在:
- 如果指定了
ifnotexists
旗標,系統就會忽略命令 (不套用任何變更)。 - 如果未指定
ifnotexists
旗標,則會傳回錯誤。 - 若要更改現有的函數,請參閱
.alter function
- 如果指定了
let
陳述式無法支援所有的資料類型。 支援的類型為:boolean、string、long、datetime、timespan、double 和 dynamic。- 使用
skipvalidation
可略過函數的語意驗證。 若函數是以不正確的順序建立,且使用 F2 的 F1 是在這之前建立的,此命令就非常有用。
範例
簡單的示範函數
.create function
with (docstring = 'Simple demo function', folder='Demo')
MyFunction1() {StormEvents | take 100}
名稱 | 參數 | 主體 | 資料夾 | DocString |
---|---|---|---|---|
MyFunction1 | () | {StormEvents | 需要 100} | 示範 | 簡單的示範函數 |
具有參數的示範函數
.create function
with (docstring = 'Demo function with parameter', folder='Demo')
MyFunction2(myLimit: long) {StormEvents | take myLimit}
名稱 | 參數 | 主體 | 資料夾 | DocString |
---|---|---|---|---|
MyFunction2 | (myLimit:long) | {StormEvents | take myLimit} | 示範 | 具有參數的示範函數 |
意見反應
https://aka.ms/ContentUserFeedback。
即將登場:在 2024 年,我們將逐步淘汰 GitHub 問題作為內容的意見反應機制,並將它取代為新的意見反應系統。 如需詳細資訊,請參閱:提交並檢視相關的意見反應