你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn

.create function 命令

适用于:✅Microsoft Fabric✅Azure 数据资源管理器

创建存储函数,该函数是具有给定名称的可重用 KQL 查询。 函数定义与数据库元数据一起保留。

Functions 可以调用其他函数(不支持递归)。 此外,允许 let 语句作为函数主体的一部分。 请参阅 let 语句

参数类型和 CSL 语句的规则与 let 语句的规则相同。

权限

你必须至少具有数据库用户权限才能运行此命令。

语法

.create function [ ifnotexists ] [ with(propertyName=propertyValue [, ...]) ] functionName(parameters){body}

详细了解语法约定

参数

客户 类型​​ 必需 说明
ifnotexists string 如果指定此项,则只有在此函数不存在时才会创建此函数。
functionName string ✔️ 要创建或更改的函数的名称。
propertyName、propertyValue string 键值属性对的逗号分隔列表。 请参阅支持的属性
参数 string 函数所需参数的逗号分隔列表。 每个参数的格式必须为 ParameterNameParameterDataType。
正文 string ✔️ 用户定义的函数表达式。

支持的属性

客户 类型​​ 说明
docstring string 用于 UI 目的的函数说明。
folder string 用于 UI 函数分类的文件夹的名称。
view bool 将此函数指定为存储视图。 存储视图可以参与搜索联合*方案。 有关详细信息,请参阅视图
skipvalidation bool 确定是否对函数运行验证逻辑,如果函数无效,则让进程失败。 默认为 false

提示

如果函数涉及跨群集查询,并且你计划使用 Kusto 查询语言脚本重新创建函数,请将 skipvalidation 设置为 true

返回

输出参数 类型​​ 说明
客户 string 函数的名称。
参数 string 函数所需的参数。
Body string (零个或多个)let 语句,后跟有效的 CSL 表达式,该表达式在函数调用时求值。
Folder string 用于 UI 函数分类的文件夹。 此参数不会更改调用函数的方式。
DocString string 用于 UI 目的的函数说明。

注意

  • 如果函数已存在:
    • 如果指定了 ifnotexists 标志,则该命令将被忽略(不应用更改)。
    • 如果未指定 ifnotexists 标志,则将返回错误。
    • 若要更改现有函数,请参阅 .alter function
  • let 语句并非支持所有数据类型。 支持的类型为:布尔值、字符串、长整型、日期/时间、时间跨度、双精度型和动态型。
  • 使用 skipvalidation 跳过函数的语义验证。 如果以不正确的顺序创建函数,并且之前创建了使用 F2 的 F1,这会很有用。

示例

简单函数

以下示例将创建MyFunction1包含说明 (docstring) 的函数、名为 Demo 的文件夹,并定义该函数。

.create function 
with (docstring = 'Simple demo function', folder='Demo')
MyFunction1()
{StormEvents | take 100}
客户 参数 Body Folder DocString
MyFunction1 () {StormEvents | take 100} 演示 简单演示函数

具有参数的函数

以下示例使用名为 Demo的说明(docstring)文件夹创建 MyFunction2 函数,并定义 Mytimestamp 参数。

.create function with (docstring = "Demo function with date parameter",folder = "Demo") 
 MyFunction2(Mytimestamp:datetime) {
    StormEvents
    | where EndTime <= Mytimestamp
 }
客户 参数 Body Folder DocString
MyFunction2 (Mytimestamp:datetime) {StormEvents | where EndTime <= Mytimestamp} 演示 带日期参数的演示函数