Snabbstart: Använd Node.js för att ansluta och fråga efter data Azure Cosmos DB SQL API-konto

GÄLLER FÖR: SQL API

I den här snabbstarten skapar och hanterar du ett Azure Cosmos DB SQL API-konto från Azure Portal och 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 databaser för dokument, tabeller, nyckelvärden och grafer med global distribution och horisontell skalning.

Genomgångsvideo

Titta på den här videon för en fullständig genomgång av innehållet i den här artikeln.

Förutsättningar

Skapa ett Azure Cosmos-konto

I det här snabbstartssyftet kan du använda alternativet prova Azure Cosmos DB kostnadsfritt för att skapa ett Azure Cosmos-konto.

  1. Gå till sidan Azure Cosmos DB prova kostnadsfritt.

  2. Välj SQL API-konto och välj Skapa. Logga in med din Microsoft-konto.

  3. När inloggningen är klar bör ditt Azure Cosmos-konto vara klart. Välj Öppna i Azure Portal för att öppna det nyligen skapade kontot.

Alternativet "prova Azure Cosmos DB kostnadsfritt" kräver inte någon Azure-prenumeration och du får ett Azure Cosmos-konto under en begränsad period på 30 dagar. Om du vill använda Azure Cosmos-kontot under en längre period bör du i stället skapa kontot i din Azure-prenumeration.

Lägga till en container

Nu kan du använda Datautforskaren i Azure Portal för att skapa en databas och container.

  1. Välj Datautforskaren > Ny container.

    Området Lägg till container visas längst till höger. Du kan behöva rulla åt höger för att se det.

    Datautforskaren på Azure-portalen, fönstret Lägg till container

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

    Inställning Föreslaget värde Beskrivning
    Databas-ID ToDoList Ange Uppgifter som namn på den nya databasen. Databasnamn måste innehålla 1–255 tecken och får inte innehålla /, \\, #, ?, eller avslutande blanksteg. Markera alternativet Dela dataflöde mellan containrar. Det gör att du kan dela dataflödet som etablerats på databasen över alla containrar i databasen. Det här alternativet hjälper också till med kostnadsbesparingar.
    Databasdataflöde Du kan etablera autoskalning eller manuellt dataflöde. Med manuellt dataflöde kan du skala RU/s själv, medan dataflödet för automatisk skalning gör att systemet kan skala RU/s baserat på användning. Välj Manuell för det här exemplet.

    Lämna dataflödet på 400 enheter för begäran per sekund (RU/s). Om du vill minska svarstiden kan du skala upp dataflödet senare genom att uppskatta nödvändiga RU/s med kapacitetskalkylatorn.

    Obs! Den här inställningen är inte tillgänglig när du skapar en ny container i ett serverlöst konto.
    Container-ID Poster Ange Objekt som namn på den nya containern. För container-ID:n gäller samma teckenkrav som för databasnamn.
    Partitionsnyckel /category Exemplet som beskrivs i den här artikeln använder /category som partitionsnyckel.

    Lägg inte till unika nycklar eller aktivera analysarkiv för det här exemplet. Med unika nycklar kan du lägga till ett lager av dataintegritet i databasen genom att se till att ett eller flera värden per partitionsnyckel är unika. Mer information finns i Unika nycklar i Azure Cosmos DB. Analysarkiv används för att möjliggöra storskalig analys mot driftdata utan att påverka dina transaktionsarbetsbelastningar.

    Välj OK. Datautforskaren visar den nya databasen och containern.

Lägga till exempeldata

Nu kan du lägga till data i den nya containern med Datautforskaren.

  1. Från Datautforskaren expanderar du databasen Uppgifter och expanderar containern Objekt. Välj Objekt och välj sedan Nytt objekt.

    Skapa nya dokument i datautforskaren i Azure Portal

  2. Lägg nu till ett dokument i containern med följande struktur.

    {
        "id": "1",
        "category": "personal",
        "name": "groceries",
        "description": "Pick up apples and strawberries.",
        "isComplete": false
    }
    
  3. När du har lagt till json på fliken Dokument väljer du Spara.

    Kopiera json-data och välj Spara i Datautforskaren i Azure Portal

  4. Skapa och spara ännu ett dokument där du lägger till ett unikt värde för egenskapen id och ändrar de andra egenskaperna som passar. Dina nya dokument kan ha vilken struktur du vill eftersom Azure Cosmos DB inte kräver något schema för dina data.

Fråga dina data

Du kan använda frågor i Datautforskaren för att hämta och filtrera dina data.

  1. Granska standardfrågan längst upp på Datautforskaren fliken SELECT * FROM c Objekt. Den här frågan hämtar och visar alla dokument från containern sorterade efter ID.

    Standardfrågan i Datautforskaren är SELECT * FROM c

  2. Om du vill ändra frågan väljer du Redigera filter, ersätter standardfrågan med ORDER BY c._ts DESC och väljer sedan Använd filter.

    Ändra standardfrågan genom att lägga till ORDER BY c._ts DESC och klicka på Tillämpa filter

    Den ändrade frågan visar dokumenten i fallande ordning baserat på deras tidsstämpel, så nu visas ditt andra dokument först.

    Frågan har ändrats till ORDER BY c._ts DESC och klicka på Använd filter

Om du är bekant med SQL-syntax kan du ange alla SQL-frågor som stöds i fråge predikatrutan. Du kan också använda Datautforskaren för att skapa lagrade procedurer,udf:er och utlösare för affärslogik på serversidan.

Datautforskaren ger enkel Azure Portal åtkomst till alla inbyggda funktioner för programmatisk dataåtkomst som är tillgängliga i API:erna. Du kan också använda portalen för att skala dataflöde, hämta nycklar och anslutningssträngar samt granska mått och serviceavtal för ditt Azure Cosmos DB konto.

Klona exempelprogrammet

Nu ska vi klona en Node.js från GitHub, ange anslutningssträngen och köra den.

  1. 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-sql-api-nodejs-getting-started.git
    

Granska koden

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

Om du är bekant med den tidigare versionen av SQL JavaScript SDK kan du vara van att se termerna samling och dokument. Eftersom Azure Cosmos DB stöder flera API-modelleranvänder version 2.0+ av JavaScript SDK de allmänna termerna container , som kan vara en samling, graf eller tabell och objekt för att beskriva innehållet i containern.

Den Cosmos DB JavaScript SDK kallas " @azure/cosmos " och kan installeras från npm...

npm install @azure/cosmos

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

  • CosmosClientimporteras från @azure/cosmos npm-paketet.

    const CosmosClient = require("@azure/cosmos").CosmosClient;
    
  • Ett nytt CosmosClient objekt initieras.

    const client = new CosmosClient({ endpoint, key });
    
  • Välj databasen "Uppgifter".

    const database = client.database(databaseId);
    
  • Välj containern/samlingen "Objekt".

    const container = database.container(containerId);
    
  • Markera alla objekt i containern "Items".

    // query to return all items
    const querySpec = {
      query: "SELECT * from c"
    };
    
    const { resources: items } = await container.items
      .query(querySpec)
      .fetchAll();
    
  • Skapa ett nytt objekt

    const { resource: createdItem } = await container.items.create(newItem);
    
  • Uppdatera ett objekt

    const { id, category } = createdItem;
    
    createdItem.isComplete = true;
    const { resource: updatedItem } = await container
      .item(id, category)
      .replace(createdItem);
    
  • Ta bort ett objekt

    const { resource: result } = await container.item(id, category).delete();
    

Anteckning

I båda metoderna "update" och "delete" måste objektet väljas från databasen genom att anropa container.item() . De två parametrar som skickas är ID:t för objektet och objektets partitionsnyckel. I det här fallet är paritionsnyckeln värdet för fältet "kategori".

Uppdatera din anslutningssträng

Gå nu tillbaka till Azure Portal hämta information om anslutningssträngen för ditt Azure Cosmos-konto. Kopiera anslutningssträngen till appen så att den kan ansluta till databasen.

  1. I ditt Azure Cosmos DB-konto i Azure Portalväljer du Nycklar i det vänstra navigeringsfönstret och sedan Läs- och skrivnycklar. Använd kopieringsknapparna till höger på skärmen för att kopiera URI:en och primärnyckeln tillapp.js i nästa steg.

    Visa och kopiera en åtkomstnyckel i Azure Portal, bladet Nycklar

  2. I Öppna config.js fil.

  3. Kopiera ditt URI-värde från portalen (med kopieringsknappen) och gör det till värdet för slutpunktsnyckeln iconfig.js.

    endpoint: "<Your Azure Cosmos account URI>"

  4. Kopiera sedan värdet för PRIMÄRNYCKEL från portalen och gör det till värdet för config.key i config.js. Du har nu uppdaterat appen med all information som behövs för kommunikation med Azure Cosmos DB.

    key: "<Your Azure Cosmos account key>"

Kör appen

  1. Kör npm install i en terminal för att installera " " @azure/cosmos npm-paketet

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

  3. De två objekt som du skapade tidigare i den här snabbstarten visas. Ett nytt objekt skapas. Flaggan "isComplete" för objektet uppdateras till "true" och slutligen tas objektet bort.

Du kan fortsätta att experimentera med det här exempelprogrammet eller gå tillbaka till Datautforskaren, ändra och arbeta med dina data.

Granska serviceavtal i Azure-portalen

Den Azure Portal övervakar Cosmos DB dataflöde, lagring, tillgänglighet, svarstid och konsekvens för ditt konto. Diagram för mått som är associerade med Azure Cosmos DB Serviceavtal (SLA) visar SLA-värdet jämfört med faktiska prestanda. Den här måttsviten gör övervakningen av dina serviceavtal 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-måttsvit

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

Nästa steg

I den här snabbstarten har du lärt dig hur du skapar ett Azure Cosmos DB-konto, skapar en container med Datautforskaren och kör en Node.js-app. Du kan nu importera ytterligare data till ditt Azure Cosmos DB-konto.

Försöker du göra kapacitetsplanering för en migrering till Azure Cosmos DB? Du kan använda information om ditt befintliga databaskluster för kapacitetsplanering.

  • Om allt du vet är antalet virtuella kärnor och servrar i ditt befintliga databaskluster kan du läsa om att uppskatta enheter för programbegäran med hjälp av virtuella kärnor eller virtuella processorer
  • Om du känner till typiska begärandefrekvenser för din aktuella databasarbetsbelastning kan du läsa om att uppskatta enheter för programbegäran Azure Cosmos DB kapacitetsplaneraren