Oktatóanyag: Api létrehozása Cassandra-fiókhoz az Azure Cosmos DB-ben egy Java-alkalmazással kulcs-/értékadatok tárolására
A KÖVETKEZŐKRE VONATKOZIK: Cassandra
Fejlesztőként előfordulhat, hogy kulcs-érték párokat használó alkalmazásokkal rendelkezik. Az Azure Cosmos DB-ben a Cassandra-fiók api-jának használatával tárolhatja a kulcs-/értékadatokat. Ez az oktatóanyag bemutatja, hogyan hozhat létre API-t Cassandra-fiókhoz Java-alkalmazásokkal az Azure Cosmos DB-ben, hogyan adhat hozzá egy adatbázist (más néven kulcsteret), és hogyan adhat hozzá táblát. A Java-alkalmazás a Java-illesztőprogram használatával hoz létre egy olyan felhasználói adatbázist, amely olyan adatokat tartalmaz, mint a felhasználói azonosító, a felhasználónév és a felhasználó városa.
Ez az oktatóanyag a következő feladatokat mutatja be:
- Cassandra-adatbázisfiók létrehozása
- A fiók kapcsolati sztringjének lekérése
- Maven-projekt és függőségek létrehozása
- Egy adatbázis és egy tábla hozzáadása
- Az alkalmazás futtatása
Előfeltételek
Ha még nincs Azure-előfizetése, kezdés előtt hozzon létre egy ingyenes fiókot.
Szerezze be a Java Development Kit (JDK) legújabb verzióját.
Töltse le és telepítse a Maven bináris archívumát.
- Ubuntu rendszeren futtathatja az
apt-get install maven
parancsot a Maven telepítéséhez.
- Ubuntu rendszeren futtathatja az
Adatbázisfiók létrehozása
Az Azure Portal menüjében vagy a Kezdőlapon válassza az Erőforrás létrehozása elemet.
Az Új lapon keresse meg és válassza ki az Azure Cosmos DB-t.
Az Azure Cosmos DB lapon válassza a Létrehozás lehetőséget.
Az API-lapon válassza a Létrehozás lehetőséget a Cassandra szakaszban.
A létrehozni kívánt fiók típusát az API határozza meg. Az Azure Cosmos DB öt API-t biztosít: a NoSQL-t a dokumentum-adatbázisokhoz, a Gremlint a gráfadatbázisokhoz, a MongoDB-t a dokumentum-adatbázisokhoz, az Azure Tableet és a Cassandrát. Minden API-hoz külön fiókot kell létrehoznia.
Válassza a Cassandra lehetőséget, mert ebben a rövid útmutatóban egy olyan táblát hoz létre, amely a Cassandra API-val működik.
További információ a Cassandra API-ról.
Az Azure Cosmos DB-fiók létrehozása lapon adja meg az új Azure Cosmos DB-fiók alapbeállításait.
Beállítás Érték Leírás Előfizetés Az Ön előfizetése Válassza ki az Azure Cosmos DB-fiókhoz használni kívánt Azure-előfizetést. Erőforráscsoport Új létrehozása
Ezután adja meg ugyanazt a nevet, mint a fiók neveVálassza az Új létrehozása lehetőséget. Ezután adjon meg egy új erőforráscsoportnevet a fiókjához. Az egyszerűség kedvéért használja ugyanazt a nevet, mint az Azure Cosmos DB-fiók neve. Fiók neve Adjon meg egy egyedi nevet Adjon meg egy egyedi nevet az Azure Cosmos DB-fiók azonosításához. A fiók URI-ja cassandra.cosmos.azure.com hozzá lesz fűzve az egyedi fiók nevéhez.
A fióknév csak kisbetűket, számokat és kötőjeleket (-) használhat, és 3 és 31 karakter közötti hosszúságúnak kell lennie.Hely A felhasználókhoz legközelebb eső régió Válassza ki az Azure Cosmos DB-fiókot üzemeltetéséhez használni kívánt földrajzi helyet. Használja a felhasználókhoz legközelebb lévő helyet, hogy a lehető leggyorsabb hozzáférést biztosítsa az adatokhoz. Kapacitásmód Kiosztott átviteli sebesség vagy kiszolgáló nélküli A kiosztott átviteli sebesség kiválasztásával hozzon létre egy fiókot kiosztott átviteli módban. A Kiszolgáló nélküli lehetőséget választva kiszolgáló nélküli módban hozhat létre fiókot. Ingyenes Azure Cosmos DB-kedvezmény alkalmazása Alkalmazás vagy nem alkalmazható Az Ingyenes Azure Cosmos DB-csomaggal az első 1000 RU/s-t és 25 GB tárterületet kap ingyenesen egy fiókban. További információk az ingyenes szintről. A fiók teljes átviteli sebességének korlátozása Válassza ki a fiók átviteli sebességének korlátozásához Ez akkor hasznos, ha a fiók teljes átviteli sebességét egy adott értékre szeretné korlátozni. Feljegyzés
Azure-előfizetésenként egy ingyenes szintű Azure Cosmos DB-fiókkal rendelkezhet, és a fiók létrehozásakor kell feliratkoznia. Ha nem látja az ingyenes szintű kedvezmény alkalmazására vonatkozó lehetőséget, az azt jelenti, hogy az előfizetés egy másik fiókján már engedélyezve van az ingyenes szint.
A Globális terjesztés lapon konfigurálja az alábbi adatokat. A rövid útmutatóban az alapértelmezett értékeket meghagyhatja:
Beállítás Érték Leírás Georedundancia Letiltás Engedélyezze vagy tiltsa le a globális terjesztést a fiókjában, ha párosítja a régiót egy párrégióval. Később további régiókat is hozzáadhat a fiókjához. Többrégiós írások Letiltás A többrégiós írási képesség lehetővé teszi, hogy kihasználja az adatbázisok és tárolók kiosztott átviteli sebességét világszerte. Rendelkezésre állási zónák Letiltás A rendelkezésre állási zónák egy Azure-régióban elkülönített helyek. Minden rendelkezésreállási zóna egy vagy több, független áramforrással, hűtéssel és hálózatkezelési megoldással ellátott adatközpontból áll. Feljegyzés
A következő beállítások nem érhetők el, ha a Kiszolgáló nélküli lehetőséget választja kapacitás módként:
- Ingyenes szintű kedvezmény alkalmazása
- Georedundancia
- Többrégiós írások
Igény szerint további részleteket is konfigurálhat a következő lapokban:
- Hálózatkezelés – Hozzáférés konfigurálása virtuális hálózatról.
- Biztonsági mentési szabályzat – Konfigurálja az időszakos vagy folyamatos biztonsági mentési szabályzatot.
- Titkosítás – Szolgáltatás által felügyelt vagy ügyfél által felügyelt kulcs használata.
- Címkék – A címkék név-érték párok, amelyek lehetővé teszik az erőforrások kategorizálását és az összevont számlázás megtekintését úgy, hogy ugyanazt a címkét több erőforrásra és erőforráscsoportra alkalmazza.
Válassza az Áttekintés + létrehozás lehetőséget.
Ellenőrizze a fiók beállításait, majd válassza a Létrehozás lehetőséget. A fiók létrehozása néhány percet vesz igénybe. Várja meg, hogy a portálon megjelenjen Az üzembe helyezés befejeződött üzenet.
Válassza az Ugrás az erőforrásra lehetőséget, és lépjen az Azure Cosmos DB-fiók oldalára.
A fiók kapcsolati adatainak lekérése
Kérje le a kapcsolati sztring adatokat az Azure Portalról, és másolja a Java konfigurációs fájlba. A kapcsolati sztring lehetővé teszi az alkalmazás számára, hogy kommunikáljon az üzemeltetett adatbázissal.
Az Azure Portalon nyissa meg az Azure Cosmos DB-fiókját.
Nyissa meg a Kapcsolati sztring panelt.
Másolja ki a CONTACT POINT, PORT, USERNAME és PRIMARY PASSWORD értékeket, amelyekre a következő lépések során lesz szüksége.
A projekt és a függőségek létrehozása
A cikkben használt Java-mintaprojekt a GitHubon található. Futtathatja a dokumentum lépéseit, vagy letöltheti a mintát az azure-cosmos-db-cassandra-java-getting-started adattárból.
A fájlok letöltése után frissítse a fájlon belüli java-examples\src\main\resources\config.properties
kapcsolati sztring adatokat, és futtassa.
cassandra_host=<FILLME_with_CONTACT POINT>
cassandra_port = 10350
cassandra_username=<FILLME_with_USERNAME>
cassandra_password=<FILLME_with_PRIMARY PASSWORD>
A minta az alapoktól való összeállításához kövesse az alábbi lépéseket:
A terminálból vagy parancssorból hozzon létre egy Cassandra-demo nevű új Maven-projektet.
mvn archetype:generate -DgroupId=com.azure.cosmosdb.cassandra -DartifactId=cassandra-demo -DarchetypeArtifactId=maven-archetype-quickstart -DinteractiveMode=false
Keresse meg a
cassandra-demo
mappát. Egy szövegszerkesztővel nyissa meg a létrejöttpom.xml
fájlt.Adja hozzá a projekt által igényelt Cassandra-függőségeket és beépülő modulokat, ahogyan az pom.xml fájlban látható.
A
cassandra-demo\src\main
mappában hozzon létre egy új mappátresources
néven. Az erőforrások mappájában adja hozzá a config.properties és log4j.properties fájlokat:A config.properties fájl tárolja a Cassandra-fiókHOZ tartozó API kapcsolati végpontját és kulcsértékét.
A log4j.properties fájl határozza meg a Cassandra API-val való interakcióhoz szükséges naplózás szintjét.
Keresse meg a
src/main/java/com/azure/cosmosdb/cassandra/
mappát. A cassandra mappán belül hozzon létre egy másik mappátutils
néven. Az új mappa tárolja a Cassandra-fiók API-hoz való csatlakozáshoz szükséges segédprogramosztályokat.Adja hozzá a CassandraUtils osztályt a fürt létrehozásához és a Cassandra-munkamenetek megnyitásához és bezárásához. A fürt az Azure Cosmos DB Cassandra-fiókjához tartozó API-hoz csatlakozik, és egy munkamenetet ad vissza a hozzáféréshez. Használja a Configurations osztályt a kapcsolati sztring adatainak olvasásához a config.properties fájlból.
A Java-minta létrehoz egy adatbázist felhasználói adatokkal, például felhasználónévvel, felhasználói azonosítóval és felhasználói várossal. Meg kell adnia a get és set metódusokat a fő függvényben található felhasználói adatok eléréséhez.
Hozzon létre egy User.java osztályt a mappa alatt a
src/main/java/com/azure/cosmosdb/cassandra/
beolvasási és beállítási módszerekkel.
Egy adatbázis és egy tábla hozzáadása
Ez a szakasz azt ismerteti, hogyan vehet fel adatbázist (kulcsteret) és táblát a CQL használatával.
A
src\main\java\com\azure\cosmosdb\cassandra
mappában hozzon létre egy új mappátrepository
néven.Hozza létre a
UserRepository
Java-osztályt, és adja hozzá a következő kódot: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'"); } }
Lépjen az
src\main\java\com\azure\cosmosdb\cassandra
mappába, és hozzon létre egy új almappátexamples
néven.Hozza létre a
UserProfile
Java-osztályt. Ez az osztály tartalmazza a fő metódust, amely meghívja a korábban definiált createKeyspace és createTable metódusokat: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"); } } }
Az alkalmazás futtatása
Nyisson meg egy parancssort vagy terminálablakot. Illessze be az alábbi kódblokkot.
Ez a kód a könyvtárat (cd) arra a mappaútvonalra módosítja, ahol a projektet létrehozta. Ezután futtatja az
mvn clean install
parancsot acosmosdb-cassandra-examples.jar
fájl célmappán belüli létrehozásához. Végül futtatja a Java-alkalmazást.cd cassandra-demo mvn clean install java -cp target/cosmosdb-cassandra-examples.jar com.azure.cosmosdb.cassandra.examples.UserProfile
A terminálablak értesítéseket jelenít meg a kulcstér és a tábla létrehozásáról.
Most nyissa meg az Azure Portalon az Adatkezelőt, és ellenőrizze, hogy a kulcstér és a tábla létrejött-e.
Következő lépések
Ebben az oktatóanyagban megtanulta, hogyan hozhat létre API-t Cassandra-fiókhoz az Azure Cosmos DB-ben, egy adatbázist és egy táblát Egy Java-alkalmazás használatával. Továbbléphet a következő cikkre: