Condividi tramite


Comando .create function

Si applica a: ✅Microsoft FabricAzure Esplora dati

Crea una funzione archiviata, ovvero una query KQL riutilizzabile, con il nome specificato. La definizione della funzione viene mantenuta con i metadati del database.

Le funzioni possono chiamare altre funzioni (la ricorsione non è supportata). Inoltre, let le istruzioni sono consentite come parte del corpo della funzione. Vedere let le istruzioni.

Le regole per i tipi di parametro e le istruzioni CSL sono uguali a per let le istruzioni .

Autorizzazioni

Per eseguire questo comando, è necessario disporre almeno delle autorizzazioni utente del database.

Sintassi

.createfunction [ ifnotexists ] [ with(propertyName = propertyValue [, ...]) ] corpo dei parametri{) functionName ( }

Altre informazioni sulle convenzioni di sintassi.

Parametri

Nome Digita Obbligatorio Descrizione
ifnotexists string Se specificato, la funzione verrà creata solo se la funzione non esiste ancora.
functionName string ✔️ Nome della funzione da creare o modificare.
propertyName, propertyValue string Elenco delimitato da virgole di coppie di proprietà chiave-valore. Vedere le proprietà supportate.
parameters string Elenco delimitato da virgole di parametri richiesti dalla funzione . Il formato per ogni parametro deve essere ParameterName:ParameterDataType.
body string ✔️ Espressione di funzione definita dall'utente.

Proprietà supportate

Nome Tipo Descrizione
docstring string Descrizione della funzione per scopi dell'interfaccia utente.
folder string Nome di una cartella usata per la categorizzazione delle funzioni dell'interfaccia utente.
view bool Designa questa funzione come vista archiviata. Le visualizzazioni archiviate possono partecipare a scenari di ricerca e unione * . Per altre informazioni, vedere Visualizzazioni.
skipvalidation bool Determina se eseguire o meno la logica di convalida nella funzione e non eseguire il processo se la funzione non è valida. Il valore predefinito è false.

Suggerimento

Se una funzione include query tra cluster e si prevede di ricreare la funzione usando uno script Linguaggio di query Kusto, impostare su skipvalidation true.

Valori restituiti

Parametro di output Tipo Descrizione
Name string Nome della funzione.
Parametri string Parametri richiesti dalla funzione .
Testo string (Zero o più) let istruzioni seguite da un'espressione CSL valida valutata al momento della chiamata di funzione.
Cartella string Cartella usata per la categorizzazione delle funzioni dell'interfaccia utente. Questo parametro non modifica il modo in cui viene richiamata la funzione.
DocString string Descrizione della funzione per scopi dell'interfaccia utente.

Nota

  • Se la funzione esiste già:
    • Se ifnotexists viene specificato il flag, il comando viene ignorato (nessuna modifica applicata).
    • Se ifnotexists il flag NON è specificato, viene restituito un errore.
    • Per la modifica di una funzione esistente, vedere .alter function
  • Non tutti i tipi di dati sono supportati nelle let istruzioni . I tipi supportati sono: booleano, string, long, datetime, timespan, double e dynamic.
  • Usare skipvalidation per ignorare la convalida semantica della funzione. Ciò è utile quando le funzioni vengono create in un ordine non corretto e F1 che usa F2 viene creato in precedenza.

Esempi

Funzione demo semplice

L'esempio seguente crea la MyFunction1 funzione con una descrizione (docstring), una cartella denominata Demoe definisce la funzione .

.create function 
with (docstring = 'Simple demo function', folder='Demo')
MyFunction1()
{StormEvents | take 100}
Nome Parametri Testo Cartella DocString
MyFunction1 () {StormEvents | take 100} Demo Funzione demo semplice

Funzione demo con parametro

L'esempio seguente crea la funzione MyFunction2 con una descrizione (docstring), una cartella denominata Demoe definisce il MyLimit parametro .

.create function
with (docstring = 'Demo function with parameter', folder='Demo')
 MyFunction2(myLimit: long)
{StormEvents | take myLimit}
Nome Parametri Testo Cartella DocString
MyFunction2 (myLimit:long) {StormEvents | take myLimit} Demo Funzione demo con parametro