Команда .create function
Область применения: ✅Microsoft Fabric✅Azure Data Explorer
Создает хранимую функцию, которая является повторно используемым запросом KQL с заданным именем. Определение функции сохраняется с метаданными базы данных.
Функции могут вызывать другие функции (рекурсивность не поддерживается). Кроме того, let
операторы допускаются в составе тела функции. См let
. инструкции.
Правила для типов параметров и инструкций CSL совпадают с let
правилами инструкций.
Разрешения
Для выполнения этой команды необходимо иметь по крайней мере разрешения пользователя базы данных.
Синтаксис
.create
function
[ [ ifnotexists
with
(
propertyName =
propertyValue [,
...] ])
Текст параметров {
)
functionName (
}
Дополнительные сведения о соглашениях синтаксиса.
Параметры
Имя (название) | Type | Обязательно | Описание |
---|---|---|---|
ifnotexists |
string |
Если задано, функция будет создана только в том случае, если функция еще не существует. | |
functionName | string |
✔️ | Имя функции для создания или изменения. |
propertyName, propertyValue | string |
Разделенный запятыми список пар свойств "ключ-значение". См . поддерживаемые свойства. | |
parameters | string |
Разделенный запятыми список параметров, необходимых функции. Формат каждого параметра должен иметь значение ParameterName: ParameterDataType. |
|
текст | string |
✔️ | Определяемое пользователем выражение функции. |
Поддерживаемые свойства
Имя. | Тип | Описание |
---|---|---|
docstring |
string |
Описание функции для целей пользовательского интерфейса. |
folder |
string |
Имя папки, используемой для классификации функций пользовательского интерфейса. |
view |
bool |
Назначает эту функцию в качестве сохраненного представления. Сохраненные представления могут участвовать в сценариях поиска и объединения * . Дополнительные сведения см. в разделе "Представления". |
skipvalidation |
bool |
Определяет, следует ли выполнять логику проверки в функции и завершать сбой процесса, если функция не является допустимой. Значение по умолчанию — false . |
Совет
Если функция включает запросы между кластерами и планируете повторно создать функцию с помощью скрипта язык запросов Kusto, установите для этого значение skipvalidation
true
.
Возвраты
Выходной параметр | Тип | Description |
---|---|---|
Имя. | string |
Имя функции. |
Параметры | string |
Параметры, необходимые функции. |
Текст | string |
(Ноль или больше) let операторы, за которыми следует допустимое выражение CSL, вычисляемое при вызове функции. |
Папка | string |
Папка, используемая для классификации функций пользовательского интерфейса. Этот параметр не изменяет способ вызова функции. |
DocString | string |
Описание функции для целей пользовательского интерфейса. |
Примечание.
- Если функция уже существует:
- Если
ifnotexists
задан флаг, команда игнорируется (не применяется никаких изменений). - Если
ifnotexists
флаг НЕ указан, возвращается ошибка. - Сведения об изменении существующей функции см. в разделе
.alter function
- Если
- Не все типы данных поддерживаются в
let
инструкциях. Поддерживаемые типы: логическое значение, строка, long, datetime, timepan, double и dynamic. - Используйте
skipvalidation
для пропуска семантической проверки функции. Это полезно, если функции создаются в неправильном порядке, и F1, использующий F2, создается ранее.
Примеры
Простая демонстрационная функция
В следующем примере функция создается MyFunction1
с описанием (docstring
), папкой с именем Demo
и определяет функцию.
.create function
with (docstring = 'Simple demo function', folder='Demo')
MyFunction1()
{StormEvents | take 100}
Имя. | Параметры | Текст | Папка | DocString |
---|---|---|---|---|
MyFunction1 | () | {StormEvents | принять 100} | Демонстрация | Простая демонстрационная функция |
Демонстрация функции с параметром
В следующем примере создается функция MyFunction2 с описанием (docstring
), папкой с именем Demo
и определяет MyLimit
параметр.
.create function
with (docstring = 'Demo function with parameter', folder='Demo')
MyFunction2(myLimit: long)
{StormEvents | take myLimit}
Имя. | Параметры | Текст | Папка | DocString |
---|---|---|---|---|
MyFunction2 | (myLimit:long) | {StormEvents | take myLimit} | Демонстрация | Демонстрация функции с параметром |