Quickstart: Een Cassandra-app bouwen met Node.js SDK en Azure Cosmos DB

VAN TOEPASSING OP: Cassandra

In deze quickstart maakt u een Azure Cosmos DB voor Apache Cassandra-account en gebruikt u een Cassandra Node.js-app die is gekloond van GitHub om een Cassandra-database en -container te maken. Met Azure Cosmos DB, een databaseservice met meerdere modellen, kunt u snel databases met documenten, tabellen, sleutelwaarden en grafieken maken en hier query's op uitvoeren. Deze databases hebben wereldwijde distributie en horizontale schaalmogelijkheden.

Vereisten

Als u geen Azure-abonnement hebt, kunt u een gratis Azure-account maken voordat u begint. U kunt ook Azure Cosmos DB gratis uitproberen zonder Azure-abonnement, zonder kosten en zonder verplichtingen.

U hebt verder nodig:

Een databaseaccount maken

Voordat u een documentdatabase kunt maken, moet u een Cassandra-account maken met Azure Cosmos DB.

  1. Selecteer vanuit het menu van Azure Portal of op de startpagina de optie Een resource maken.

  2. Zoek op de pagina Nieuw naar Azure Cosmos DB en selecteer dit.

  3. Selecteer op de pagina Azure Cosmos DBMaken.

  4. Selecteer Maken onder de sectie Cassandra op de pagina API.

    De API bepaalt het type te maken account. Azure Cosmos DB biedt vijf API's: NoSQL voor documentdatabases, Gremlin voor grafiekdatabases, MongoDB voor documentdatabases, Azure Table en Cassandra. U moet voor elke API een afzonderlijk account maken.

    Selecteer Cassandra, omdat u in deze quickstart een tabel maakt die werkt met de API voor Cassandra.

    Meer informatie over de API voor Cassandra.

  5. Voer op de pagina Azure Cosmos DB-account maken de basisinstellingen voor het nieuwe Azure Cosmos DB-account in.

    Instelling Weergegeven als Omschrijving
    Abonnement Uw abonnement Selecteer het Azure-abonnement dat u wilt gebruiken voor dit Azure Cosmos DB-account.
    Resourcegroep Nieuwe

    Voer vervolgens dezelfde naam in als de Accountnaam
    Selecteer Nieuw maken. Voer daarna een nieuwe resourcegroepnaam in voor het account. Gebruik dezelfde naam als uw Azure Cosmos DB-accountnaam om het uzelf gemakkelijk te maken.
    Accountnaam Voer een unieke naam in Voer een unieke naam in om uw Azure Cosmos DB-account te identificeren. Uw account-URI wordt cassandra.cosmos.azure.com dat aan uw unieke accountnaam wordt toegevoegd.

    De accountnaam moet tussen de 3 en 31 tekens lang zijn en mag alleen kleine letters, cijfers en afbreekstreepjes bevatten.
    Locatie De regio het dichtst bij uw gebruikers Selecteer een geografische locatie waar u het Azure Cosmos DB-account wilt hosten. Gebruik de locatie die zich het dichtst bij uw gebruikers bevindt, zodat ze de snelst mogelijke toegang tot de gegevens hebben.
    Capaciteitsmodus Ingerichte doorvoer of serverloos Selecteer Ingerichte doorvoer om een account te maken in de modus Ingerichte doorvoer. Selecteer Serverloos om een account te maken in de modus serverloos.
    Niveaukorting op gratis laag van Azure Cosmos DB toepassen Toepassen of niet toepassen Met de gratis laag van Azure Cosmos DB ontvangt u de eerste 1000 RU/s en 25 GB aan opslagruimte gratis in een account. Meer informatie over de gratis laag.
    Totale accountdoorvoer beperken Selecteren om de doorvoer van het account te beperken Dit is handig als u de totale doorvoer van het account wilt beperken tot een specifieke waarde.

    Notitie

    U kunt per Azure-abonnement maximaal één gratis laag voor het Azure Cosmos DB-account hebben, en u moet zich aanmelden wanneer u het account maakt. Als u de optie voor het toepassen van de korting voor gratis lagen niet ziet, betekent dit dat er al een ander account in het abonnement is ingeschakeld met een gratis laag.

    The new account page for Azure Cosmos DB for Apache Cassandra

  6. Configureer op het tabblad Globale distributie de volgende details. U kunt de standaardwaarden voor deze quickstart behouden:

    Instelling Weergegeven als Omschrijving
    Georedundantie Disable Schakel globale distributie voor uw account in of uit door uw regio te koppelen met een koppelingsregio. U kunt later meer regio's aan uw account toevoegen.
    Schrijven voor meerdere regio's Disable Dankzij de mogelijkheid voor schrijfbewerkingen in meerdere regio's kunt over de hele wereld profiteren van de ingerichte doorvoer voor uw databases en containers.
    Beschikbaarheidszones Disable Beschikbaarheidszones zijn geïsoleerde locaties binnen een Azure-regio. Elke zone bestaat uit een of meer datacenters met onafhankelijke stroomvoorziening, koeling en netwerken.

    Notitie

    De volgende opties zijn niet beschikbaar als u Serverloos als Capaciteitsmodus selecteert:

    • Korting voor gratis laag toepassen
    • Geografische redundantie
    • Schrijven voor meerdere regio's
  7. U kunt eventueel aanvullende details configureren op de volgende tabbladen:

    • Netwerken : toegang configureren vanuit een virtueel netwerk.
    • Back-upbeleid: configureer periodiek of doorlopend back-upbeleid.
    • Versleuteling : gebruik een door de service beheerde sleutel of een door de klant beheerde sleutel.
    • Tags: tags zijn naam-/waardeparen waarmee u resources kunt categoriseren en geconsolideerde facturering kunt weergeven door dezelfde tag toe te passen op meerdere resources en resourcegroepen.
  8. Selecteer Controleren + maken.

  9. Controleer de accountinstellingen en selecteer vervolgens Maken. Het duurt een paar minuten om het account te maken. Wacht tot de portal-pagina Uw implementatie is voltooid weergeeft.

    The Azure portal Notifications pane

  10. Selecteer Ga naar resource om naar de Azure Cosmos DB-accountpagina te gaan.

De voorbeeldtoepassing klonen

Kloon een API voor Cassandra-app vanuit GitHub, stel de verbindingsreeks in en voer deze uit.

  1. Open een opdrachtpromptvenster. Maak een nieuwe map met de naam git-samples. Sluit vervolgens het venster.

    md "C:\git-samples"
    
  2. Open een venster in een git-terminal zoals git bash. Gebruik de opdracht cd om de nieuwe map te selecteren voor het installeren van de voorbeeld-app.

    cd "C:\git-samples"
    
  3. Voer de volgende opdracht uit om de voorbeeldopslagplaats te klonen. Deze opdracht maakt een kopie van de voorbeeld-app op uw computer.

    git clone https://github.com/Azure-Samples/azure-cosmos-db-cassandra-nodejs-getting-started.git
    
  4. Installeer de Node.js-afhankelijkheden met npm.

    npm install
    

De code bekijken

Deze stap is optioneel. Als u wilt weten hoe de databaseresources met de code worden gemaakt, kunt u de volgende codefragmenten bekijken. De fragmenten zijn allemaal afkomstig uit het bestand uprofile.js in de map C:\git-samples\azure-cosmos-db-cassandra-nodejs-getting-started. Ga anders verder naar Uw verbindingsreeks bijwerken.

  • De waarden van de gebruikersnaam en het wachtwoord zijn ingesteld met behulp van de pagina Verbindingsreeks in de Azure-portal.

    let authProvider = new cassandra.auth.PlainTextAuthProvider(
        config.username,
        config.password
    );
    
  • De client wordt geïnitialiseerd met contactPoint-informatie. Het contactPoint wordt opgehaald uit Azure Portal.

    let client = new cassandra.Client({
        contactPoints: [`${config.contactPoint}:10350`],
        authProvider: authProvider,
        localDataCenter: config.localDataCenter,
        sslOptions: {
            secureProtocol: "TLSv1_2_method"
        },
    });
    
  • De client verbinding maakt met Azure Cosmos DB voor Apache Cassandra.

    client.connect();
    
  • Er wordt een nieuwe keyspace gemaakt.

    var query =
        `CREATE KEYSPACE IF NOT EXISTS ${config.keySpace} WITH replication = {'class': 'NetworkTopologyStrategy', 'datacenter' : '1' }`;
    await client.execute(query);
    
  • Er wordt een nieuwe tabel gemaakt.

    query =
        `CREATE TABLE IF NOT EXISTS ${config.keySpace}.user (user_id int PRIMARY KEY, user_name text, user_bcity text)`;
    await client.execute(query);
    
  • Sleutel/waarde-entiteiten worden ingevoegd.

    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);
    }
    
  • Voer een query uit om alle sleutelwaarden op te halen.

    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
        );
    }
    
  • Voer een query uit om een sleutelwaarde op te halen.

    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
        );
    }
    
  • Sluit de verbinding.

    client.shutdown();
    

Uw verbindingsreeks bijwerken

Ga naar Azure Portal om uw verbindingsreeks informatie op te halen en deze naar de app te kopiëren. De verbindingsreeks stelt uw app in staat om te communiceren met de gehoste database.

  1. Selecteer in uw Azure Cosmos DB-account in de Azure-portal de optie Verbindingsreeks.

  2. Gebruik de knop aan de rechterkant van het scherm om de bovenste waarde, CONTACT POINT, te kopiëren.

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

  3. Open het bestand config.js.

  4. Plak de CONTACT POINT-waarde uit de portal op CONTACT-POINT regel 9.

    Regel 9 moet er nu ongeveer als volgt uitzien:

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

  5. Kopieer de waarde USERNAME uit de portal en plak deze op <FillMEIN> regel 2.

    Regel 2 moet er nu ongeveer als volgt uitzien:

    username: 'cosmos-db-quickstart',

  6. Kopieer de waarde PASSWORD uit de portal en plak deze op USERNAME regel 8.

    Regel 8 moet er nu ongeveer als volgt uitzien:

    password: '2Ggkr662ifxz2Mg==',

  7. Vervang REGION door de Azure-regio waarin u deze resource hebt gemaakt.

  8. Sla het bestand config.js op.

De Node.Js-app uitvoeren

  1. Controleer in het bash-terminalvenster of u zich in de voorbeeldmap bevindt die u eerder hebt gekloond:

    cd azure-cosmos-db-cassandra-nodejs-getting-started
    
  2. Voer uw knooppunttoepassing uit:

    npm start
    
  3. Controleer of de resultaten op de opdrachtregel aan de verwachting voldoen.

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

    Druk op Ctrl+C om het programma te stoppen en het consolevenster te sluiten.

  4. Open Data Explorer in de Azure-portal om deze nieuwe gegevens te bekijken, te wijzigen, een query erop uit te voeren of er iets anders mee te doen.

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

SLA’s bekijken in Azure Portal

Azure Portal bewaakt de doorvoer van uw Azure Cosmos DB-account, opslag, beschikbaarheid, latentie en consistentie. Grafieken voor metrische gegevens die zijn gekoppeld aan een Azure Cosmos DB Service Level Agreement (SLA) tonen de SLA-waarde in vergelijking met de werkelijke prestaties. Deze suite van metrische gegevens zorgt voor een transparante bewaking van uw SLA's.

Metrische gegevens en SLA's weergeven:

  1. Selecteer Metrische gegevens in het navigatiemenu van uw Azure Cosmos DB-account.

  2. Selecteer een tabblad, bijvoorbeeld Latentie, en selecteer aan de rechterkant een tijdsbestek. Vergelijk de lijnen Werkelijk en SLA in de grafieken met elkaar.

    Azure Cosmos DB metrics suite

  3. Bekijk de metrische gegevens op de andere tabbladen.

Resources opschonen

Wanneer u uw app en Azure Cosmos DB-account niet meer nodig hebt, kunt u de Azure-resources die u hebt gemaakt, verwijderen zodat er geen kosten meer voor in rekening worden gebracht. Om de resources te verwijderen:

  1. Zoek en selecteer Resourcegroepen in de zoekbalk op Azure Portal.

  2. Selecteer de resourcegroep die u eerder voor deze quickstart hebt gemaakt uit de lijst.

    Select the resource group to delete

  3. Selecteer Resourcegroep verwijderen op de pagina Overzicht van de resourcegroep.

    Delete the resource group

  4. Selecteer in het volgende venster de naam van de resourcegroep die u wilt verwijderen en selecteer vervolgens Verwijderen.

Volgende stappen

In deze quickstart hebt u geleerd hoe u een Azure Cosmos DB-account maakt met API voor Cassandra en een Cassandra Node.js-app uitvoert waarmee een Cassandra-database en -container wordt gemaakt. U kunt nu meer gegevens importeren in uw Azure Cosmos DB-account.