.create function 命令
適用於: ✅Microsoft網狀架構✅Azure 數據總管
建立預存函式,這是具有指定名稱的可重複使用 KQL 查詢。 函式定義會與資料庫元數據一起保存。
函式可以呼叫其他函式(不支援遞歸性)。 此外,let
允許語句做為函式主體的一部分。 請參閱 let
語句。
參數類型和 CSL 語句的規則與 語句let
的規則相同。
權限
您必須至少有 資料庫使用者 許可權才能執行此命令。
語法
.create
function
[ ifnotexists
] [ with
(
propertyName =
propertyValue [,
...])
] functionName(
參數)
{
主體 }
深入瞭解 語法慣例。
參數
姓名 | 類型 | 必要 | 描述 |
---|---|---|---|
ifnotexists |
string |
如果指定,則只有在函式尚不存在時,才會建立函式。 | |
functionName | string |
✔️ | 要建立或改變之函式的名稱。 |
propertyName、 propertyValue | string |
索引鍵/值屬性組的逗號分隔清單。 請參閱 支持的屬性。 | |
parameters | string |
函式所需的參數逗號分隔清單。 每個參數的格式必須是 ParameterName: ParameterDataType。 |
|
身體 | string |
✔️ | 用戶定義的函數表達式。 |
支援的屬性
名稱 | 類型 | 描述 |
---|---|---|
docstring |
string |
UI 用途之函式的描述。 |
folder |
string |
用於 UI 函式分類的資料夾名稱。 |
view |
bool |
將此函式指定為預存檢視。 預存檢視可以參與 搜尋 和聯集 * 案例。 如需詳細資訊,請參閱 檢視。 |
skipvalidation |
bool |
判斷是否要在函式上執行驗證邏輯,並在函式無效時失敗進程。 預設值為 false 。 |
提示
如果函式牽涉到跨叢集查詢,而且您打算使用 Kusto 查詢語言 腳本重新建立函式,請將 設定skipvalidation
為 true
。
傳回
輸出參數 | 類型 | Description |
---|---|---|
名稱 | string |
函數的名稱。 |
參數 | string |
函式所需的參數。 |
本文 | string |
(零或更多) let 語句後面接著在函式調用時評估的有效 CSL 表達式。 |
Folder | string |
用於 UI 函式分類的資料夾。 此參數不會變更叫用函式的方式。 |
DocString | string |
UI 用途之函式的描述。 |
注意
- 如果函式已經存在:
- 如果
ifnotexists
指定旗標,則會忽略命令(未套用任何變更)。 - 如果未
ifnotexists
指定旗標,則會傳回錯誤。 - 如需變更現有的函式,請參閱
.alter function
- 如果
- 語句中
let
不支援所有數據類型。 支持的類型包括:布爾值、字串、long、datetime、timespan、double 和 dynamic。 - 用來
skipvalidation
略過函式的語意驗證。 當函式以不正確的順序建立,且稍早建立使用 F2 的 F1 時,這會很有用。
範例
簡單示範函式
下列範例會 MyFunction1
使用 description (docstring
)、名為 Demo
的資料夾來建立函式,並定義函式。
.create function
with (docstring = 'Simple demo function', folder='Demo')
MyFunction1()
{StormEvents | take 100}
名稱 | 參數 | 本文 | Folder | DocString |
---|---|---|---|---|
MyFunction1 | () | {StormEvents | take 100} | 示範 | 簡單示範函式 |
具有參數的示範函式
下列範例會 建立 MyFunction2 函式,其中包含描述 (docstring
),名為 Demo
的資料夾,並定義 MyLimit
參數。
.create function
with (docstring = 'Demo function with parameter', folder='Demo')
MyFunction2(myLimit: long)
{StormEvents | take myLimit}
名稱 | 參數 | 本文 | Folder | DocString |
---|---|---|---|---|
MyFunction2 | (myLimit:long) | {StormEvents | take myLimit} | 示範 | 具有參數的示範函式 |