Megosztás a következőn keresztül:


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

A KÖVETKEZŐKRE VONATKOZIK: Cassandra

Ebben a rövid útmutatóban létrehoz egy Azure Cosmos DB-t az Apache Cassandra-fiókhoz, és a GitHubról klónozott Cassandra Java-alkalmazással létrehoz egy Cassandra-adatbázist és -tárolót a Java v4.x Apache Cassandra-illesztőprogramjaival . Az Azure Cosmos DB egy többmodelles adatbázis-szolgáltatás, amely lehetővé teszi dokumentum-, tábla-, kulcs-érték- és gráfadatbázisok gyors létrehozását és lekérdezését globális terjesztési és horizontális méretezési képességekkel.

Előfeltételek

Feljegyzés

Ez egy egyszerű rövid útmutató, amely a Java-hoz készült nyílt forráskódú Apache Cassandra-illesztőprogram 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 Azure Cosmos DB for Apache Cassandra-hoz 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. Ez a sebességkorlátozás és az alkalmazásszintű feladatátvétel kezelése az Azure Cosmos DB-ben, ahol szükséges. 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. Az Azure Portal menüjében vagy a Kezdőlapon válassza az Erőforrás létrehozása elemet.

  2. Az Új lapon keresse meg és válassza ki az Azure Cosmos DB-t.

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

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

  5. 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 neve
    Vá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.

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

  6. 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
  7. 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.
  8. Válassza az Áttekintés + létrehozás lehetőséget.

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

    Az Azure Portal Értesítések panelje

  10. Válassza az Ugrás az erőforrásra lehetőséget, és lépjen az Azure Cosmos DB-fiók oldalára.

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, milyen egyszerű az adatokkal programozott módon dolgozni.

  1. Nyisson meg egy parancssorablakot. 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. Az alábbi parancs futtatásával klónozhatja a mintatárházat. 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 rendszer csatlakozik az Apache Cassandra 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ó az Azure Portal kapcsolati sztring lapján van beállítva.

        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.

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

    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ásobjektum használatával lesznek 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ói információ 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. Az 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. sorának most a következőhöz hasonlónak kell lennie:

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

  5. Lépjen vissza a portálra, és másolja ki a FELHASZNÁLÓNÉV é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. sorának most a következőhöz hasonlónak kell lennie:

    cassandra_username=cosmos-db-quickstart

  6. Lépjen vissza a portálra, és másolja ki a 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. sorának most a következőhöz hasonlónak kell lennie:

    cassandra_password=2Ggkr662ifxz2Mg...==

  7. A 6. sorban, ha egy adott TLS/SSL-tanúsítványt szeretne használni, cserélje le <SSL key store file location> 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 hozzá kell adnia a kapcsolattartási pont alapértelmezett régióját (pl. West US

    region=West US

    Ennek az az oka, hogy a v.4x illesztő csak egy helyi tartományvezérlőt tesz lehetővé a kapcsolattartási ponttal való párosításához. 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 a kapcsolattartó pont hozzáadásakor regionális utótagot kell használnia, 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.

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

  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 az Adatkezelőben – Azure Cosmos DB

Tekintse át az SLA-kat az Azure Portalon

Az Azure Portal figyeli az Azure Cosmos DB-fiók átviteli sebességét, tárhelyé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ékét jelenítik meg a tényleges teljesítményhez képest. Ez a metrikákból álló csomag átláthatóvá teszi az SLA-k monitorozását.

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

  1. Válassza a Metrikákat az Azure Cosmos DB-fiók navigációs menüjében.

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

    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, hogy ne járjon további költségekkel. Az erőforrások törlése:

  1. Az Azure Portal keresősávján keresse meg és válassza ki az erőforráscsoportokat.

  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 cassandra-adatbázist és -tárolót hoz létre. Mostantól további adatokat importálhat az Azure Cosmos DB-fiókjába.