Quickstart: Een Java-app bouwen voor het beheren van Azure Cosmos DB voor Apache Cassandra-gegevens (v3-stuurprogramma)

VAN TOEPASSING OP: Cassandra

In deze quickstart maakt u een Azure Cosmos DB voor Apache Cassandra-account en gebruikt u een Cassandra Java-app die is gekloond vanuit GitHub om een Cassandra-database en -container te maken met behulp van de v3.x Apache Cassandra-stuurprogramma's voor Java. Azure Cosmos DB is een databaseservice met meerdere modellen waarmee u snel document-, tabel-, sleutelwaarde- en grafiekdatabases kunt maken en er query's op kunt uitvoeren met globale distributie en horizontale schaalmogelijkheden.

Vereisten

Notitie

Dit is een eenvoudige quickstart die gebruikmaakt van versie 3 van het opensource-apache Cassandra-stuurprogramma voor Java. In de meeste gevallen moet u een bestaande, afhankelijke Java-toepassing van Apache Cassandra kunnen verbinden met Azure Cosmos DB voor Apache Cassandra zonder wijzigingen in uw bestaande code. We raden u echter aan om onze aangepaste Java-extensie toe te voegen, waaronder aangepast beleid voor opnieuw proberen en taakverdeling, voor een betere algehele ervaring. Dit is voor respectievelijk het afhandelen van snelheidsbeperking en failover op toepassingsniveau in Azure Cosmos DB. U vindt hier een uitgebreid voorbeeld waarmee de extensie wordt geïmplementeerd.

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 op de PAGINA APIde optie Maken in de sectie Cassandra .

    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 deze optie 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 voorbeeldtoepassing klonen

Nu gaan we werken met code. We gaan een Cassandra-app klonen vanuit GitHub, de verbindingsreeks instellen en de app uitvoeren. U zult zien hoe gemakkelijk het is om op een programmatische manier met gegevens te werken.

  1. Open een opdrachtprompt. Maak een nieuwe map met de naam git-samples. Sluit vervolgens de opdrachtprompt.

    md "C:\git-samples"
    
  2. Open een git-terminalvenster, bijvoorbeeld git bash, en gebruik de cd-opdracht om naar de nieuwe map te gaan 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-java-getting-started.git
    

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. Als u deze stap wilt overslaan, kunt u verdergaan naar Uw verbindingsreeks bijwerken. Deze codefragmenten zijn allemaal afkomstig uit het bestand src/main/java/com/azure/cosmosdb/cassandra/util/CassandraUtils.java.

  • De Cassandra-opties voor host, poort, gebruikersnaam, wachtwoord en TS/SSL zijn ingesteld. De vereiste verbindingsreeksinformatie is afkomstig van de pagina Verbindingsreeks in Azure Portal.

    cluster = Cluster.builder().addContactPoint(cassandraHost).withPort(cassandraPort).withCredentials(cassandraUsername, cassandraPassword).withSSL(sslOptions).build();
    
  • De cluster maakt verbinding met de Azure Cosmos DB voor Apache Cassandra en retourneert een sessie voor toegang.

    return cluster.connect();
    

De volgende codefragmenten zijn afkomstig uit het bestand src/main/java/com/azure/cosmosdb/cassandra/repository/UserRepository.java.

  • Maak een nieuwe keyspace.

    public void createKeyspace() {
        final String query = "CREATE KEYSPACE IF NOT EXISTS uprofile WITH replication = {'class': 'SimpleStrategy', 'replication_factor': '3' } ";
        session.execute(query);
        LOGGER.info("Created keyspace 'uprofile'");
    }
    
  • Maak een nieuwe tabel.

    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'");
    }
    
  • Voeg gebruikersentiteiten in met een voorbereid instructieobject.

    public PreparedStatement prepareInsertStatement() {
        final String insertStatement = "INSERT INTO  uprofile.user (user_id, user_name, user_bcity) VALUES (?,?,?)";
        return session.prepare(insertStatement);
    }
    
    public void insertUser(PreparedStatement statement, int id, String name, String city) {
        BoundStatement boundStatement = new BoundStatement(statement);
        session.execute(boundStatement.bind(id, name, city));
    }
    
  • Voer een query uit voor het ophalen van alle gebruikersgegevens.

    public void selectAllUsers() {
        final String query = "SELECT * FROM uprofile.user";
        List<Row> rows = session.execute(query).all();
    
        for (Row row : rows) {
            LOGGER.info("Obtained row: {} | {} | {} ", row.getInt("user_id"), row.getString("user_name"), row.getString("user_bcity"));
        }
    }
    
  • Voer een query uit voor het ophalen van de gebruikersgegevens van één gebruiker.

    public void selectUser(int id) {
        final String query = "SELECT * FROM uprofile.user where user_id = 3";
        Row row = session.execute(query).one();
    
        LOGGER.info("Obtained row: {} | {} | {} ", row.getInt("user_id"), row.getString("user_name"), row.getString("user_bcity"));
    }
    

Uw verbindingsreeks bijwerken

Ga nu terug naar Azure Portal om de verbindingsreeksinformatie op te halen en kopieer deze in de app. De details van de verbindingsreeks stellen 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.

    Een gebruikersnaam bekijken en kopiëren via Azure Portal, pagina Verbindingsreeks

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

  3. Open het bestand config.properties vanuit de map C:\git-samples\azure-cosmosdb-cassandra-java-getting-started\java-examples\src\main\resources.

  4. Plak de CONTACT POINT-waarde uit de portal over <Cassandra endpoint host> op regel 2 heen.

    Regel 2 van config.properties moet er nu als volgt uitzien

    cassandra_host=cosmos-db-quickstart.cassandra.cosmosdb.azure.com

  5. Ga terug naar de portal en kopieer de USERNAME-waarde. Plak de USERNAME-waarde uit de portal over <cassandra endpoint username> op regel 4 heen.

    Regel 4 van config.properties moet er nu als volgt uitzien

    cassandra_username=cosmos-db-quickstart

  6. Ga terug naar de portal en kopieer de PASSWORD-waarde. Plak de PASSWORD-waarde uit de portal over <cassandra endpoint password> op regel 5 heen.

    Regel 5 van config.properties moet er nu als volgt uitzien

    cassandra_password=2Ggkr662ifxz2Mg...==

  7. Als u wilt dat er een specifiek TLS/SSL-certificaat wordt gebruikt, vervangt u op regel 6 <SSL key store file location> door de locatie van het TLS/SSL-certificaat. Als er geen waarde wordt opgegeven, wordt het JDK-certificaat gebruikt dat is geïnstalleerd op <JAVA_HOME>/jre/lib/security/cacerts.

  8. Als u regel 6 hebt gewijzigd omdat u wilt dat er een specifiek TLS/SSL-certificaat wordt gebruikt, werkt u regel 7 bij, zodat het wachtwoord voor dat certificaat wordt gebruikt.

  9. Sla het bestand config.properties op.

De Java-app uitvoeren

  1. cd in het git-terminalvenster naar de map azure-cosmosdb-cassandra-java-getting-started.

    cd "C:\git-samples\azure-cosmosdb-cassandra-java-getting-started"
    
  2. Gebruik in het git-terminalvenster de volgende opdracht om het bestand cosmosdb-cassandra-examples.jar te genereren.

    mvn clean install
    
  3. Voer in het git-terminalvenster de volgende opdracht uit om de Java-toepassing te starten.

    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. Vervolgens worden gebruikers in de tabel geselecteerd en geretourneerd en wordt de uitvoer weergegeven, waarna een rij per id wordt geselecteerd en de waarde wordt weergegeven.

    Druk op Ctrl+C om de uitvoering van 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.

    De gegevens bekijken in Data Explorer - Azure Cosmos DB

SLA’s bekijken in Azure Portal

De Azure Portal bewaakt de doorvoer, opslag, beschikbaarheid, latentie en consistentie van uw Azure Cosmos DB-account. 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-pakket met metrische gegevens

  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.

    Resourcegroep selecteren die moet worden verwijderd

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

    De resourcegroep verwijderen

  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 hoe u een Cassandra Java-app uitvoert waarmee een Cassandra-database en -container wordt gemaakt. Nu kunt u aanvullende gegevens in uw Azure Cosmos DB-account importeren.