Rövid útmutató: Java-alkalmazás létrehozása az Apache Cassandra-adatokhoz készült Azure Cosmos DB kezeléséhez (v4-illesztő)

A KÖVETKEZŐKRE VONATKOZIK: Cassandra

Ebben a rövid útmutatóban létrehoz egy Azure Cosmos DB for Apache Cassandra-fiókot, és egy GitHubról klónozott Cassandra Java-alkalmazást használ egy Cassandra-adatbázis és -tároló létrehozásához a Javához készült v4.x Apache Cassandra-illesztőprogramok használatával. Az Azure Cosmos DB egy többmodelles adatbázis-szolgáltatás, amellyel gyorsan hozhat létre és kérdezhet le dokumentum-, tábla-, kulcs-érték- és gráfadatbázisokat globális elosztási és horizontális skálázási képességekkel.

Előfeltételek

Megjegyzés

Ez egy egyszerű rövid útmutató, amely a Java nyílt forráskódú Apache Cassandra-illesztőprogramjának 4-es verzióját használja. A legtöbb esetben képesnek kell lennie egy meglévő Apache Cassandra-függő Java-alkalmazást csatlakoztatni az Apache Cassandra-hoz készült Azure Cosmos DB-hez a meglévő kód módosítása nélkül. Javasoljuk azonban az egyéni Java-bővítmény hozzáadását, amely magában foglalja az egyéni újrapróbálkozási és terheléselosztási szabályzatokat, valamint az ajánlott kapcsolati beállításokat a jobb általános élmény érdekében. Ennek célja, hogy szükség esetén kezelje a sebességkorlátozást és az alkalmazásszintű feladatátvételt az Azure Cosmos DB-ben. Itt talál egy átfogó mintát, amely implementálja a bővítményt.

Adatbázisfiók létrehozása

A dokumentum-adatbázis létrehozásához először létre kell hoznia egy Cassandra-fiókot az Azure Cosmos DB segítségével.

  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 mintaalkalmazás klónozása

Most pedig váltsunk át kódok használatára. A következő lépésekben elvégezheti a Cassandra-alkalmazás klónozását a GitHubról, beállíthatja a kapcsolati sztringet, és futtathatja az alkalmazást. Látni fogja, mennyire egyszerű programozott módon dolgozni az adatokkal.

  1. Nyisson meg egy parancssort. Hozzon létre egy git-samples nevű mappát. Ezután zárja be a parancssort.

    md "C:\git-samples"
    
  2. Nyisson meg egy git terminálablakot, például a git bash eszközt, és a cd parancs használatával váltson az új mappára, ahol telepíteni szeretné a mintaalkalmazást.

    cd "C:\git-samples"
    
  3. Futtassa a következő parancsot a mintatárház klónozásához. Ez a parancs másolatot hoz létre a mintaalkalmazásról az Ön számítógépén.

    git clone https://github.com/Azure-Samples/azure-cosmos-db-cassandra-java-getting-started-v4.git
    

A kód áttekintése

Ez a lépés nem kötelező. Ha meg szeretné ismerni, hogyan hozza létre a kód az adatbázis erőforrásait, tekintse át a következő kódrészleteket. Egyéb esetben ugorhat A kapcsolati sztring frissítése szakaszra. Ezek a kódrészletek mind az src/main/java/com/azure/cosmosdb/cassandra/util/CassandraUtils.java fájlból származnak.

  • A CqlSession csatlakozik az Apache Cassandrához készült Azure Cosmos DB-hez, és visszaad egy munkamenetet a hozzáféréshez (Cluster a v3-illesztő objektuma elavult). A Cassandra-gazdagép, a port, a felhasználónév és a jelszó a Azure Portal kapcsolati sztring lapján állítható be.

        this.session = CqlSession.builder().withSslContext(sc)
                .addContactPoint(new InetSocketAddress(cassandraHost, cassandraPort)).withLocalDatacenter(region)
                .withAuthCredentials(cassandraUsername, cassandraPassword).build();
    

A következő kódrészletek az src/main/java/com/azure/cosmosdb/cassandra/repository/UserRepository.java fájlból származnak .

  • Ha már létezik egy korábbi futtatásból, dobja el a kulcsteret.

    public void dropKeyspace() {
        String query = "DROP KEYSPACE IF EXISTS "+keyspace+"";
        session.execute(query);
        LOGGER.info("dropped keyspace '"+keyspace+"'");
    } 
    
  • A rendszer létrehoz egy új kulcsteret.

    public void createKeyspace() {
        String query = "CREATE KEYSPACE "+keyspace+" WITH REPLICATION = { 'class' : 'NetworkTopologyStrategy', 'datacenter1' : 1 }";
        session.execute(query);
        LOGGER.info("Created keyspace '"+keyspace+"'");
    }
    
  • Létrejön egy új tábla.

      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+"'");
      }
    
  • A felhasználói entitások egy előkészített utasításobjektummal vannak beszúrva.

    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);
    }
    
  • Lekérdezés az összes felhasználói információ lekéréséhez.

    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"));
        }
    }
    
  • Lekérdezés egyetlen felhasználó adatainak lekéréséhez.

    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"));
    }
    

A kapcsolati sztring frissítése

Lépjen vissza az Azure Portalra a kapcsolati sztring adataiért, majd másolja be azokat az alkalmazásba. A kapcsolati sztring részletei lehetővé teszik az alkalmazás számára, hogy kommunikáljon az üzemeltetett adatbázissal.

  1. A Azure Portal Azure Cosmos DB-fiókjában válassza a Kapcsolati sztring lehetőséget.

    Felhasználónév megtekintése és másolás az Azure Portal Kapcsolati sztring oldaláról

  2. A CONTACT POINT érték másolásához használja a képernyő jobb oldalán található gombot.

  3. Nyissa meg a config.properties fájlt a C:\git-samples\azure-cosmosdb-cassandra-java-getting-started\java-examples\src\main\resources mappából.

  4. Illessze be a CONTACT POINT értéket a Portalból a <Cassandra endpoint host> helyére a 2. sorban.

    A config.properties 2. sora ekkor a következőhöz hasonlóan néz ki:

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

  5. Vissza a portálra, és másolja ki a USERNAME értéket. Illessze be a USERNAME értéket a Portalból a 4. sorban található <cassandra endpoint username> érték helyére.

    A config.properties 4. sora ekkor a következőhöz hasonlóan néz ki:

    cassandra_username=cosmos-db-quickstart

  6. Vissza a portálra, és másolja a PASSWORD (JELSZÓ) értéket. Illessze be a PASSWORD értéket a Portalból az 5. sorban található <cassandra endpoint password> érték helyére.

    A config.properties 5. sora ekkor a következőhöz hasonlóan néz ki:

    cassandra_password=2Ggkr662ifxz2Mg...==

  7. Ha egy adott TLS/SSL-tanúsítványt szeretne használni a 6. sorban, cserélje le <SSL key store file location> a elemet a TLS/SSL-tanúsítvány helyére. Ha nincs megadva érték, a rendszer a JAVA_HOME>/jre/lib/security/cacerts helyen <telepített JDK-tanúsítványt használja.

  8. Ha a 6. sort egy adott TLS/SSL-tanúsítvány használatára módosította, frissítse a 7. sort a tanúsítvány jelszavának használatára.

  9. Vegye figyelembe, hogy a kapcsolattartási pont alapértelmezett régióját (pl. West US) kell hozzáadnia, például:

    region=West US

    Ennek az az oka, hogy a v.4x illesztő csak egy helyi tartományvezérlő párosítható a kapcsolati ponttal. Ha az alapértelmezett régiótól eltérő régiót szeretne hozzáadni (amely az Azure Cosmos DB-fiók első létrehozásakor kapott régió), akkor regionális utótagot kell használnia a kapcsolattartási pont hozzáadásakor, például host-westus.cassandra.cosmos.azure.com: .

  10. Mentse a config.properties fájlt.

A Java-alkalmazás futtatása

  1. A git terminálablakában a cd paranccsal lépjen az azure-cosmosdb-cassandra-java-getting-started-v4 mappába.

    cd "C:\git-samples\azure-cosmosdb-cassandra-java-getting-started-v4"
    
  2. A git terminálablakban használja a következő parancsot a cosmosdb-cassandra-examples.jar fájl létrehozásához.

    mvn clean install
    
  3. A git terminálablakban futtassa a következő parancsot a Java-alkalmazás indításához.

    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. Ezt követően kiválasztja és visszaadja a táblában található összes felhasználót, és megjeleníti a kimenetet, majd azonosító alapján kiválaszt egy sort, és megjeleníti az értéket.

    Nyomja le a Ctrl+C billentyűkombinációt a program végrehajtásának leállításához és a konzolablak bezárásához.

  4. Ha megnyitja az Adatkezelőt az Azure Portalon, lekérdezheti és módosíthatja és használhatja az új adatokat.

    Az adatok megtekintése a Data Explorer - Azure Cosmos DB-ben

Tekintse át az SLA-kat az Azure Portalon

A Azure Portal figyeli az Azure Cosmos DB-fiók átviteli sebességét, tárterületét, rendelkezésre állását, késését és konzisztenciáját. Az Azure Cosmos DB szolgáltatásiszint-szerződéshez (SLA) társított metrikák diagramjai az SLA-értéket jelenítik meg a tényleges teljesítményhez képest. Ez a metrikacsomag átláthatóvá teszi az SLA-k monitorozását.

Metrikák és SLA-k áttekintése:

  1. Az Azure Cosmos DB-fiók navigációs menüjében válassza a Metrikák lehetőséget.

  2. Válasszon egy lapot( például Késés), és válasszon ki egy időkeretet a jobb oldalon. Hasonlítsa össze a diagramok Tényleges és SLA vonalait.

    Azure Cosmos DB-metrikák

  3. Tekintse át a metrikákat a többi lapon.

Az erőforrások eltávolítása

Ha végzett az alkalmazással és az Azure Cosmos DB-fiókkal, törölheti a létrehozott Azure-erőforrásokat, így nem kell további díjakat fizetnie. Az erőforrások törlése:

  1. A Azure Portal Keresősávon keresse meg és válassza az Erőforráscsoportok lehetőséget.

  2. A listából válassza ki a rövid útmutatóhoz létrehozott erőforráscsoportot.

    Válassza ki a törölni kívánt erőforráscsoportot

  3. Az erőforráscsoport Áttekintés lapján válassza az Erőforráscsoport törlése lehetőséget.

    Az erőforráscsoport törlése

  4. A következő ablakban adja meg a törölni kívánt erőforráscsoport nevét, majd válassza a Törlés lehetőséget.

Következő lépések

Ebben a rövid útmutatóban megtanulta, hogyan hozhat létre Azure Cosmos DB-fiókot a Cassandra API-val, és hogyan futtathat egy Cassandra Java-alkalmazást, amely létrehoz egy Cassandra-adatbázist és -tárolót. Most már további adatokat importálhat az Azure Cosmos DB-fiókjába.