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
- Egy Azure-fiók, aktív előfizetéssel. Hozzon létre egyet ingyen. Vagy ingyenesen kipróbálhatja az Azure Cosmos DB-t Azure-előfizetés nélkül.
- Java Development Kit (JDK) 8. Mutasson a
JAVA_HOME
környezeti változóra arra a mappára, ahová a JDK telepítve van. - Egy Maven bináris archívum. Az Ubuntu rendszeren futtassa a parancsot
apt-get install maven
a Maven telepítéséhez. - Git. Az Ubuntu rendszeren futtassa a parancsot
sudo apt-get install git
a Git telepítéséhez.
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.
A Azure Portal menüben vagy a Kezdőlapon válassza az Erőforrás létrehozása lehetőséget.
Az Új lapon keresse meg és válassza az Azure Cosmos DB lehetőséget.
Az Azure Cosmos DB oldalon válassza a Létrehozás lehetőséget.
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.
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évVá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.
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
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.
Válassza az Áttekintés + létrehozás lehetőséget.
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.
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.
Nyisson meg egy parancssort. Hozzon létre egy
git-samples
nevű mappát. Ezután zárja be a parancssort.md "C:\git-samples"
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"
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.
A Azure Portal Azure Cosmos DB-fiókjában válassza a Kapcsolati sztring lehetőséget.
A CONTACT POINT érték másolásához használja a képernyő jobb oldalán található gombot.
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.
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
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
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...==
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.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.
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
: .Mentse a config.properties fájlt.
A Java-alkalmazás futtatása
A git terminálablakában a
cd
paranccsal lépjen azazure-cosmosdb-cassandra-java-getting-started-v4
mappába.cd "C:\git-samples\azure-cosmosdb-cassandra-java-getting-started-v4"
A git terminálablakban használja a következő parancsot a
cosmosdb-cassandra-examples.jar
fájl létrehozásához.mvn clean install
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.
Ha megnyitja az Adatkezelőt az Azure Portalon, lekérdezheti és módosíthatja és használhatja az új adatokat.
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:
Az Azure Cosmos DB-fiók navigációs menüjében válassza a Metrikák lehetőséget.
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.
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:
A Azure Portal Keresősávon keresse meg és válassza az Erőforráscsoportok lehetőséget.
A listából válassza ki a rövid útmutatóhoz létrehozott erőforráscsoportot.
Az erőforráscsoport Áttekintés lapján válassza az Erőforráscsoport törlése lehetőséget.
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.