Snabbstart: Skapa en Java-app för att hantera Azure Cosmos DB API för Cassandra data (v4-drivrutin)
GÄLLER för:
API för Cassandra
I den här snabbstarten skapar du ett Azure Cosmos DB API för Cassandra-konto och använder en Cassandra Java-app som klonas från GitHub för att skapa en Cassandra-databas och container med hjälp av v4.x Apache Cassandra-drivrutiner för Java. Azure Cosmos DB är en databastjänst med flera modeller som gör att du snabbt kan skapa och fråga databaser för dokument, tabeller, nyckelvärden och grafer med global distribution och horisontell skalning.
Förutsättningar
- Ett Azure-konto med en aktiv prenumeration. Skapa ett utan kostnad. Eller prova Azure Cosmos DB utan en Azure-prenumeration.
- Java Development Kit (JDK) 8. Peka
JAVA_HOMEmiljövariabeln till mappen där JDK är installerad. - Ett binärt Maven-arkiv. I Ubuntu kör du för
apt-get install mavenatt installera Maven. - Git. I Ubuntu kör du för
sudo apt-get install gitatt installera Git.
Anteckning
Det här är en enkel snabbstart som använder version 4 av Apache Cassandra-drivrutinen med öppen källkod för Java. I de flesta fall bör du kunna ansluta ett befintligt Apache Cassandra-beroende Java-program till Azure Cosmos DB API för Cassandra utan ändringar i din befintliga kod. Vi rekommenderar dock att du lägger till vårt anpassade Java-tillägg, som innehåller anpassade återförsöks- och belastningsutjämningsprinciper, samt rekommenderade anslutningsinställningar, för en bättre övergripande upplevelse. Det här är för att hantera hastighetsbegränsning och redundans på programnivå Azure Cosmos DB vid behov. Du hittar ett omfattande exempel som implementerar tillägget här.
Skapa ett databaskonto
Innan du kan börja skapa en dokumentdatabas måste du skapa ett Cassandra-konto med Azure Cosmos DB.
På Azure Portal eller på sidan Start väljer du Skapa en resurs.
På sidan Nytt söker du efter och väljer Azure Cosmos DB.
På Azure Cosmos DB väljer du Skapa.
På sidan Skapa Azure Cosmos DB konto anger du de grundläggande inställningarna för det nya Azure Cosmos-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 KontonamnVälj Skapa ny. Ange sedan ett nytt resursgruppnamn för ditt konto. För enkelhetens skull använder du samma namn som namnet på ditt Azure Cosmos-konto. Account Name Ange ett unikt namn Ange ett unikt namn som identifierar ditt Azure Cosmos DB-konto. Din konto-URI cassandra.cosmos.azure.com till ditt unika kontonamn.
Kontonamnet får bara innehålla gemener, siffror och bindestreck (-) och måste vara mellan 3 och 31 tecken långt.API Cassandra API:et avgör vilken typ av konto som skapas. Azure Cosmos DB innehåller fem API:er: Core (SQL) 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 för Cassandra.
Läs mer om Cassandra-API:n.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 Azure Cosmos DB rabatt på den kostnadsfria nivån Tillämpa eller Tillämpa inte Med Azure Cosmos DB kostnadsfri nivå får du de första 1 000 RU/s och 25 GB lagringsutrymme kostnadsfritt i ett konto. Läs mer om den kostnadsfria nivån. Anteckning
Du kan ha upp till en kostnadsfri nivå Azure Cosmos DB per Azure-prenumeration och måste välja när du skapar kontot. Om du inte ser alternativet för 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.
Konfigurera följande information på fliken Global distribution. Du kan lämna standardvärdena för 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 för flera regioner kan du dra nytta av det etablerade dataflödet för dina databaser och containrar över hela världen. 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
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 en tjänst hanterad nyckel eller en kund hanterad 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.
Välj Granska + skapa.
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.
Välj Gå till resurs för att gå till sidan för Azure Cosmos DB-kontot.
Klona exempelprogrammet
Nu ska vi övergå till att arbeta med kod. Vi ska klona en Cassandra API-app från GitHub, ange anslutningssträngen och köra appen. Du kommer att se hur lätt det är att arbeta med data programmässigt.
Öppna en kommandotolk. Skapa en ny mapp med namnet
git-samples. Stäng kommandotolken.md "C:\git-samples"Öppna ett git-terminalfönster, t.ex. git bash, och använd kommandot
cdför att ändra till den nya mappen där du vill installera exempelappen.cd "C:\git-samples"Klona exempellagringsplatsen med följande kommando. Detta kommando skapar en kopia av exempelappen på din dator.
git clone https://github.com/Azure-Samples/azure-cosmos-db-cassandra-java-getting-started-v4.git
Granska koden
Det här är valfritt. Om du vill lära dig hur databasresurserna skapas i koden kan du granska följande kodavsnitt. Annars kan du gå vidare till Uppdatera din anslutningssträng. Alla dessa kodfragment kommer från filen src/main/java/com/azure/cosmosdb/cassandra/util/CassandraUtils.java.
ansluter till Azure Cosmos DB API för Cassandra returnerar en session för åtkomst ( objektet
CqlSessionfrånClusterv3-drivrutinen är nu inaktuell). Cassandra-värd, port, användarnamn och lösenord anges med hjälp av anslutningssträngsidan i Azure Portal.this.session = CqlSession.builder().withSslContext(sc) .addContactPoint(new InetSocketAddress(cassandraHost, cassandraPort)).withLocalDatacenter(region) .withAuthCredentials(cassandraUsername, cassandraPassword).build();
Följande kodfragment kommer från filen src/main/java/com/azure/cosmosdb/cassandra/repository/UserRepository.java.
Ta bort nyckelutrymmet om det redan finns från en tidigare körning.
public void dropKeyspace() { String query = "DROP KEYSPACE IF EXISTS "+keyspace+""; session.execute(query); LOGGER.info("dropped keyspace '"+keyspace+"'"); }Ett nytt keyspace skapas.
public void createKeyspace() { String query = "CREATE KEYSPACE "+keyspace+" WITH REPLICATION = { 'class' : 'NetworkTopologyStrategy', 'datacenter1' : 1 }"; session.execute(query); LOGGER.info("Created keyspace '"+keyspace+"'"); }En ny tabell skapas.
public void createTable() { String query = "CREATE TABLE "+keyspace+"."+table+" (user_id int PRIMARY KEY, user_name text, user_bcity text)"; session.execute(query); LOGGER.info("Created table '"+table+"'"); }Användarentiteter infogas med hjälp av ett förberett instruktionsobjekt.
public String prepareInsertStatement() { final String insertStatement = "INSERT INTO "+keyspace+"."+table+" (user_id, user_name , user_bcity) VALUES (?,?,?)"; return insertStatement; } public void insertUser(String preparedStatement, int id, String name, String city) { PreparedStatement prepared = session.prepare(preparedStatement); BoundStatement bound = prepared.bind(id, city, name).setIdempotent(true); session.execute(bound); }Fråga för att hämta all användarinformation.
public void selectAllUsers() { final String query = "SELECT * FROM "+keyspace+"."+table+""; 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")); } }Fråga för att hämta en enskild användarinformation.
public void selectUser(int id) { final String query = "SELECT * FROM "+keyspace+"."+table+" 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")); }
Uppdatera din anslutningssträng
Gå nu tillbaka till Azure Portal för att hämta information om din anslutningssträng och kopiera den till appen. Informationen i anslutningssträngen gör det möjligt för appen att kommunicera med den värdbaserade databasen.
I ditt Azure Cosmos DB-konto i Azure Portalväljer du Anslutningssträng.
Använd knappen
till höger på skärmen för att kopiera VÄRDET KONTAKTPUNKT.Öppna filen config.properties från mappen C:\git-samples\azure-cosmosdb-cassandra-java-getting-started\java-examples\src\main\resources.
Klistra in KONTAKTPUNKT-värdet från portalen över
<Cassandra endpoint host>på rad 2.Rad 2 i config.properties bör nu se ut ungefär så här
cassandra_host=cosmos-db-quickstart.cassandra.cosmosdb.azure.comGå tillbaka till portalen och kopiera värdet ANVÄNDARNAMN. Klistra in värdet för ANVÄNDARNAMN från portalen över
<cassandra endpoint username>på rad 4.Rad 4 i config.properties bör nu se ut ungefär så här
cassandra_username=cosmos-db-quickstartGå tillbaka till portalen och kopiera värdet LÖSENORD. Klistra in värdet för LÖSENORD från portalen över
<cassandra endpoint password>på rad 5.Rad 5 i config.properties bör nu se ut ungefär så här
cassandra_password=2Ggkr662ifxz2Mg...==Om du vill använda ett specifikt TLS/SSL-certifikat på rad 6 ersätter du med platsen för
<SSL key store file location>TLS/SSL-certifikatet. Om inget värde anges kommer JDK-certifikatet som är installerat på <JAVA_HOME>/jre/lib/security/cacerts att användas.Om du ändrade rad 6 till att använda ett specifikt TLS/SSL-certifikat uppdaterar du rad 7 så att lösenordet för certifikatet används.
Observera att du måste lägga till standardregionen (t.ex.
West US) för kontaktpunkten, t.ex.region=West USDet beror på att v.4x-drivrutinen endast tillåter att en lokal domänkontrollant paras ihop med kontaktpunkten. Om du vill lägga till en annan region än standardregionen (som är den region som du fick när Cosmos DB-kontot först skapades) måste du använda regionalt suffix när du lägger till kontaktpunkt, t.ex.
host-westus.cassandra.cosmos.azure.com.Spara filen config.properties.
Kör Java-appen
I git-terminalfönstret
cdtill mappenazure-cosmosdb-cassandra-java-getting-started-v4.cd "C:\git-samples\azure-cosmosdb-cassandra-java-getting-started-v4"I git-terminalfönstret använder du följande kommando för att generera filen
cosmosdb-cassandra-examples.jar.mvn clean installI git-terminalfönstret kör du följande kommando för att starta Java-programmet.
java -cp target/cosmosdb-cassandra-examples.jar com.azure.cosmosdb.cassandra.examples.UserProfileTerminalfönstret visar aviseringar om att keyspace och tabell har skapats. Det markerar och returnerar sedan alla användare i tabellen och visar utdata, och väljer sedan ett rad-ID och visar värdet.
Tryck på Ctrl+C för att stoppa körningen av programmet och stänga konsolfönstret.
I Datautforskaren på Azure-portalen kan du fråga, ändra och arbeta med dessa nya data.
Granska serviceavtal i Azure-portalen
Den Azure Portal övervakar Cosmos DB dataflöde, lagring, tillgänglighet, svarstid och konsekvens för ditt konto. Diagram för mått som är associerade med Azure Cosmos DB Serviceavtal (SLA) visar SLA-värdet jämfört med faktiska prestanda. Den här måttsviten gör övervakningen av dina serviceavtal transparent.
Så här granskar du mått och serviceavtal:
Välj Mått i Cosmos DB-kontots navigeringsmeny.
Välj en flik, till exempel Svarstid, och välj en tidsram till höger. Jämför linjerna Actual och SLA i diagrammen.

Granska måtten på de andra flikarna.
Rensa resurser
När du är klar med din app och Azure Cosmos DB-konto kan du ta bort de Azure-resurser som du skapade så att du inte debiteras mer. Ta bort resurser:
I sökfältet Azure Portal du efter och väljer Resursgrupper.
I listan väljer du den resursgrupp som du skapade för den här snabbstarten.

På sidan Översikt för resursgruppen väljer du Ta bort resursgrupp.

I nästa fönster anger du namnet på den resursgrupp som ska tas bort och väljer sedan Ta bort.
Nästa steg
I den här snabbstarten har du lärt dig hur du skapar ett Azure Cosmos DB-konto med API för Cassandra och kör en Cassandra Java-app som skapar en Cassandra-databas och container. Du kan nu importera ytterligare data till ditt Azure Cosmos DB konto.