Snabbstart: Skapa ett Node.js program med hjälp av Azure Cosmos DB Gremlin API-konto

GÄLLER FÖR: Gremlin API

I den här snabbstarten skapar och hanterar du ett Azure Cosmos DB Gremlin-API-konto (graph) från Azure Portal och lägger till data med hjälp av en Node.js app som klonas från GitHub. Azure Cosmos DB är en databastjänst med flera modeller som gör att du snabbt kan skapa och fråga dokument-, tabell-, nyckelvärde- och grafdatabaser med globala distributions- och vågräta skalningsfunktioner.

Förutsättningar

Skapa ett databaskonto

  1. Logga in på Azure Portal i ett nytt webbläsarfönster.

  2. I den vänstra menyn väljer du Skapa en resurs.

    Create a resource in the Azure portal

  3. På sidan Nytt väljer du DatabaserAzure>Cosmos DB.

    The Azure portal Databases pane

  4. På sidan Skapa Azure Cosmos DB-konto anger du inställningarna för det nya Azure Cosmos DB-kontot.

    Inställning Värde Beskrivning
    Prenumeration Prenumerationens namn Välj den Azure-prenumeration som ska användas för det här Azure Cosmos-kontot.
    Resursgrupp Namn på resursgrupp Välj en resursgrupp eller välj Skapa ny och ange sedan ett unikt namn för den nya resursgruppen.
    Account Name Ange ett unikt namn Ange ett unikt namn som identifierar ditt Azure Cosmos DB-konto. Din konto-URI läggs gremlin.azure.com till ditt unika kontonamn.

    Kontonamnet kan bara använda gemener, siffror och bindestreck (-) och måste vara mellan 3 och 44 tecken långt.
    API Gremlin (graf) API:et avgör vilken typ av konto som skapas. Azure Cosmos DB innehåller fem API:er: Core (SQL) för dokumentdatabaser, Gremlin för grafdatabaser, MongoDB för dokumentdatabaser, Azure Table och Cassandra. Du måste skapa ett separat konto för varje API.

    Välj Gremlin (graf) eftersom du i den här snabbstarten skapar en tabell som fungerar med Gremlin-API:et.

    Läs mer om Gremlin-API:et.
    Location Den region som är närmast dina användare Välj en geografisk plats som värd för ditt Azure Cosmos DB-konto. Använd den plats som är närmast dina användare för att ge dem så snabb åtkomst till data som möjligt.
    Kapacitetsläge Etablerat dataflöde eller serverlöst Välj Etablerat dataflöde för att skapa ett konto i etablerat dataflödesläge . Välj Serverlös för att skapa ett konto i serverlöst läge.
    Tillämpa rabatt på den kostnadsfria Azure Cosmos DB-nivån Använd eller använd inte Med den kostnadsfria Azure Cosmos DB-nivån får du de första 1 000 RU/s och 25 GB lagringsutrymme kostnadsfritt på ett konto. Läs mer om den kostnadsfria nivån.

    Anteckning

    Du kan ha upp till ett Azure Cosmos DB-konto på kostnadsfri nivå per Azure-prenumeration och måste anmäla dig när du skapar kontot. Om du inte ser alternativet för att tillämpa rabatten på den kostnadsfria nivån innebär det att ett annat konto i prenumerationen redan har aktiverats med den kostnadsfria nivån.

    The new account page for Azure Cosmos DB

  5. På fliken Global distribution konfigurerar du följande information. Du kan lämna standardvärdena i den här snabbstarten:

    Inställning Värde Beskrivning
    Geo-redundans Inaktivera Aktivera eller inaktivera global distribution på ditt konto genom att para ihop din region med en parregion. Du kan lägga till fler regioner i ditt konto senare.
    Skrivåtgärder för flera regioner Inaktivera Med funktionen skrivningar i flera regioner kan du dra nytta av det etablerade dataflödet för dina databaser och containrar över hela världen.

    Anteckning

    Följande alternativ är inte tillgängliga om du väljer Serverlös som kapacitetsläge:

    • Tillämpa rabatt för kostnadsfri nivå
    • Geo-redundans
    • Skrivåtgärder för flera regioner
  6. Du kan också konfigurera ytterligare information på följande flikar:

    • Nätverk – Konfigurera åtkomst från ett virtuellt nätverk.
    • Säkerhetskopieringsprincip – Konfigurera antingen regelbunden eller kontinuerlig säkerhetskopieringsprincip.
    • Kryptering – Använd antingen tjänsthanterad nyckel eller en kundhanterad nyckel.
    • Taggar – Taggar är namn/värde-par som gör att du kan kategorisera resurser och visa konsoliderad fakturering genom att använda samma tagg för flera resurser och resursgrupper.
  7. Välj Granska + skapa.

  8. Det tar några minuter att skapa kontot. Vänta tills portalen visar Grattis! Sidan för ditt Azure Cosmos DB-konto skapades .

    Azure Cosmos DB account created page

Lägga till en graf

Nu kan du använda datautforskarverktyget i Azure Portal för att skapa en grafdatabas.

  1. Välj Data Explorer>Ny Graph.

    Området Lägg till diagram visas längst till höger, du kan behöva bläddra åt höger för att se det.

    The Azure portal Data Explorer, Add Graph page

  2. På sidan Lägg till diagram anger du inställningarna för den nya grafen.

    Inställning Föreslaget värde Beskrivning
    Databas-id sample-database Ange sample-database som namn på den nya databasen. Databasnamn måste innehålla mellan 1 och 255 tecken och får inte innehålla / \ # ? eller avslutande blanksteg.
    Dataflöde 400 RU:er Ändra genomflödet till 400 begäransenheter per sekund (RU/s). Du kan skala upp dataflödet senare om du vill minska svarstiden.
    Graf-id sample-graph Ange sample-graph som namnet på den nya samlingen. Samma teckenkrav gäller för diagramnamn som databas-ID:n.
    Partition Key (Partitionsnyckel) /pk Alla Cosmos DB-konton behöver en partitionsnyckel för horisontell skalning. Lär dig hur du väljer en lämplig partitionsnyckel i artikeln Graph datapartitionering.
  3. När formuläret har fyllts i väljer du OK.

Klona exempelprogrammet

Nu ska vi klona en Gremlin-API-app från GitHub, ange anslutningssträngen och köra appen. Du kommer att se hur lätt det är att arbeta med data programmässigt.

  1. Öppna en kommandotolk, skapa en ny mapp som heter git-samples och stäng sedan kommandotolken.

    md "C:\git-samples"
    
  2. Öppna ett git-terminalfönster, t.ex. git bash, och använd kommandot cd för att ändra till den nya mappen där du vill installera exempelappen.

    cd "C:\git-samples"
    
  3. Klona exempellagringsplatsen med följande kommando. Detta kommando skapar en kopia av exempelappen på din dator.

    git clone https://github.com/Azure-Samples/azure-cosmos-db-graph-nodejs-getting-started.git
    
  4. Öppna därefter lösningsfilen i Visual Studio.

Granska koden

Det här är valfritt. Om du vill lära dig hur databasresurserna skapas i koden kan du granska följande kodavsnitt. Annars kan du gå vidare till Uppdatera din anslutningssträng.

Följande kodfragment är alla hämtade från filen app.js.

Den här konsolappen använder Gremlin-drivrutinen med öppen källkod Node.js.

  • Gremlin-klienten skapas.

    const authenticator = new Gremlin.driver.auth.PlainTextSaslAuthenticator(
        `/dbs/${config.database}/colls/${config.collection}`, 
        config.primaryKey
    )
    
    
    const client = new Gremlin.driver.Client(
        config.endpoint, 
        { 
            authenticator,
            traversalsource : "g",
            rejectUnauthorized : true,
            mimeType : "application/vnd.gremlin-v2.0+json"
        }
    );
    
    

    Konfigurationerna finns i config.js, som vi redigerar i följande avsnitt.

  • En serie funktioner har definierats för att köra olika Gremlin-åtgärder. Detta är en av dem:

    function addVertex1()
    {
        console.log('Running Add Vertex1'); 
        return client.submit("g.addV(label).property('id', id).property('firstName', firstName).property('age', age).property('userid', userid).property('pk', 'pk')", {
                label:"person",
                id:"thomas",
                firstName:"Thomas",
                age:44, userid: 1
            }).then(function (result) {
                    console.log("Result: %s\n", JSON.stringify(result));
            });
    }
    
  • Varje funktion kör en client.execute-metod med en frågesträngparameter för Gremlin. Följande är ett exempel på hur g.V().count() körs:

    function countVertices()
    {
        console.log('Running Count');
        return client.submit("g.V().count()", { }).then(function (result) {
            console.log("Result: %s\n", JSON.stringify(result));
        });
    }
    
  • I slutet av filen anropas sedan alla metoder. På detta vis körs de efter varandra:

    client.open()
    .then(dropGraph)
    .then(addVertex1)
    .then(addVertex2)
    .then(addEdge)
    .then(countVertices)
    .catch((err) => {
        console.error("Error running query...");
        console.error(err)
    }).then((res) => {
        client.close();
        finish();
    }).catch((err) => 
        console.error("Fatal error:", err)
    );
    

Uppdatera din anslutningssträng

  1. Öppna filenconfig.js .

  2. I config.jsfyller du i config.endpoint nyckeln med värdet Gremlin-slutpunkt från sidan Översikt för ditt Cosmos DB-konto i Azure Portal.

    config.endpoint = "https://<your_Gremlin_account_name>.gremlin.cosmosdb.azure.com:443/";

    View and copy an access key in the Azure portal, Overview page

  3. I config.jsfyller du i värdet config.primaryKey med värdet Primärnyckel från sidan Nycklar för ditt Cosmos DB-konto i Azure Portal.

    config.primaryKey = "PRIMARYKEY";

    Azure portal keys blade

  4. Ange databasens namn och grafvärdet (containern) för config.database och config.collection.

Här är ett exempel på hur din färdiga config.js-fil ska se ut:

var config = {}

// Note that this must include the protocol (HTTPS:// for .NET SDK URI or wss:// for Gremlin Endpoint) and the port number
config.endpoint = "https://testgraphacct.gremlin.cosmosdb.azure.com:443/"; 
config.primaryKey = "Pams6e7LEUS7LJ2Qk0fjZf3eGo65JdMWHmyn65i52w8ozPX2oxY3iP0yu05t9v1WymAHNcMwPIqNAEv3XDFsEg==";
config.database = "graphdb"
config.collection = "Persons"

module.exports = config;

Kör konsolappen

  1. Öppna ett terminalfönster och ändra (via cd kommando) till installationskatalogen för filen package.json som ingår i projektet.

  2. Kör npm install att installera nödvändiga npm-moduler, inklusive gremlin.

  3. Kör node app.js i en terminal för att starta nodprogrammet.

Bläddra med datautforskaren

Nu kan du gå tillbaka till datautforskaren i Azure Portal och bläddra bland, ställa frågor mot och arbeta med dina nya grafdata.

Den nya databasen visas i fönstret Graphs (Diagram) i Datautforskaren. Expandera databasen, följt av containern, och välj sedan Diagram.

De data som genereras av exempelappen visas i nästa ruta på fliken Diagram när du klickar på Tillämpa filter.

Prova att slutföra g.V() med .has('firstName', 'Thomas') för att testa filtret. Observera att värdet är skiftlägeskänsligt.

Granska serviceavtal i Azure-portalen

Azure Portal övervakar dataflöde, lagring, tillgänglighet, svarstid och konsekvens för Ditt Cosmos DB-konto. Diagram för mått som är associerade med ett serviceavtal för Azure Cosmos DB (SLA) visar SLA-värdet jämfört med faktiska prestanda. Den här måttsviten gör övervakningen av serviceavtalen transparent.

Så här granskar du mått och serviceavtal:

  1. Välj Mått i cosmos DB-kontots navigeringsmeny.

  2. Välj en flik, till exempel Svarstid, och välj en tidsram till höger. Jämför linjerna Actual och SLA i diagrammen.

    Azure Cosmos DB metrics suite

  3. Granska måtten på de andra flikarna.

Rensa dina resurser

När du är klar med din app och ditt Azure Cosmos DB-konto kan du ta bort de Azure-resurser som du skapade så att du inte debiteras mer. Ta bort resurser:

  1. I Azure Portal sökfältet söker du efter och väljer Resursgrupper.

  2. I listan väljer du den resursgrupp som du skapade för den här snabbstarten.

    Select the resource group to delete

  3. resursgruppens översiktssida väljer du Ta bort resursgrupp.

    Delete the resource group

  4. I nästa fönster anger du namnet på resursgruppen som ska tas bort och väljer sedan Ta bort.

Nästa steg

I den här artikeln har du lärt dig hur du skapar ett Azure Cosmos DB-konto, skapar en graf med hjälp av Data Explorer och kör en Node.js-app för att lägga till data i diagrammet. Nu kan du skapa mer komplexa frågor och implementera kraftfull logik för grafbläddring med Gremlin.