Freigeben über


.create function-Befehl

Gilt für: ✅Microsoft Fabric✅Azure Data Explorer

Erstellt eine gespeicherte Funktion, bei der es sich um eine wiederverwendbare KQL-Abfrage mit dem angegebenen Namen handelt. Die Funktionsdefinition wird mit den Datenbankmetadaten beibehalten.

Funktionen können andere Funktionen aufrufen (Rekursivität wird nicht unterstützt). let Außerdem sind Anweisungen als Teil des Funktionstexts zulässig. Siehe let Anweisungen.

Regeln für Parametertypen und CSL-Anweisungen sind identisch mit let Anweisungen.

Berechtigungen

Sie müssen mindestens über Die Berechtigungen des Datenbankbenutzers verfügen, um diesen Befehl auszuführen.

Syntax

.createfunction [ ] [ with ifnotexists(propertyName = propertyValue [, ...] ] )functionName-Parametertext () { }

Erfahren Sie mehr über Syntaxkonventionen.

Parameter

Name Type Erforderlich Beschreibung
ifnotexists string Wenn angegeben, wird die Funktion nur erstellt, wenn die Funktion noch nicht vorhanden ist.
functionName string ✔️ Der Name der funktion, die erstellt oder geändert werden soll.
propertyName, propertyValue string Eine durch Trennzeichen getrennte Liste von Schlüsselwert-Eigenschaftspaaren. Siehe unterstützte Eigenschaften.
parameters string Eine durch Trennzeichen getrennte Liste von Parametern, die von der Funktion benötigt werden. Das Format für jeden Parameter muss ParameterName:ParameterDataType sein.
body string ✔️ Ein benutzerdefinierter Funktionsausdruck.

Unterstützte Eigenschaften

Name Typ Beschreibung
docstring string Eine Beschreibung der Funktion für UI-Zwecke.
folder string Der Name eines Ordners, der für die Kategorisierung von UI-Funktionen verwendet wird.
view bool Legt diese Funktion als gespeicherte Ansicht fest. Gespeicherte Ansichten können an Such- und Union*-Szenarien teilnehmen. Weitere Informationen finden Sie unter Ansichten.
skipvalidation bool Bestimmt, ob Die Überprüfungslogik für die Funktion ausgeführt werden soll, und schlägt den Prozess fehl, wenn die Funktion ungültig ist. Der Standardwert ist false.

Tipp

Wenn eine Funktion clusterübergreifende Abfragen umfasst und Sie beabsichtigen, die Funktion mithilfe eines Kusto-Abfragesprache Skripts neu zu erstellen, legen Sie diese skipvalidation auf .true

Gibt zurück

Ausgabeparameter Typ BESCHREIBUNG
Name string Der Name der Funktion.
Parameter string Die parameter, die von der Funktion benötigt werden.
Text string (Null oder mehr) let Anweisungen gefolgt von einem gültigen CSL-Ausdruck, der bei Funktionsaufruf ausgewertet wird.
Ordner string Ein Ordner, der für die Kategorisierung von UI-Funktionen verwendet wird. Dieser Parameter ändert nicht die Art und Weise, wie die Funktion aufgerufen wird.
DocString string Eine Beschreibung der Funktion für UI-Zwecke.

Hinweis

  • Wenn die Funktion bereits vorhanden ist:
    • Wenn ifnotexists das Flag angegeben ist, wird der Befehl ignoriert (keine Änderung angewendet).
    • Wenn ifnotexists das Flag NICHT angegeben ist, wird ein Fehler zurückgegeben.
    • Informationen zum Ändern einer vorhandenen Funktion finden Sie unter .alter function
  • Nicht alle Datentypen werden in let Anweisungen unterstützt. Unterstützte Typen sind: boolean, string, long, datetime, timespan, double und dynamic.
  • Wird verwendet skipvalidation , um die semantische Überprüfung der Funktion zu überspringen. Dies ist nützlich, wenn Funktionen in einer falschen Reihenfolge erstellt werden und F1, die F2 verwendet, zuvor erstellt wird.

Beispiele

Einfache Demofunktion

Im folgenden Beispiel wird die MyFunction1 Funktion mit einer Beschreibung (docstring), einem Ordner mit dem Namen Demoerstellt und die Funktion definiert.

.create function 
with (docstring = 'Simple demo function', folder='Demo')
MyFunction1()
{StormEvents | take 100}
Name Parameter Text Ordner DocString
MyFunction1 () {StormEvents | take 100} Demo Einfache Demofunktion

Demo-Funktion mit Parameter

Im folgenden Beispiel wird die Funktion MyFunction2 mit einer Beschreibung (docstring), einem Ordner namens Demound definiert den MyLimit Parameter.

.create function
with (docstring = 'Demo function with parameter', folder='Demo')
 MyFunction2(myLimit: long)
{StormEvents | take myLimit}
Name Parameter Text Ordner DocString
MyFunction2 (myLimit:long) {StormEvents | take myLimit} Demo Demo-Funktion mit Parameter