Freigeben über


Tutorial: Erstellen eines API für Cassandra-Kontos in Azure Cosmos DB durch die Verwendung einer Java-Anwendung zum Speichern von Schlüssel-Wert-Daten

GILT FÜR: Cassandra

Als Entwickler besitzen Sie möglicherweise Anwendungen, die Schlüssel/Wert-Paare verwenden. Sie können ein API für Cassandra-Konto in Azure Cosmos DB zum Speichern der Schlüssel-Wert-Daten verwenden. In diesem Tutorial wird beschrieben, wie mithilfe einer Java-Anwendung ein API für Cassandra-Konto in Azure Cosmos DB erstellt und eine Datenbank (auch als „Keyspace“ bezeichnet) sowie eine Tabelle hinzugefügt wird. Die Java-Anwendung verwendet den Java-Treiber, um eine Benutzerdatenbank zu erstellen, die Details wie Benutzer-ID, Benutzernamen und Stadt des Benutzers enthält.

Dieses Tutorial enthält die folgenden Aufgaben:

  • Erstellen eines Cassandra-Datenbankkontos
  • Abrufen der Kontoverbindungszeichenfolge
  • Erstellen eines Maven-Projekts und der Abhängigkeiten
  • Hinzufügen einer Datenbank und Tabelle
  • Ausführen der App

Voraussetzungen

Erstellen eines Datenbankkontos

  1. Wählen Sie im Menü des Azure-Portals oder auf der Startseite die Option Ressource erstellen aus.

  2. Suchen Sie auf der Seite Neu nach Azure Cosmos DB, und wählen Sie die Option aus.

  3. Wählen Sie auf der Seite Azure Cosmos DB die Option Erstellen aus.

  4. Wählen Sie auf der Seite APIErstellen im Bereich Cassandra aus.

    Die API bestimmt den Typ des zu erstellenden Kontos. Azure Cosmos DB stellt fünf APIs bereit: für NoSQL (für Dokumentdatenbanken), Gremlin (für Graphdatenbanken), MongoDB (für Dokumentdatenbanken), Azure Table und Cassandra. Sie müssen ein separates Konto für jede API erstellen.

    Wählen Sie Cassandra aus, da Sie in diesem Schnellstart eine Tabelle erstellen, die mit der API für Cassandra verwendet werden kann.

    Weitere Informationen zur API für Cassandra.

  5. Geben Sie auf der Seite Azure Cosmos DB-Konto erstellen die grundlegenden Einstellungen für das neue Azure Cosmos DB-Konto ein.

    Einstellung Wert BESCHREIBUNG
    Subscription Ihr Abonnement Wählen Sie das Azure-Abonnement aus, das Sie für dieses Azure Cosmos DB-Konto verwenden möchten.
    Ressourcengruppe Neu erstellen

    Geben Sie dann den gleichen Namen als Kontonamen ein.
    Wählen Sie Neu erstellen. Geben Sie dann einen neuen Ressourcengruppenname für Ihr Konto ein. Verwenden Sie der Einfachheit halber den gleichen Namen als Azure Cosmos DB-Kontonamen.
    Kontoname Geben Sie einen eindeutigen Namen ein. Geben Sie einen eindeutigen Namen ein, der Ihr Azure Cosmos DB-Konto identifiziert. Der Konto-URI lautet cassandra.cosmos.azure.com und wird an Ihren eindeutigen Kontonamen angehängt.

    Der Kontoname darf nur Kleinbuchstaben, Ziffern und Bindestriche (-) enthalten und muss zwischen 3 und 31 Zeichen lang sein.
    Standort Die Region, die Ihren Benutzern am nächsten liegt Wählen Sie einen geografischen Standort aus, an dem Ihr Azure Cosmos DB-Konto gehostet werden soll. Verwenden Sie den Standort, der Ihren Benutzern am nächsten ist, damit sie möglichst schnell auf die Daten zugreifen können.
    Kapazitätsmodus Bereitgestellter Durchsatz oder serverlos Wählen Sie Bereitgestellter Durchsatz aus, um ein Konto im Modus Bereitgestellter Durchsatz zu erstellen. Wählen Sie Serverlos aus, um ein Konto im Modus Serverlos zu erstellen.
    Anwenden des Rabatts für den Free-Tarif von Azure Cosmos DB Anwenden oder Nicht anwenden Mit dem Azure Cosmos DB-Tarif „Free“ erhalten Sie die ersten 1000 RUs/Sek. sowie 25 GB Speicher kostenlos in einem Konto. Weitere Informationen zum Tarif „Free“
    Beschränken des gesamten Kontodurchsatzes Auswählen, um den Durchsatz des Kontos zu begrenzen Dies ist nützlich, wenn Sie den Gesamtdurchsatz des Kontos auf einen bestimmten Wert begrenzen wollen.

    Hinweis

    Sie können pro Azure-Abonnement maximal ein Azure Cosmos DB-Konto im Free-Tarif einrichten und müssen sich beim Erstellen des Kontos anmelden. Wird die Option zum Anwenden des tarifspezifischen Rabatts für den Free-Tarif nicht angezeigt, bedeutet dies, dass bereits ein anderes Konto im Abonnement mit dem Free-Tarif aktiviert wurde.

    Die Seite zum Erstellen eines neuen Kontos für Azure Cosmos DB for Apache Cassandra

  6. Konfigurieren Sie auf der Registerkarte Globale Verteilung die folgenden Details. Für diese Schnellstartanleitung können Sie die Standardwerte übernehmen:

    Einstellung Wert Beschreibung
    Georedundanz Deaktivieren Aktivieren oder deaktivieren Sie die globale Verteilung für Ihr Konto, indem Sie Ihre Region mit einer Region koppeln. Sie können später weitere Regionen zu Ihrem Konto hinzufügen.
    Schreibvorgänge in mehreren Regionen Deaktivieren Mit der Funktion zum Schreiben in mehreren Regionen können Sie den bereitgestellten Durchsatz für Ihre Datenbanken und Container in der ganzen Welt nutzen.
    Verfügbarkeitszonen Deaktivieren Verfügbarkeitszonen sind isolierte Standorte innerhalb einer Azure-Region. Jede Zone besteht aus mindestens einem Rechenzentrum, dessen Stromversorgung, Kühlung und Netzwerkbetrieb unabhängig funktionieren.

    Hinweis

    Die folgenden Optionen sind nicht verfügbar, wenn Sie als Kapazitätsmodus die Option Serverlos auswählen:

    • Tarifspezifischen Rabatt für den Free-Tarif anwenden
    • Georedundanz
    • Schreibvorgänge in mehreren Regionen
  7. Optional können Sie auf den folgenden Registerkarten zusätzliche Details konfigurieren:

    • Netzwerk: Konfigurieren Sie den Zugriff über ein virtuelles Netzwerk.
    • Sicherungsrichtlinie: Konfigurieren Sie eine Richtlinie für regelmäßige oder fortlaufende Sicherungen.
    • Verschlüsselung: Verwenden Sie entweder einen vom Dienst verwalteten Schlüssel oder einen kundenseitig verwalteten Schlüssel.
    • Tags: Tags sind Name-Wert-Paare, mit denen Sie Ressourcen kategorisieren und eine konsolidierte Abrechnung anzeigen können, indem Sie dasselbe Tag auf mehrere Ressourcen und Ressourcengruppen anwenden.
  8. Klicken Sie auf Überprüfen + erstellen.

  9. Überprüfen Sie die Kontoeinstellungen, und wählen Sie anschließend Erstellen aus. Die Erstellung des Kontos dauert einige Minuten. Warten Sie, bis auf der Portalseite Ihre Bereitstellung wurde abgeschlossen. angezeigt wird.

    Der Bereich „Benachrichtigungen“ im Azure-Portal

  10. Wählen Sie Zu Ressource wechseln aus, um zur Seite des Azure Cosmos DB-Kontos zu wechseln.

Abrufen der Verbindungsdetails zu Ihrem Konto

Rufen Sie die Informationen der Verbindungszeichenfolge über das Azure-Portal ab, und fügen Sie sie in die Java-Konfigurationsdatei ein. Die Angabe der Verbindungszeichenfolge ermöglicht Ihrer App die Kommunikation mit Ihrer gehosteten Datenbank.

  1. Wechseln Sie im Azure-Portal zu Ihrem Azure Cosmos DB-Konto.

  2. Öffnen Sie den Bereich Verbindungszeichenfolge.

  3. Kopieren Sie die Werte von KONTAKTPUNKT, PORT, BENUTZERNAME, und PRIMÄRES KENNWORT. Diese werden Sie in den nächsten Schritten benötigen.

Erstellen des Projekts und der Abhängigkeiten

Das Java-Beispielprojekt, das Sie in diesem Artikel verwenden, wird in GitHub gehostet. Sie können die Schritte in diesem Dokument ausführen oder das Beispiel aus dem Repository azure-cosmos-db-cassandra-java-getting-started herunterladen.

Aktualisieren Sie nach dem Herunterladen der Dateien, die Informationen zur Verbindungszeichenfolge in der Datei java-examples\src\main\resources\config.properties, und führen Sie sie aus.

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

Verwenden Sie die folgenden Schritte, um das Beispiel von Grund auf neu zu erstellen:

  1. Erstellen Sie über das Terminal oder die Eingabeaufforderung ein neues Maven-Projekt namens „Cassandra-demo“.

    mvn archetype:generate -DgroupId=com.azure.cosmosdb.cassandra -DartifactId=cassandra-demo -DarchetypeArtifactId=maven-archetype-quickstart -DinteractiveMode=false 
    
  2. Suchen Sie den Ordner cassandra-demo. Öffnen Sie in einem Text-Editor die generierte Datei pom.xml.

    Fügen Sie die Cassandra-Abhängigkeiten hinzu, und erstellen Sie die für Ihr Projekt erforderlichen Plug-Ins, die in der Datei pom.xml gezeigt werden.

  3. Erstellen Sie im Ordner cassandra-demo\src\main einen neuen Ordner namens resources. Fügen Sie im Ressourcenordner die Dateien „config.properties“ und „log4j.properties“ hinzu:

    • Die Datei config.properties speichert den Verbindungsendpunkt und die Schlüsselwerte des API für Cassandra-Kontos.

    • Die Datei log4j.properties definiert die Ebene der Protokollierung, die für die Interaktion mit der API für Cassandra erforderlich ist.

  4. Navigieren Sie zum Ordner src/main/java/com/azure/cosmosdb/cassandra/. Erstellen Sie im Cassandra-Ordner einen weiteren Ordner mit dem Namen utils. Der neue Ordner speichert die Hilfsprogrammklassen, die zum Herstellen einer Verbindung mit dem API für Cassandra-Konto erforderlich sind.

    Fügen Sie die Klasse CassandraUtils hinzu, um den Cluster zu erstellen und Cassandra-Sitzungen zu öffnen und zu schließen. Der Cluster stellt eine Verbindung mit dem API für Cassandra-Konto in Azure Cosmos DB her und gibt eine Sitzung für den Zugriff zurück. Lesen Sie mithilfe der Klasse Configurations Informationen zur Verbindungszeichenfolge aus der Datei „config.properties“.

  5. Das Java-Beispiel erstellt eine Datenbank mit Benutzerinformationen wie Benutzernamen, Benutzer-ID und Stadt des Benutzers. Sie müssen GET- und SET-Methoden definieren, um auf die Benutzerdetails in der main-Funktion zuzugreifen.

    Erstellen Sie eine User.java-Klasse im Ordner src/main/java/com/azure/cosmosdb/cassandra/ mit GET- und SET-Methoden.

Hinzufügen einer Datenbank und Tabelle

In diesem Abschnitt wird beschrieben, wie Sie eine Datenbank (Keyspace) und eine Tabelle mit CQL hinzufügen.

  1. Erstellen Sie im Ordner src\main\java\com\azure\cosmosdb\cassandra einen neuen Ordner namens repository.

  2. Erstellen Sie die Java-Klasse UserRepository, und fügen Sie den folgenden Code hinzu:

    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. Suchen Sie den Ordner src\main\java\com\azure\cosmosdb\cassandra, und erstellen Sie einen neuen Unterordner namens examples.

  4. Erstellen Sie die Java-Klasse UserProfile. Diese Klasse enthält die main-Methode, die die Methoden createKeyspace und createTable aufruft, die Sie zuvor definiert haben:

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

Ausführen der App

  1. Öffnen Sie eine Eingabeaufforderung oder ein Terminalfenster. Fügen Sie folgenden Codeblock ein.

    Dieser Code ändert das Verzeichnis (cd) in den Ordnerpfad, in dem das Projekt erstellt wurde. Anschließend führt er den Befehl mvn clean install zum Generieren der Datei cosmosdb-cassandra-examples.jar im Zielordner aus. Abschließend führt er die Java-Anwendung aus.

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

    Im Terminalfenster werden Benachrichtigungen angezeigt, dass der Keyspace und die Tabelle erstellt wurden.

  2. Öffnen Sie im Azure-Portal nun den Daten-Explorer, um sicherzustellen, dass der Keyspace und die Tabelle erstellt wurden.

Nächste Schritte

In diesem Tutorial haben Sie erfahren, wie Sie ein API für Cassandra-Konto in Azure Cosmos DB, eine Datenbank und eine Tabelle mithilfe einer Java-Anwendung erstellen. Sie können jetzt mit dem nächsten Artikel fortfahren: