Zelfstudie: Een API voor Cassandra-account maken 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
Als u geen Azure-abonnement hebt, maakt u een gratis account voordat u begint.
Download de nieuwste versie van de Java Development Kit (JDK).
Download en installeer het binaire archief van Maven.
- Op Ubuntu kunt u
apt-get install maven
uitvoeren om Maven te installeren.
- Op Ubuntu kunt u
Een databaseaccount maken
Selecteer vanuit het menu van Azure Portal of op de startpagina de optie Een resource maken.
Zoek op de pagina Nieuw naar Azure Cosmos DB en selecteer dit.
Selecteer op de pagina Azure Cosmos DB Maken.
Selecteer Maken onder 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.
Voer op de pagina Azure Cosmos DB-account maken de basisinstellingen voor het nieuwe Azure Cosmos DB-account in.
Instelling Weergegeven als Beschrijving Abonnement Uw abonnement Selecteer het Azure-abonnement dat u wilt gebruiken voor dit Azure Cosmos DB-account. Resourcegroep Nieuwe
Voer vervolgens dezelfde naam in als de AccountnaamSelecteer 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 Selecteren 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.
Configureer op het tabblad Globale distributie de volgende details. U kunt de standaardwaarden voor deze quickstart behouden:
Instelling Weergegeven als 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 met onafhankelijke stroomvoorziening, koeling en netwerken. Notitie
De volgende opties zijn niet beschikbaar als u Serverloos als Capaciteitsmodus selecteert:
- Korting voor gratis laag toepassen
- Geografische redundantie
- Schrijven voor meerdere regio's
U kunt eventueel aanvullende details configureren op de volgende tabbladen:
- Netwerken : toegang configureren vanuit een virtueel netwerk.
- Back-upbeleid: configureer periodiek of doorlopend back-upbeleid.
- Versleuteling : gebruik een door de service beheerde sleutel of een door de klant beheerde sleutel.
- Tags: tags zijn naam-/waardeparen waarmee u resources kunt categoriseren en geconsolideerde facturering kunt weergeven door dezelfde tag toe te passen op meerdere resources en resourcegroepen.
Selecteer Controleren + maken.
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.
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.
Ga vanuit Azure Portal naar uw Azure Cosmos DB-account.
Open het deelvenster Verbindingsreeks.
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:
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
Zoek de map
cassandra-demo
. Open in een teksteditor het bestandpom.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.
Maak onder de map
cassandra-demo\src\main
een nieuwe map met de naamresources
. 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 vereiste logboekregistratieniveau voor interactie met de API voor Cassandra.
Blader naar de map
src/main/java/com/azure/cosmosdb/cassandra/
. Maak in de map cassandra een andere map met de naamutils
. 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.
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.
Maak onder de map
src\main\java\com\azure\cosmosdb\cassandra
een nieuwe map met de naamrepository
.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'"); } }
Zoek de map
src\main\java\com\azure\cosmosdb\cassandra
en maak in de map een nieuwe submap met de naamexamples
.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
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 bestandcosmosdb-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.
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: