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 olyan alkalmazásokkal rendelkezhet, amelyek kulcs-érték párokat használnak. Az Azure Cosmos DB-ben a Cassandra-fiók API-ját használhatja a kulcs/érték adatok tárolásához. 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á adatbázist (más néven kulcsteret) és hogyan adhat hozzá egy táblát. A Java-alkalmazás a Java-illesztőprogram használatával hoz létre egy 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 nem rendelkezik Azure-előfizetéssel, mindössze néhány perc alatt létrehozhat egy ingyenes fiókot a virtuális gép létrehozásának megkezdése előtt.

  • Szerezze be a Java Development Kit (JDK) legújabb verzióját.

  • Töltse le és telepítse a Maven bináris archívumot.

    • Ubuntu rendszeren futtathatja az apt-get install maven parancsot a Maven telepítéséhez.

Adatbázisfiók létrehozása

  1. A Azure Portal menüben vagy a Kezdőlapon válassza az Erőforrás létrehozása lehetőséget.

  2. Az Új lapon keresse meg és válassza az Azure Cosmos DB lehetőséget.

  3. Az Azure Cosmos DB oldalon válassza a Létrehozás lehetőséget.

  4. Az API oldalon 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: NoSQL dokumentum-adatbázisokhoz, Gremlin gráfadatbázisokhoz, MongoDB dokumentum-adatbázisokhoz, Azure Table és Cassandra. 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-járól.

  5. Az Azure Cosmos DB-fiók létrehozása lapon adja meg az új Azure Cosmos DB-fiók alapvető beá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óknév
    Válassza az Új létrehozása lehetőséget. Ezután adjon meg egy új erőforráscsoport-nevet a fiókjához. Az egyszerűség kedvéért használja ugyanazt a nevet, mint az Azure Cosmos DB-fiók nevét.
    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 lesz hozzá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özelebbi helyet, hogy a lehető leggyorsabb hozzáférést biztosítsa számukra az adatokhoz.
    Kapacitásmód Kiosztott átviteli sebesség vagy kiszolgáló nélküli A Kiosztott átviteli sebesség lehetőséget választva 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.
    Azure Cosmos DB ingyenes szintű kedvezmény alkalmazása Alkalmaz vagy Nem alkalmazható Az Ingyenes Azure Cosmos DB-szinttel az első 1000 RU/s- és 25 GB-os tárterületet kapja meg ingyenesen egy fiókban. További információ az ingyenes szintről.
    Fiók teljes átviteli sebességének korlátozása Válassza a lehetőséget 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.

    Megjegyzés

    Azure-előfizetésenként legfeljebb egy ingyenes szintű Azure Cosmos DB-fiókkal rendelkezhet, és a fiók létrehozásakor be kell jelentkeznie. Ha nem látja az ingyenes szintű kedvezmény alkalmazásának lehetőségét, az azt jelenti, hogy az előfizetés egy másik fiókja már engedélyezve van az ingyenes szinttel.

    Az Apache Cassandra-hoz készült Azure Cosmos DB új fiókoldala

  6. A Globális terjesztés lapon konfigurálja az alábbi adatokat. Ebben 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 a régió párosításával egy párosított régióval. Később további régiókat is hozzáadhat a fiókjához.
    Többrégiós írók Letiltás A többrégiós írási képesség lehetővé teszi, hogy kihasználja a kiosztott átviteli sebességet az adatbázisok és tárolók számára világszerte.
    Rendelkezésre állási zónák Letiltás Availability Zones egy Azure-régión belüli 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.

    Megjegyzé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:

    • Az ingyenes szint árengedményének alkalmazása
    • Georedundancia
    • Többrégiós írók
  7. Igény szerint további részleteket is konfigurálhat a következő lapokon:

    • Hálózatkezelés – Virtuális hálózatról való hozzáférés konfigurálása.
    • Biztonsági mentési szabályzat – Konfigurálja az időszakos vagy a folyamatos biztonsági mentési szabályzatot.
    • Titkosítás – Használjon szolgáltatás által felügyelt kulcsot vagy ügyfél által felügyelt kulcsot.
    • 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 azáltal, hogy ugyanazt a címkét több erőforrásra és erőforráscsoportra alkalmazza.
  8. Válassza az Áttekintés + létrehozás lehetőséget.

  9. Tekintse át a fiókbeállításokat, majd válassza a Létrehozás lehetőséget. A fiók létrehozása eltarthat néhány percig. Várja meg, amíg a portáloldal megjelenik Az üzembe helyezés befejeződött.

    Az Azure Portal Értesítések panelje

  10. Válassza az Erőforrás megnyitása lehetőséget az Azure Cosmos DB-fiók oldalának megtekintéséhez.

A fiók kapcsolati adatainak lekérése

Kérje le a kapcsolati sztring információkat a Azure Portal, és másolja be 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.

  1. A Azure Portal lépjen az Azure Cosmos DB-fiókjába.

  2. Nyissa meg a Kapcsolati sztring panelt.

  3. 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ó. A dokumentum lépéseit futtathatja, 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 információkat, és futtassa azt.

cassandra_host=<FILLME_with_CONTACT POINT> 
cassandra_port = 10350 
cassandra_username=<FILLME_with_USERNAME> 
cassandra_password=<FILLME_with_PRIMARY PASSWORD> 

Az alábbi lépésekkel hozza létre a mintát az alapoktól:

  1. 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 
    
  2. Keresse meg a cassandra-demo mappát. Egy szövegszerkesztővel nyissa meg a létrejött pom.xml fájlt.

    Adja hozzá a projekthez szükséges Cassandra-függőségeket és -build beépülő modulokat, ahogy az apom.xml fájlban látható.

  3. A cassandra-demo\src\main mappában hozzon létre egy új mappát resources néven. Az erőforrások mappájában adja hozzá a config.properties és log4j.properties fájlokat:

    • A config.properties fájl a Cassandra-fiók API-jának kapcsolati végpontját és kulcsértékét tárolja.

    • A log4j.properties fájl határozza meg a Cassandra API-val való interakcióhoz szükséges naplózás szintjét.

  4. Tallózással 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át utils 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 csatlakozik a Cassandra API-fiókhoz az Azure Cosmos DB-ben, és visszaad egy munkamenetet a hozzáféréshez. Használja a Configurations osztályt a kapcsolati sztring adatainak olvasásához a config.properties fájlból.

  5. 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ó városával. 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 mappában a src/main/java/com/azure/cosmosdb/cassandra/ get és a set metódusokkal.

Egy adatbázis és egy tábla hozzáadása

Ez a szakasz azt ismerteti, hogyan adhat hozzá adatbázist (kulcsteret) és táblát a CQL használatával.

  1. A src\main\java\com\azure\cosmosdb\cassandra mappában hozzon létre egy új mappát repository néven.

  2. 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'"); 
        } 
    } 
    
  3. Lépjen az src\main\java\com\azure\cosmosdb\cassandra mappába, és hozzon létre egy új almappát examples néven.

  4. 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

  1. 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 a cosmosdb-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.

  2. 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: