Benutzerdefinierte Funktionen
Azure Cosmos DB ist eine global verteilte Datenbank mit mehreren Modellen, die die Dokument-, Graph- und Schlüssel-Wert-Datenmodelle unterstützt. Der Inhalt in diesem Abschnitt dient zum Verwalten benutzerdefinierter Funktionsressourcen (udfs) mithilfe der SQL-API über REST.
Eine benutzerdefinierte Funktion (User-Defined Function, UDF) ist ein nebeneffektfreier Teil der Anwendungslogik, die in JavaScript geschrieben wurde. Entwickler können damit einen Abfrageoperator erstellen und so den Kern der Cosmos DB-Abfragesprache erweitern. Ähnlich wie gespeicherte Prozeduren unterliegen benutzerdefinierte Funktionen der Einschränkung einer Auflistung. Sie schränken die Anwendungslogik daher auf die Auflistung ein.
Ähnlich wie gespeicherte Prozeduren hat die Ressource der benutzerdefinierten Funktion ein festes Schema. Die Texteigenschaft enthält die Anwendungslogik. Das folgende Beispiel veranschaulicht das JSON-Konstrukt einer benutzerdefinierten Funktion.
{
"id":"simpleTaxUDF",
"body": "
function tax(income) {
if(income == undefined)
throw 'no input';
if (income < 1000)
return income * 0.1;
else if (income < 10000)
return income * 0.2;
else
return income * 0.4;
}
",
"_rid":"hLEEAI1YjgcBAAAAAAAAgA==",
"_ts":1408058682,
"_self":"dbs\/hLEEAA==\/colls\/hLEEAI1Yjgc=\/udfs\/hLEEAI1YjgcBAAAAAAAAgA==\/",
"_etag":"00004100-0000-0000-0000-53ed453a0000"
}
Eigenschaft | BESCHREIBUNG |
---|---|
id | Erforderlich. Es handelt sich um eine vom Benutzer festgelegte Eigenschaft. Es handelt sich um einen eindeutigen Namen, um die benutzerdefinierte Funktion (UDF) zu identifizieren. Die ID darf nicht länger als 255 Zeichen sein. |
body | Erforderlich. Es handelt sich um eine vom Benutzer festgelegte Eigenschaft. Es ist der Textkörper der UDF. |
_los | Es handelt sich um eine vom System generierte Eigenschaft. Die Ressourcen-ID (_rid) ist ein eindeutiger Bezeichner, der auch je nach Ressourcenstapel im Ressourcenmodell hierarchisch ist. Sie wird intern für die Platzierung und Navigation der UDF-Ressource verwendet. |
_Ts | Es handelt sich um eine vom System generierte Eigenschaft. Sie gibt den zuletzt aktualisierten Zeitstempel der Ressource an. Der Wert ist ein Zeitstempel. |
_Selbst | Es handelt sich um eine vom System generierte Eigenschaft. Es handelt sich um den eindeutigen, adressierbaren URI für die Ressource. |
_Etag | Es handelt sich um eine vom System generierte Eigenschaft, die das Ressourcen-Etag angibt, das für die Steuerung der optimistischen Parallelität erforderlich ist. |
Aufgaben
Mit benutzerdefinierten Funktionen können Sie folgendes tun:
Informationen zur Funktionsweise von UDFs, einschließlich der Ausführung einer UDF in einer Abfrage, finden Sie unter Cosmos DB-Programmierung: Gespeicherte Prozeduren, Trigger und UDFs.