Share via


.create 函式命令

建立預存函式,這是具有指定名稱的可重複使用 KQL 查詢。 函數的定義會隨著資料庫中繼資料保存。

) 不支援函式呼叫其他函式 (遞歸。 此外, let 語句也允許作為 函式主體的一部分。 請參閱 let 陳述式

參數類型和 CSL 陳述式的規則與 let 陳述式的規則相同。

權限

您必須至少有 資料庫使用者 許可權才能執行此命令。

Syntax

.createfunction[ ] [ withifnotexists( propertyName =propertyValue [, ...]) ]functionName(參數){身體}

深入瞭解 語法慣例

參數

名稱 類型 必要 Description
ifnotexists string 如果指定,則只有在函式尚不存在時,才會建立函式。
functionName string ✔️ 要建立或改變之函式的名稱。
propertyNamepropertyValue string 索引鍵/值屬性組的逗號分隔清單。 請參閱 支持的屬性
parameters string 函式所需參數的逗號分隔清單。 每個參數的格式必須是 ParameterName:ParameterDataType
body string ✔️ 用戶定義函數表達式。

支援的屬性

名稱 類型 Description
docstring string 用於 UI 的函式說明。
folder string 用於 UI 函式分類的資料夾名稱。
view bool 將此函式指定為預存檢視。 預存檢視可以參與 搜尋聯集 * 案例。 如需詳細資訊,請參閱 檢視
skipvalidation bool 判斷是否要在函式上執行驗證邏輯,並在函式無效時讓進程失敗。 預設值為 false

提示

如果函式涉及跨叢集查詢,而且您打算使用 Kusto 查詢語言 腳本重新建立函式,請將 設定skipvalidationtrue

傳回

輸出參數 類型 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} 示範 具有參數的示範函數