Snabbstart: Skapa en Cassandra-app med Node.js SDK och Azure Cosmos DB

GÄLLER FÖR: Cassandra

I den här snabbstarten skapar du ett Azure Cosmos DB för Apache Cassandra-konto och använder en Cassandra Node.js-app som klonas från GitHub för att skapa en Cassandra-databas och container. Azure Cosmos DB är en databastjänst med flera modeller som gör att du snabbt kan skapa och fråga efter dokument-, tabell-, nyckelvärde- och grafdatabaser med globala distributions- och vågräta skalningsfunktioner.

Förutsättningar

Om du inte har en Azure-prenumeration skapar du ett kostnadsfritt Azure-konto innan du börjar. Du kan även testa Azure Cosmos DB kostnadsfritt utan en Azure-prenumeration, utan kostnad och åtaganden.

Dessutom behöver du:

Skapa ett databaskonto

Innan du kan börja skapa en dokumentdatabas måste du skapa ett Cassandra-konto med Azure Cosmos DB.

  1. I menyn i Azure-portalen eller på sidan Start väljer du Skapa en resurs.

  2. På sidan Ny söker du efter och väljer Azure Cosmos DB.

  3. På sidan Azure Cosmos DB väljer du Skapa.

  4. På API-sidan väljer du Skapa under avsnittet Cassandra.

    API:et avgör vilken typ av konto som skapas. Azure Cosmos DB innehåller fem API:er: NoSQL 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 Cassandra eftersom du i den här snabbstarten skapar en tabell som fungerar med API:et för Cassandra.

    Läs mer om API:et för Cassandra.

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

    Inställning Värde Description
    Prenumeration Din prenumeration Välj den Azure-prenumeration som du vill använda för det här Azure Cosmos DB-kontot.
    Resursgrupp Skapa nya , och programformulär i

    Ange sedan samma namn som kontonamn
    Välj Skapa ny. Ange sedan ett nytt resursgruppnamn för ditt konto. För enkelhetens skull använder du samma namn som ditt Azure Cosmos DB-kontonamn.
    Kontonamn Ange ett unikt namn Ange ett unikt namn som identifierar ditt Azure Cosmos DB-konto. Konto-URI:n läggs cassandra.cosmos.azure.com till ditt unika kontonamn.

    Kontonamnet kan bara använda gemener, siffror och bindestreck (-) och måste vara mellan 3 och 31 tecken långt.
    Plats 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 Tillämpa eller tillämpa 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är dig mer om kostnadsfri nivå.
    Begränsa det totala kontots dataflöde Välj för att begränsa dataflödet för kontot Det här är användbart om du vill begränsa det totala dataflödet för kontot till ett specifikt värde.

    Kommentar

    Du kan högst ha ett Azure Cosmos DB-konto med kostnadsfri nivå per Azure-prenumeration och du måste välja det när du skapar kontot. Om du inte ser alternativet att tillämpa rabatten för kostnadsfri nivå betyder det att ett annat konto i prenumerationen redan har aktiverats med kostnadsfri nivå.

    The new account page for Azure Cosmos DB for Apache Cassandra

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

    Inställning Värde Description
    Geo-redundans Disable 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 Disable Med skrivfunktioner i flera regioner kan du dra nytta av det etablerade dataflödet för dina databaser och containrar över hela världen.
    Tillgänglighetszoner Disable Tillgänglighetszoner är isolerade platser i en Azure-region. Varje zon utgörs av ett eller flera datacenter som är utrustade med oberoende kraft, kylning och nätverk.

    Kommentar

    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
  7. Du kan också konfigurera ytterligare information på följande flikar:

    • Nätverk – Konfigurera åtkomst från ett virtuellt nätverk.
    • Säkerhetskopieringsprincip – Konfigurera antingen periodisk 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 tillämpa samma tagg på flera resurser och resursgrupper.
  8. Välj Granska + skapa.

  9. Granska kontoinställningarna och välj sedan Skapa. Det tar några minuter att skapa kontot. Vänta tills portalsidan visar meddelandet Distributionen är klar.

    The Azure portal Notifications pane

  10. Välj Gå till resurs för att gå till sidan för Azure Cosmos DB-kontot.

Klona exempelprogrammet

Klona ett API för Cassandra-appen från GitHub, ange anslutningssträng och kör den.

  1. Öppna Kommandotolken. Skapa en ny mapp med namnet git-samples. Stäng sedan fönstret.

    md "C:\git-samples"
    
  2. Öppna ett git-terminalfönster, till exempel git bash. Använd kommandot cd för att ändra till den nya mappen för att 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-cassandra-nodejs-getting-started.git
    
  4. Installera Node.js-beroenden med npm.

    npm install
    

Granska koden

Steget är valfritt. Om du vill lära dig hur databasresurserna skapas i koden kan du granska följande kodavsnitt. Alla kodavsnitt kommer från filen uprofile.js i mappen C:\git-samples\azure-cosmos-db-cassandra-nodejs-getting-started. Annars kan du gå vidare till Uppdatera din anslutningssträng.

  • Användarnamnet och lösenordet angavs med hjälp av anslutningssträngsidan i Azure-portalen.

    let authProvider = new cassandra.auth.PlainTextAuthProvider(
        config.username,
        config.password
    );
    
  • client har initierats med contactPoint-information. contactPoint hämtas från Azure-portalen.

    let client = new cassandra.Client({
        contactPoints: [`${config.contactPoint}:10350`],
        authProvider: authProvider,
        localDataCenter: config.localDataCenter,
        sslOptions: {
            secureProtocol: "TLSv1_2_method"
        },
    });
    
  • Ansluter client till Azure Cosmos DB för Apache Cassandra.

    client.connect();
    
  • Ett nytt keyspace skapas.

    var query =
        `CREATE KEYSPACE IF NOT EXISTS ${config.keySpace} WITH replication = {'class': 'NetworkTopologyStrategy', 'datacenter' : '1' }`;
    await client.execute(query);
    
  • En ny tabell skapas.

    query =
        `CREATE TABLE IF NOT EXISTS ${config.keySpace}.user (user_id int PRIMARY KEY, user_name text, user_bcity text)`;
    await client.execute(query);
    
  • Nyckel/värde-entiteter infogas.

    const arr = [
        `INSERT INTO  ${config.keySpace}.user (user_id, user_name , user_bcity) VALUES (1, 'AdrianaS', 'Seattle')`,
        `INSERT INTO  ${config.keySpace}.user (user_id, user_name , user_bcity) VALUES (2, 'JiriK', 'Toronto')`,
        `INSERT INTO  ${config.keySpace}.user (user_id, user_name , user_bcity) VALUES (3, 'IvanH', 'Mumbai')`,
        `INSERT INTO  ${config.keySpace}.user (user_id, user_name , user_bcity) VALUES (4, 'IvanH', 'Seattle')`,
        `INSERT INTO  ${config.keySpace}.user (user_id, user_name , user_bcity) VALUES (5, 'IvanaV', 'Belgaum')`,
        `INSERT INTO  ${config.keySpace}.user (user_id, user_name , user_bcity) VALUES (6, 'LiliyaB', 'Seattle')`,
        `INSERT INTO  ${config.keySpace}.user (user_id, user_name , user_bcity) VALUES (7, 'JindrichH', 'Buenos Aires')`,
        `INSERT INTO  ${config.keySpace}.user (user_id, user_name , user_bcity) VALUES (8, 'AdrianaS', 'Seattle')`,
        `INSERT INTO  ${config.keySpace}.user (user_id, user_name , user_bcity) VALUES (9, 'JozefM', 'Seattle')`,
    ];
    for (const element of arr) {
        await client.execute(element);
    }
    
  • Fråga för att hämta alla nyckelvärden.

    query = `SELECT * FROM ${config.keySpace}.user`;
    const resultSelect = await client.execute(query);
    
    for (const row of resultSelect.rows) {
        console.log(
            "Obtained row: %d | %s | %s ",
            row.user_id,
            row.user_name,
            row.user_bcity
        );
    }
    
  • Fråga för att hämta ett nyckelvärde.

    query = `SELECT * FROM ${config.keySpace}.user where user_id=1`;
    const resultSelectWhere = await client.execute(query);
    
    for (const row of resultSelectWhere.rows) {
        console.log(
            "Obtained row: %d | %s | %s ",
            row.user_id,
            row.user_name,
            row.user_bcity
        );
    }
    
  • Stäng anslutningen.

    client.shutdown();
    

Uppdatera din anslutningssträng

Gå till Azure-portalen för att hämta din anslutningssträng information och kopiera den till appen. Anslutningssträngen gör det möjligt för appen att kommunicera med den värdbaserade databasen.

  1. I ditt Azure Cosmos DB-konto i Azure-portalen väljer du Anslut ionssträng.

  2. Använd knappen till höger på skärmen för att kopiera det översta värdet, KONTAKTPUNKT.

    Screenshot showing how to view and copy the CONTACT POINT, USERNAME,and PASSWORD from the Connection String page.

  3. Öppna filen config.js.

  4. Klistra in kontaktpunktsvärdet från portalen över CONTACT-POINT på rad 9.

    Rad 9 bör nu se ut ungefär så här:

    contactPoint: "cosmos-db-quickstarts.cassandra.cosmosdb.azure.com",

  5. Kopiera värdet USERNAME från portalen och klistra in det <FillMEIN> på rad 2.

    Rad 2 bör nu se ut ungefär så här:

    username: 'cosmos-db-quickstart',

  6. Kopiera värdet LÖSENORD från portalen och klistra in det USERNAME på rad 8.

    Rad 8 bör nu se ut ungefär så här:

    password: '2Ggkr662ifxz2Mg==',

  7. Ersätt REGION med den Azure-region som du skapade resursen i.

  8. Spara filen config.js.

Köra Node.js-appen

  1. I bash-terminalfönstret kontrollerar du att du är i exempelkatalogen som du klonade tidigare:

    cd azure-cosmos-db-cassandra-nodejs-getting-started
    
  2. Kör nodprogrammet:

    npm start
    
  3. Kontrollera att resultatet blir det man kan förvänta sig från kommandoraden.

    Screenshot shows a Command Prompt window where you can view and verify the output.

    Tryck på Ctrl+C för att stoppa programmet och stäng konsolfönstret.

  4. I Datautforskaren på Azure-portalen kan du fråga, ändra och arbeta med dessa nya data.

    Screenshot shows the Data Explorer page, where you can view the data.

Granska serviceavtal i Azure Portal

Azure-portalen övervakar dataflödet, lagringen, tillgängligheten, svarstiden och konsekvensen för ditt Azure 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 ditt Azure Cosmos DB-kontos 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 resurser

När du är klar med appen och Azure Cosmos DB-kontot kan du ta bort de Azure-resurser som du skapade så att du inte debiteras fler avgifter. Ta bort resurser:

  1. I sökfältet i Azure-portalen 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. På sidan Översikt för resursgrupp 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 snabbstarten har du lärt dig hur du skapar ett Azure Cosmos DB-konto med API för Cassandra och kör en Cassandra Node.js-app som skapar en Cassandra-databas och container. Nu kan du importera mer data till ditt Azure Cosmos DB-konto.