Freigeben über


Lernprogramm: Erstellen einer API für Cassandra-Konten in Azure Cosmos DB mithilfe einer Java-Anwendung zum Speichern von Schlüssel-/Wertdaten

GILT FÜR: Kassandra

Als Entwickler besitzen Sie möglicherweise Anwendungen, die Schlüssel/Wert-Paare verwenden. Sie können eine API für das Cassandra-Konto in Azure Cosmos DB verwenden, um die Schlüssel-/Wertdaten zu speichern. In diesem Lernprogramm wird beschrieben, wie Sie eine Java-Anwendung verwenden, um eine API für das Cassandra-Konto in Azure Cosmos DB zu erstellen, eine Datenbank (auch als Keyspace bezeichnet) hinzuzufügen und eine Tabelle hinzuzufügen. Die Java-Anwendung verwendet den Java-Treiber , um eine Benutzerdatenbank zu erstellen, die Details wie Benutzer-ID, Benutzername und Benutzerstadt enthält.

Dieses Tutorial enthält die folgenden Aufgaben:

  • Erstellen Sie ein Cassandra-Datenbankkonto.
  • Rufen Sie die Kontoverbindungszeichenfolge ab.
  • Erstellen Sie ein Maven-Projekt und Abhängigkeiten.
  • Fügen Sie eine Datenbank und eine Tabelle hinzu.
  • Führen Sie die App aus.

Voraussetzungen

Erstellen eines Datenbankkontos

  1. Wählen Sie im Azure-Portalmenü 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 "API " unter dem Abschnitt "Cassandra " die Option "Erstellen" 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 Lernprogramm eine Tabelle erstellen, die mit der API für Cassandra funktioniert.

    Weitere Informationen zur API für Cassandra finden Sie unter Was ist Azure Cosmos DB für Apache 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
    Abonnement Ihr Abonnement Wählen Sie das Azure-Abonnement aus, das Sie für dieses Azure Cosmos DB-Konto verwenden möchten.
    Ressourcengruppe Erstellen Sie ein Neues.

    Geben Sie dann denselben Namen wie "Kontoname" 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. Ihr Konto-URI, cassandra.cosmos.azure.com, wird an Ihren eindeutigen Kontonamen angehängt.

    Der Kontoname kann nur Kleinbuchstaben, Zahlen und Bindestriche (-) verwenden und muss zwischen 3 und 31 Zeichen lang sein.
    Ort Hier sollte die Region verwendet werden, die Ihren Benutzer*innen am nächsten liegt. Wählen Sie einen geografischen Standort aus, an dem Ihr Azure Cosmos DB-Konto gehostet werden soll. Verwenden Sie einen Standort, der Ihren Benutzern am nächsten liegt, um ihnen einen schnellen Zugriff auf die Daten zu gewähren.
    Kapazitätsmodus Bereitgestellter Durchsatz oder Serverless. Wählen Sie "Bereitgestellter Durchsatz " aus, um ein Konto im Modus " Bereitgestellter Durchsatz " zu erstellen. Wählen Sie "Serverless" aus, um ein Konto im Serverless-Modus zu erstellen.
    Anwenden des Rabatts für den Free-Tarif für Azure Cosmos DB Übernehmen oder Nicht übernehmen. Mit der kostenlosen Azure Cosmos DB-Stufe erhalten Sie die ersten 1.000 RU/s und 25 GB Speicherplatz kostenlos in einem Konto. Erfahren Sie mehr über die kostenlose Stufe.
    Beschränken des Gesamtkontodurchsatzes Wählen Sie diese Option aus, um den Durchsatz des Kontos zu begrenzen. Diese Option ist nützlich, wenn Sie den Gesamtdurchsatz des Kontos auf einen bestimmten Wert beschränken möchten.

    Hinweis

    Sie können bis zu einem kostenlosen Azure Cosmos DB-Konto pro Azure-Abonnement haben. Sie müssen sich anmelden, wenn Sie das Konto erstellen. Wenn die Option zum Anwenden des kostenlosen Tarifrabatts nicht angezeigt wird, wurde ein weiteres Konto im Abonnement mit der kostenlosen Stufe aktiviert.

    Die Seite „Neues Konto“ für Azure Cosmos DB for Apache Cassandra

  6. Konfigurieren Sie auf der Registerkarte "Globale Verteilung " die folgenden Details. Verwenden Sie die Standardwerte für dieses Lernprogramm.

    Einstellung Wert BESCHREIBUNG
    Georedundanz Disable 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 Disable Mit der Multiregion-Schreibfunktion können Sie den bereitgestellten Durchsatz für Ihre Datenbanken und Container auf der ganzen Welt nutzen.
    Verfügbarkeitszonen Disable 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.

    Die folgenden Optionen sind nicht verfügbar, wenn Sie "Serverless " als Kapazitätsmodus auswählen:

    • Anwenden des Rabatts für den Free-Tarif
    • Georedundanz
    • Schreibvorgänge in mehreren Regionen
  7. Optional können Sie weitere Details auf den folgenden Registerkarten konfigurieren:

  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.

    Screenshot des Bereichs

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

Führen Sie die folgenden Schritte aus, um das Beispiel von Grund auf neu zu erstellen:

  1. Erstellen Sie im Terminal oder in der 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 mithilfe eines Text-Editors die pom.xml generierte Datei.

    Fügen Sie die Cassandra-Abhängigkeiten hinzu, und erstellen Sie Plug-Ins, die Ihr Projekt benötigt, wie in der pom.xml Datei gezeigt.

  3. Erstellen Sie im Ordner cassandra-demo\src\main einen neuen Ordner namens resources. Fügen Sie unter dem resources Ordner die config.properties Dateien 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 innerhalb des Ordners cassandra einen anderen Ordner mit dem Namen utils. Der neue Ordner speichert die Hilfsklassen, die zum Herstellen einer Verbindung mit der API für das 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. Verwenden Sie die Configurations-Klasse , um Verbindungszeichenfolgeninformationen aus der config.properties Datei zu lesen.

  5. Im Java-Beispiel wird eine Datenbank mit Benutzerinformationen wie Benutzername, Benutzer-ID und Benutzerstadt erstellt. Sie müssen die get- und set-Methoden definieren, um auf Benutzerdetails in der Hauptfunktion zuzugreifen.

    Erstellen Sie eine User.java Klasse unter dem src/main/java/com/azure/cosmosdb/cassandra/ Ordner mit get und set Methoden.

Hinzufügen einer Datenbank und Tabelle

In diesem Abschnitt wird beschrieben, wie Sie eine Datenbank (Keyspace) und eine Tabelle mithilfe der Cassandra Query Language (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 Hauptmethode, die die zuvor definierten Methoden createKeyspace und createTable aufruft.

    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 Sie das Projekt erstellt haben. 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 den Daten-Explorer , um zu bestätigen, dass die Schlüsseltasten und die Tabelle erstellt wurden.

Nächster Schritt

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