Självstudie: Skapa ett API för Cassandra-konto i Azure Cosmos DB med hjälp av ett Java-program för att lagra nyckel/värde-data

GÄLLER FÖR: Cassandra

Som utvecklare kan du ha program som använder nyckel/värde-par. Du kan använda ett API för Cassandra-konto i Azure Cosmos DB för att lagra nyckel/värde-data. Den här självstudien beskriver hur du använder ett Java-program för att skapa ett API för Cassandra-konto i Azure Cosmos DB, lägger till en databas (kallas även nyckelutrymme) och lägger till en tabell. Java-programmet använder Java-drivrutinen för att skapa en användardatabas med information som användar-ID, användarnamn och användarens stad.

Den här självstudien omfattar följande uppgifter:

  • Skapa ett Cassandra-databaskonto
  • Hämta kontoanslutningssträngen
  • Skapa ett Maven-projekt och beroenden
  • Lägga till en databas och en tabell
  • Kör appen

Krav

Skapa ett databaskonto

  1. Välj Skapa en resurs på Azure Portal-menyn eller på sidan Start.

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

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

  4. 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 Beskrivning
    Prenumeration Din prenumeration Välj den Azure-prenumeration som ska användas för det här Azure Cosmos DB-kontot.
    Resursgrupp Skapa ny

    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.
    Account Name 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 får endast innehålla gemener, siffror och bindestreck (-) och måste vara mellan 3 och 31 tecken långt.
    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 nivån för Azure Cosmos DB 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.
    Begränsa det totala kontodataflödet Välj för att begränsa dataflödet för kontot Detta är användbart om du vill begränsa det totala dataflödet för kontot till ett visst värde.

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

    Den nya kontosidan för Azure Cosmos DB för Apache Cassandra

  6. Konfigurera följande information på fliken Global distribution . 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 koppla 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 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 Inaktivera 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.

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

    • Nätverk – Konfigurera åtkomst från ett virtuellt nätverk.
    • Säkerhetskopieringspolicy – Konfigurera antingen periodisk eller kontinuerlig säkerhetskopieringspolicy.
    • 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.

    Meddelandefönstret på Azure-portalen

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

Hämta anslutningsinformationen för ditt konto

Hämta information om anslutningssträngen från Azure Portal och kopiera den till Java-konfigurationsfilen. Anslutningssträngen gör det möjligt för appen att kommunicera med den värdbaserade databasen.

  1. Från Azure Portal går du till ditt Azure Cosmos DB-konto.

  2. Öppna fönstret Anslutningssträng .

  3. Kopiera värdena KONTAKTPUNKT, PORT, ANVÄNDARNAMN och PRIMÄRT LÖSENORD för användning i nästa steg.

Skapa projektet och dess beroenden

Det Java-exempelprojekt som du använder i den här artikeln finns i GitHub. Du kan köra stegen i det här dokumentet eller ladda ned exemplet från lagringsplatsen azure-cosmos-db-cassandra-java-getting-started.

När du har laddat ned filerna uppdaterar du informationen för anslutningssträngen i filen java-examples\src\main\resources\config.properties och kör den.

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

Använd följande steg för att skapa exemplet från början:

  1. Från terminalen eller kommandotolken skapar du ett nytt Maven-projekt med namnet Cassandra-demo.

    mvn archetype:generate -DgroupId=com.azure.cosmosdb.cassandra -DartifactId=cassandra-demo -DarchetypeArtifactId=maven-archetype-quickstart -DinteractiveMode=false 
    
  2. Leta upp mappen cassandra-demo. Använd en textredigerare och öppna den pom.xml-fil som genererades.

    Lägg till Cassandra-beroenden och plugin-program som krävs av projektet enligt det som visas i filen pom.xml.

  3. I mappen cassandra-demo\src\main skapar du en ny mapp med namnet resources. I resursmappen lägger du till filerna config.properties och log4j.properties:

    • Filen config.properties lagrar anslutningsslutpunkten och nyckelvärdena för API:et för Cassandra-kontot.

    • Filen log4j.properties definierar den loggningsnivå som krävs för att interagera med API:et för Cassandra.

  4. Bläddra till mappen src/main/java/com/azure/cosmosdb/cassandra/. I Cassandra-mappen skapar du en till mapp med namnet utils. Den nya mappen lagrar de verktygsklasser som krävs för att ansluta till API:et för Cassandra-kontot.

    Lägg till klassen CassandraUtils för att skapa klustret och för att öppna och stänga Cassandra-sessioner. Klustret ansluter till API:et för Cassandra-kontot i Azure Cosmos DB och returnerar en session för åtkomst. Använd klassen Configurations (Konfigurationer) för att läsa information om anslutningssträng från filen config.properties.

  5. Java-exemplet skapar en databas med användarinformation som användarnamn, användar-ID och användarens stad. Du måste definiera get- och set-metoder för att komma åt användarinformation i main-funktionen.

    Skapa en User.java-klass i mappen src/main/java/com/azure/cosmosdb/cassandra/ med get- och set-metoder.

Lägga till en databas och en tabell

Det här avsnittet beskriver hur du lägger till en databas (nyckelutrymme) och en tabell med hjälp av CQL.

  1. I mappen src\main\java\com\azure\cosmosdb\cassandra skapar du en ny mapp med namnet repository.

  2. Skapa Java-klassen UserRepository och lägg till följande kod i den:

    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. Leta upp mappen src\main\java\com\azure\cosmosdb\cassandra och skapa en ny undermapp med namnet examples.

  4. Skapa Java-klassen UserProfile. Den här klassen innehåller huvudmetoden som anropar metoderna createKeyspace och createTable som du definierade tidigare:

    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"); 
            } 
        } 
    } 
    

Kör appen

  1. Öppna en kommandotolk eller ett terminalfönster. Klistra in följande kodblock.

    Den här koden ändrar katalogen (cd) till sökvägen till mappen där du skapade projektet. Sedan kör den kommandot mvn clean install för att generera filen cosmosdb-cassandra-examples.jar i målmappen. Slutligen kör den Java-programmet.

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

    Terminalfönstret visar aviseringar om att keyspace och tabell har skapats.

  2. I Azure-portalen öppnar du nu Datautforskaren för att bekräfta att nyckelutrymmet och tabellen skapades.

Nästa steg

I den här självstudien har du lärt dig hur du skapar ett API för Cassandra-konto i Azure Cosmos DB, en databas och en tabell med hjälp av ett Java-program. Nu kan du fortsätta till nästa artikel: