Rychlý start: Vytvoření aplikace v Javě pro správu dat Azure Cosmos DB pro Apache Cassandra (ovladač v4)

PLATÍ PRO: Cassandra

V tomto rychlém startu vytvoříte účet Azure Cosmos DB for Apache Cassandra a pomocí aplikace Cassandra Java naklonované z GitHubu vytvoříte databázi a kontejner Cassandra pomocí ovladačů Apache Cassandra v4.x Apache Cassandra pro Javu. Azure Cosmos DB je databázová služba s více modely, která umožňuje rychle vytvářet a dotazovat dokumenty, tabulky, klíč-hodnota a grafové databáze s funkcemi globální distribuce a horizontálního škálování.

Požadavky

Poznámka:

Toto je jednoduchý rychlý start, který používá verzi 4 opensourcového ovladače Apache Cassandra pro Javu. Ve většině případů byste měli být schopni připojit existující závislou aplikaci Apache Cassandra v Javě ke službě Azure Cosmos DB for Apache Cassandra bez jakýchkoli změn existujícího kódu. Doporučujeme ale přidat vlastní rozšíření Java, které zahrnuje vlastní zásady opakování a vyrovnávání zatížení a také doporučené nastavení připojení, aby se zlepšilo celkové prostředí. V případě potřeby to řeší omezování rychlosti a převzetí služeb při selhání na úrovni aplikace ve službě Azure Cosmos DB. Tady najdete komplexní ukázku, která implementuje rozšíření.

Vytvoření účtu databáze

Než budete moct vytvořit databázi dokumentů, je potřeba pomocí služby Azure Cosmos DB vytvořit účet Cassandra.

  1. V nabídce webu Azure Portal nebo na domovské stránce vyberte Vytvořit prostředek.

  2. Na stránce Nový vyhledejte a vyberte Azure Cosmos DB.

  3. Na stránce Azure Cosmos DB vyberte Vytvořit.

  4. Na stránce rozhraní API vyberte v části Cassandra možnost Vytvořit.

    Rozhraní API určuje typ účtu, který se má vytvořit. Azure Cosmos DB poskytuje pět rozhraní API: NoSQL pro databáze dokumentů, Gremlin pro grafové databáze, MongoDB pro databáze dokumentů, Azure Table a Cassandra. Pro každé rozhraní API musíte vytvořit samostatný účet.

    Vyberte Cassandra, protože v tomto rychlém startu vytváříte tabulku, která funguje s rozhraním API pro Cassandra.

    Přečtěte si další informace o rozhraní API pro Cassandra.

  5. Na stránce Vytvořit účet služby Azure Cosmos DB zadejte základní nastavení nového účtu služby Azure Cosmos DB.

    Nastavení Hodnota Popis
    Předplatné Vaše předplatné Vyberte předplatné Azure, které chcete pro tento účet služby Azure Cosmos DB použít.
    Skupina prostředků vytvoření nových

    Potom zadejte stejný název jako Název účtu.
    Vyberte, že chcete vytvořit novou IP adresu. Pak zadejte název nové skupiny prostředků pro váš účet. Pro zjednodušení použijte stejný název jako název účtu služby Azure Cosmos DB.
    Název účtu Zadejte jedinečný název. Zadejte jedinečný název, který identifikuje váš účet služby Azure Cosmos DB. Identifikátor URI vašeho účtu se cassandra.cosmos.azure.com připojí k vašemu jedinečnému názvu účtu.

    Název účtu může používat jenom malá písmena, číslice a pomlčky (-) a musí mít délku 3 až 31 znaků.
    Umístění Oblast nejbližší vašim uživatelům Vyberte zeměpisné umístění, ve kterém chcete účet služby Azure Cosmos DB hostovat. Použijte umístění, které je vašim uživatelům nejbližší, abyste jim zajistili nejrychlejší přístup k datům.
    Režim kapacity Zřízená propustnost nebo bezserverová Vyberte Zřízenou propustnost a vytvořte účet v režimu zřízené propustnosti. Vyberte Bezserverový účet a vytvořte účet v bezserverovém režimu.
    Uplatnění slevy na úroveň Free služby Azure Cosmos DB Použít nebo nepoužovat S úrovní Free služby Azure Cosmos DB získáte prvních 1 000 RU/s a 25 GB úložiště zdarma v účtu. Další informace o úrovni Free
    Omezení celkové propustnosti účtu Vyberte, pokud chcete omezit propustnost účtu. To je užitečné, pokud chcete omezit celkovou propustnost účtu na konkrétní hodnotu.

    Poznámka:

    Pro každé předplatné Azure můžete mít maximálně jeden účet Azure Cosmos DB úrovně Free a při vytváření tohoto účtu se musíte přihlásit. Pokud se vám nezobrazuje možnost použít slevu založenou na úrovni Free, znamená to, že v předplatném už je povolený jiný účet s úrovní Free.

    Stránka nového účtu služby Azure Cosmos DB pro Apache Cassandra

  6. Na kartě Globální distribuce nakonfigurujte následující podrobnosti. Pro účely tohoto rychlého startu můžete ponechat výchozí hodnoty:

    Nastavení Hodnota Popis
    Geografická redundance Zakázat Povolte nebo zakažte globální distribuci vašeho účtu spárováním oblasti s párovou oblastí. Další oblasti můžete do svého účtu přidat později.
    Zápisy do více oblastí Zakázat Funkce zápisu do více oblastí umožňuje využívat zřízenou propustnost pro databáze a kontejnery po celém světě.
    Zóny dostupnosti Zakázat Zóny dostupnosti jsou izolovaná umístění v rámci oblasti Azure. Každou zónu tvoří jedno nebo několik datacenter vybavených nezávislým napájením, chlazením a sítí.

    Poznámka:

    Pokud jako režim kapacity vyberete bezserverový režim, nejsou k dispozici následující možnosti:

    • Použít slevu založenou na bezplatné úrovni
    • Geografická redundance
    • Zápisy do více oblastí
  7. Volitelně můžete nakonfigurovat další podrobnosti na následujících kartách:

    • Sítě – Konfigurace přístupu z virtuální sítě
    • Zásady zálohování – Nakonfigurujte zásady pravidelného nebo průběžného zálohování.
    • Šifrování – Použijte klíč spravovaný službou nebo klíč spravovaný zákazníkem.
    • Značky – Značky jsou páry názvů a hodnot, které umožňují kategorizovat prostředky a zobrazit konsolidovanou fakturaci použitím stejné značky u více prostředků a skupin prostředků.
  8. Vyberte Zkontrolovat a vytvořit.

  9. Zkontrolujte nastavení účtu a pak vyberte Vytvořit. Vytvoření účtu trvá několik minut. Počkejte, až se na portálu zobrazí stránka s textem Vaše nasazení je hotové.

    Podokno Oznámení portálu Azure Portal

  10. Pokud chcete přejít na stránku účtu Azure Cosmos DB, vyberte Přejít k prostředku.

Klonování ukázkové aplikace

Teď přejděme k práci s kódem. Teď naklonujeme aplikaci Cassandra z GitHubu, nastavíme připojovací řetězec a spustíme ji. Přesvědčíte se, jak snadno se pracuje s daty prostřednictvím kódu programu.

  1. Otevřete příkazový řádek. Vytvořte novou složku s názvem git-samples. Pak zavřete příkazový řádek.

    md "C:\git-samples"
    
  2. Otevřete okno terminálu Git, například Git Bash, a pomocí příkazu cd přejděte do nové složky, do které chcete nainstalovat ukázkovou aplikaci.

    cd "C:\git-samples"
    
  3. Ukázkové úložiště naklonujete spuštěním následujícího příkazu. Tento příkaz vytvoří na vašem počítači kopii ukázkové aplikace.

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

Kontrola kódu

Tento krok je nepovinný. Pokud vás zajímá, jak se pomocí kódu vytvoří prostředky databáze, můžete si prohlédnout následující fragmenty kódu. Jinak můžete přeskočit přímo k části Aktualizace připojovacího řetězce. Všechny tyto fragmenty kódu pocházejí ze souboru src/main/java/com/azure/cosmosdb/cassandra/util/CassandraUtils.java .

  • Připojení CqlSession ke službě Azure Cosmos DB pro Apache Cassandra a vrácení relace pro přístup (Cluster objekt z ovladače v3 je nyní zastaralý). Hostitel Cassandra, port, uživatelské jméno a heslo se nastavuje pomocí stránky připojovací řetězec na webu Azure Portal.

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

Následující fragmenty kódu pocházejí ze souboru src/main/java/com/azure/cosmosdb/cassandra/repository/UserRepository.java .

  • Pokud už tento prostor klíčů existuje z předchozího spuštění, přetáhněte ho.

    public void dropKeyspace() {
        String query = "DROP KEYSPACE IF EXISTS "+keyspace+"";
        session.execute(query);
        LOGGER.info("dropped keyspace '"+keyspace+"'");
    } 
    
  • Vytvoří se nový prostor klíčů.

    public void createKeyspace() {
        String query = "CREATE KEYSPACE "+keyspace+" WITH REPLICATION = { 'class' : 'NetworkTopologyStrategy', 'datacenter1' : 1 }";
        session.execute(query);
        LOGGER.info("Created keyspace '"+keyspace+"'");
    }
    
  • Vytvoří se nová tabulka.

      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+"'");
      }
    
  • Entity uživatelů se vkládají pomocí objektu připraveného příkazu.

    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);
    }
    
  • Dotaz pro získání všech informací o uživateli

    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"));
        }
    }
    
  • Dotaz na získání informací o jednom uživateli

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

Aktualizace připojovacího řetězce

Teď se vraťte zpátky na portál Azure Portal, kde najdete informace o připojovacím řetězci, a zkopírujte je do aplikace. Podrobnosti o připojovacím řetězci umožňují vaší aplikaci komunikovat s hostovanou databází.

  1. V účtu služby Azure Cosmos DB na webu Azure Portal vyberte Připojovací řetězec.

    Zobrazení a zkopírování uživatelského jména z webu Azure Portal, stránka Připojovací řetězec

  2. Pomocí tlačítka na pravé straně obrazovky zkopírujte hodnotu KONTAKTNÍ BOD.

  3. Otevřete soubor config.properties ze složky C:\git-samples\azure-cosmosdb-cassandra-java-getting-started\java-examples\src\main\resources.

  4. Vložte hodnotu KONTAKTNÍ BOD z portálu místo <Cassandra endpoint host> na řádku 2.

    Řádek 2 souboru config.properties by teď měl vypadat nějak takto:

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

  5. Vraťte se na portál a zkopírujte hodnotu USERNAME. Vložte hodnotu UŽIVATELSKÉ JMÉNO z portálu místo <cassandra endpoint username> na řádku 4.

    Řádek 4 souboru config.properties by teď měl vypadat nějak takto:

    cassandra_username=cosmos-db-quickstart

  6. Vraťte se na portál a zkopírujte hodnotu PASSWORD. Vložte hodnotu HESLO z portálu místo <cassandra endpoint password> na řádku 5.

    Řádek 5 config.properties by teď měl vypadat nějak takto:

    cassandra_password=2Ggkr662ifxz2Mg...==

  7. Pokud chcete použít konkrétní certifikát TLS/SSL, na řádku 6 nahraďte <SSL key store file location> umístěním certifikátu TLS/SSL. Pokud není zadána hodnota, použije se certifikát JDK nainstalovaný v <JAVA_HOME>/jre/lib/security/cacerts.

  8. Pokud jste změnili řádek 6 tak, aby používal určitý certifikát TLS/SSL, aktualizujte řádek 7 tak, aby používal heslo pro tento certifikát.

  9. Všimněte si, že musíte přidat výchozí oblast (např. West US) pro kontaktní bod, např.

    region=West US

    Důvodem je to, že ovladač v.4x umožňuje spárovat pouze jeden místní řadič domény s kontaktním bodem. Pokud chcete přidat jinou oblast než výchozí (což je oblast, která byla zadána při prvním vytvoření účtu služby Azure Cosmos DB), budete muset při přidávání kontaktního bodu použít místní příponu, např. host-westus.cassandra.cosmos.azure.com.

  10. Uložte soubor config.properties.

Spuštění aplikace v Javě

  1. V okně terminálu Git přejděte pomocí příkazu cd do složky azure-cosmosdb-cassandra-java-getting-started-v4.

    cd "C:\git-samples\azure-cosmosdb-cassandra-java-getting-started-v4"
    
  2. V okně terminálu Git vygenerujte pomocí následujícího příkazu soubor cosmosdb-cassandra-examples.jar.

    mvn clean install
    
  3. V okně terminálu Git pomocí následujícího příkazu spusťte aplikaci v Javě.

    java -cp target/cosmosdb-cassandra-examples.jar com.azure.cosmosdb.cassandra.examples.UserProfile
    

    Okno terminálu zobrazí oznámení o vytvoření prostoru klíčů a tabulky. Potom vybere a vrátí všechny uživatele v tabulce, zobrazí výstup a potom vybere řádek podle ID a zobrazí příslušnou hodnotu.

    Stisknutím kombinace kláves Ctrl+C ukončete provádění programu a zavřete okno konzoly.

  4. Na portálu Azure Portal otevřete Data Explorer, abyste se mohli na tato nová data dotazovat, měnit je a pracovat s nimi.

    Zobrazení dat v Průzkumníku dat – Azure Cosmos DB

Ověření smluv SLA na webu Azure Portal

Azure Portal monitoruje propustnost, úložiště, dostupnost, latenci a konzistenci účtu Služby Azure Cosmos DB. Grafy pro metriky přidružené ke smlouvě SLA (Service Level Agreement) služby Azure Cosmos DB zobrazují hodnotu SLA v porovnání se skutečným výkonem. Tato sada metrik zajišťuje transparentní monitorování smluv SLA.

Kontrola metrik a smluv SLA:

  1. V navigační nabídce účtu služby Azure Cosmos DB vyberte Metriky .

  2. Vyberte kartu, například Latence, a vpravo vyberte časový rámec. Porovnejte skutečné čáry a čáry SLA v grafech.

    Sada metrik Azure Cosmos DB

  3. Zkontrolujte metriky na dalších kartách.

Vyčištění prostředků

Až budete s aplikací a účtem služby Azure Cosmos DB hotovi, můžete odstranit vytvořené prostředky Azure, takže se vám nebudou účtovat další poplatky. Odstranění prostředků:

  1. Na panelu hledání na webu Azure Portal vyhledejte a vyberte skupiny prostředků.

  2. V seznamu vyberte skupinu prostředků, kterou jste vytvořili pro účely tohoto rychlého startu.

    Vyberte skupinu prostředků, která se má odstranit.

  3. Na stránce Přehled skupiny prostředků vyberte Odstranit skupinu prostředků.

    Odstranění skupiny prostředků

  4. V dalším okně zadejte název skupiny prostředků, která se má odstranit, a pak vyberte Odstranit.

Další kroky

V tomto rychlém startu jste zjistili, jak vytvořit účet služby Azure Cosmos DB s rozhraním API pro Cassandra a spustit aplikaci Cassandra v Javě, která vytvoří databázi a kontejner Cassandra. Do účtu služby Azure Cosmos DB teď můžete importovat další data.