Benutzerdefinierte Funktionen

Azure Cosmos DB ist eine global verteilte Datenbank mit mehreren Modellen, die das Dokument-, Diagramm- und Schlüssel-Wert-Datenmodell unterstützt. Der Inhalt in diesem Abschnitt dient zum Verwalten von benutzerdefinierten Funktionsressourcen (udfs) mithilfe der SQL-API über REST.

Eine benutzerdefinierte Funktion (User-Defined Function, UDF) ist ein in JavaScript geschriebener, nebeneffektfreier Teil der Anwendungslogik. Er ermöglicht Entwicklern das Erstellen eines Abfrageoperators und erweitert so den Kern der Cosmos DATENBANK-Abfragesprache. Ä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 festlegbare Eigenschaft. Es handelt sich um einen eindeutigen Namen, um die benutzerdefinierte Funktion (UDF) zu identifizieren. Die ID darf 255 Zeichen nicht überschreiten.
body Erforderlich. Es handelt sich um eine vom Benutzer festlegbare Eigenschaft. Dies ist der Textkörper der benutzerdefinierten Funktion.
_rid Es handelt sich um eine vom System generierte Eigenschaft. Die Ressourcen-ID (_rid) ist ein eindeutiger Bezeichner, der auch gemäß dem 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.
_self 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

Sie können folgende Schritte mit benutzerdefinierten Funktionen ausführen:

Informationen zur Funktionsweise von UDFs, einschließlich der Ausführung einer benutzerdefinierten Funktion in einer Abfrage, finden Sie unter Cosmos DB-Programmierung: Gespeicherte Prozeduren, Trigger und UDFs.

Weitere Informationen