Zelfstudie: Een API maken voor Cassandra-account in Azure Cosmos DB met behulp van een Java-toepassing voor het opslaan van sleutel-/waardegegevens

VAN TOEPASSING OP: Cassandra

Als ontwikkelaar hebt u mogelijk toepassingen die gebruikmaken van sleutel-/waardeparen. U kunt een API voor Cassandra-account in Azure Cosmos DB gebruiken om de sleutel-/waardegegevens op te slaan. In deze zelfstudie wordt beschreven hoe u een Java-toepassing gebruikt om een API voor cassandra-account te maken in Azure Cosmos DB, een database (ook wel een keyspace genoemd) toe te voegen en een tabel toe te voegen. De Java-toepassing gebruikt het Java-stuurprogramma om een gebruikersdatabase te maken die gegevens bevat, zoals gebruikers-id, gebruikersnaam en plaats van de gebruiker.

Deze zelfstudie bestaat uit de volgende taken:

  • Een Cassandra-databaseaccount maken
  • Verbindingsreeks voor account ophalen
  • Maven-project en afhankelijkheden maken
  • Een database en een tabel toevoegen
  • De app uitvoeren

Vereisten

Een databaseaccount maken

  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 in 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 Waarde Beschrijving
    Abonnement Uw abonnement Selecteer het Azure-abonnement dat u voor dit Azure Cosmos DB-account wilt gebruiken.
    Resourcegroep Nieuwe maken

    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 Selecteer 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.

    De nieuwe accountpagina voor Azure Cosmos DB voor Apache Cassandra

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

    Instelling Waarde Beschrijving
    Georedundantie Uitschakelen 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 Uitschakelen 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 Uitschakelen Beschikbaarheidszones zijn geïsoleerde locaties binnen een Azure-regio. Elke zone bestaat uit een of meer datacenters die zijn voorzien van een onafhankelijke stroomvoorziening, koeling en netwerken.

    Notitie

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

    • Korting voor gratis lagen toepassen
    • Geografische redundantie
    • Schrijven voor meerdere regio's
  7. Optioneel kunt u aanvullende details configureren op de volgende tabbladen:

  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.

    Het deelvenster Meldingen in Azure Portal

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

De verbindingsgegevens van uw account ophalen

Haal de gegevens van de verbindingsreeks op uit de Azure-portal en kopieer deze naar het Java-configuratiebestand. De verbindingsreeks stelt uw app in staat om te communiceren met de gehoste database.

  1. Ga in de Azure Portal naar uw Azure Cosmos DB-account.

  2. Open het deelvenster Verbindingsreeks.

  3. Kopieer de waarden voor CONTACTPUNT, POORT, GEBRUIKERSNAAM en PRIMAIR WACHTWOORD voor gebruik in de volgende stappen.

Project en afhankelijkheden maken

Het Java-voorbeeldproject dat u in dit artikel gebruikt, wordt gehost in GitHub. U kunt de stappen in dit document uitvoeren of het voorbeeld downloaden in de opslagplaats azure-cosmos-db-cassandra-java-getting-started.

Als u de bestanden hebt gedownload, werkt u de gegevens van de verbindingsreeks in het bestand java-examples\src\main\resources\config.properties bij en voert u het bestand uit.

cassandra_host=<FILLME_with_CONTACT POINT> 
cassandra_port = 10350 
cassandra_username=<FILLME_with_USERNAME> 
cassandra_password=<FILLME_with_PRIMARY PASSWORD> 

Gebruik de volgende stappen om het voorbeeld helemaal opnieuw te maken:

  1. Maak vanuit de terminal of de opdrachtprompt een nieuw Maven-project met de naam Cassandra-demo.

    mvn archetype:generate -DgroupId=com.azure.cosmosdb.cassandra -DartifactId=cassandra-demo -DarchetypeArtifactId=maven-archetype-quickstart -DinteractiveMode=false 
    
  2. Zoek de map cassandra-demo. Open in een teksteditor het bestand pom.xml dat is gegenereerd.

    Voeg de Cassandra-afhankelijkheden en invoegtoepassingen voor de build toe die zijn vereist voor uw project, zoals wordt weergegeven in het bestand pom.xml.

  3. Maak onder de map cassandra-demo\src\main een nieuwe map met de naam resources. Voeg onder de map resources de bestanden config.properties en log4j.properties toe:

    • In het bestand config.properties worden het verbindingseindpunt en de sleutelwaarden van de API voor het Cassandra-account opgeslagen.

    • Het bestand log4j.properties definieert het niveau van logboekregistratie dat is vereist voor interactie met de API voor Cassandra.

  4. Blader naar de map src/main/java/com/azure/cosmosdb/cassandra/. Maak in de map cassandra een andere map met de naam utils. In de nieuwe map worden de hulpprogrammaklassen opgeslagen die nodig zijn om verbinding te maken met de API voor het Cassandra-account.

    Voeg de klasse CassandraUtils toe om het cluster te maken, en om Cassandra-sessies te openen en te sluiten. Het cluster maakt verbinding met de API voor Cassandra-account in Azure Cosmos DB en retourneert een sessie voor toegang. Gebruik de klasse Configurations om gegevens van de verbindingsreeks te lezen uit het bestand config.properties.

  5. Het Java-voorbeeld maakt een database met gebruikersgegevens, zoals gebruikersnaam, gebruikers-id en plaats van gebruiker. U moet get- en set-methoden definiëren voor toegang tot gebruikersgegevens in de main-functie.

    Maak een klasse User.java onder de map src/main/java/com/azure/cosmosdb/cassandra/ met get- en set-methoden.

Een database en een tabel toevoegen

In dit gedeelte wordt beschreven hoe u een database (keyspace) en een tabel toevoegt met behulp van CQL.

  1. Maak onder de map src\main\java\com\azure\cosmosdb\cassandra een nieuwe map met de naam repository.

  2. Maak Java-klasse UserRepository en voeg er de volgende code aan toe:

    package com.azure.cosmosdb.cassandra.repository; 
    import java.util.List; 
    import com.datastax.driver.core.BoundStatement; 
    import com.datastax.driver.core.PreparedStatement; 
    import com.datastax.driver.core.Row; 
    import com.datastax.driver.core.Session; 
    import org.slf4j.Logger; 
    import org.slf4j.LoggerFactory; 
    
    /** 
     * Create a Cassandra session 
     */ 
    public class UserRepository { 
    
        private static final Logger LOGGER = LoggerFactory.getLogger(UserRepository.class); 
        private Session session; 
        public UserRepository(Session session) { 
            this.session = session; 
        } 
    
        /** 
        * Create keyspace uprofile in cassandra DB 
         */ 
    
        public void createKeyspace() { 
             final String query = "CREATE KEYSPACE IF NOT EXISTS uprofile WITH REPLICATION = { 'class' : 'NetworkTopologyStrategy', 'datacenter1' : 1 }"; 
            session.execute(query); 
            LOGGER.info("Created keyspace 'uprofile'"); 
        } 
    
        /** 
         * Create user table in cassandra DB 
         */ 
    
        public void createTable() { 
            final String query = "CREATE TABLE IF NOT EXISTS uprofile.user (user_id int PRIMARY KEY, user_name text, user_bcity text)"; 
            session.execute(query); 
            LOGGER.info("Created table 'user'"); 
        } 
    } 
    
  3. Zoek de map src\main\java\com\azure\cosmosdb\cassandra en maak in de map een nieuwe submap met de naam examples.

  4. Maak Java-klasse UserProfile. Deze klasse bevat de main-methode die de methoden createKeyspace en createTable aanroept die u eerder hebt gedefinieerd:

    package com.azure.cosmosdb.cassandra.examples; 
    import java.io.IOException; 
    import com.azure.cosmosdb.cassandra.repository.UserRepository; 
    import com.azure.cosmosdb.cassandra.util.CassandraUtils; 
    import com.datastax.driver.core.PreparedStatement; 
    import com.datastax.driver.core.Session; 
    import org.slf4j.Logger; 
    import org.slf4j.LoggerFactory; 
    
    /** 
     * Example class which will demonstrate following operations on Cassandra Database on CosmosDB 
     * - Create Keyspace 
     * - Create Table 
     * - Insert Rows 
     * - Select all data from a table 
     * - Select a row from a table 
     */ 
    
    public class UserProfile { 
    
        private static final Logger LOGGER = LoggerFactory.getLogger(UserProfile.class); 
        public static void main(String[] s) throws Exception { 
            CassandraUtils utils = new CassandraUtils(); 
            Session cassandraSession = utils.getSession(); 
    
            try { 
                UserRepository repository = new UserRepository(cassandraSession); 
                //Create keyspace in cassandra database 
                repository.createKeyspace(); 
                //Create table in cassandra database 
                repository.createTable(); 
    
            } finally { 
                utils.close(); 
                LOGGER.info("Please delete your table after verifying the presence of the data in portal or from CQL"); 
            } 
        } 
    } 
    

De app uitvoeren

  1. Open een opdrachtprompt of terminalvenster. Plak het volgende blok met code.

    Met deze code gaat u naar de map (cd) waarin u het project hebt gemaakt. Vervolgens wordt de opdracht mvn clean install uitgevoerd voor het genereren van het bestand cosmosdb-cassandra-examples.jar in de doelmap. Ten slotte wordt de Java-toepassing uitgevoerd.

    cd cassandra-demo
    
    mvn clean install 
    
    java -cp target/cosmosdb-cassandra-examples.jar com.azure.cosmosdb.cassandra.examples.UserProfile 
    

    In het terminalvenster worden meldingen weergegeven dat de keyspace en de tabel zijn gemaakt.

  2. Open nu in de Azure-portal Data Explorer om te controleren of de keyspace en de tabel zijn gemaakt.

Volgende stappen

In deze zelfstudie hebt u geleerd hoe u een API voor Cassandra-account maakt in Azure Cosmos DB, een database en een tabel met behulp van een Java-toepassing. U kunt nu verdergaan met het volgende artikel: