Szybki start: tworzenie aplikacji Java do zarządzania danymi usługi Azure Cosmos DB dla bazy danych Apache Cassandra (sterownik w wersji 3)

DOTYCZY: Cassandra

W tym przewodniku Szybki start utworzysz konto usługi Azure Cosmos DB dla bazy danych Apache Cassandra i użyjesz aplikacji Java Cassandra sklonowanej z usługi GitHub, aby utworzyć bazę danych i kontener Cassandra przy użyciu sterowników Apache Cassandra w wersji 3.x dla języka Java. Azure Cosmos DB to wielomodelowa usługa bazy danych, która umożliwia szybkie tworzenie dokumentów, tabel, par klucz-wartość i grafowych baz danych z globalną dystrybucją i możliwościami skalowania w poziomie.

Wymagania wstępne

Uwaga

Jest to prosty przewodnik Szybki start korzystający z wersji 3 sterownika Apache Cassandra typu open source dla języka Java. W większości przypadków powinno być możliwe połączenie istniejącej aplikacji Java zależnej od usługi Apache Cassandra z usługą Azure Cosmos DB dla bazy danych Apache Cassandra bez żadnych zmian w istniejącym kodzie. Zalecamy jednak dodanie naszego niestandardowego rozszerzenia Java, które obejmuje niestandardowe zasady ponawiania i równoważenia obciążenia, aby uzyskać lepsze ogólne środowisko. Ma to na celu obsługę ograniczania szybkości i trybu failover na poziomie aplikacji odpowiednio w usłudze Azure Cosmos DB. W tym miejscu można znaleźć kompleksowy przykład, który implementuje rozszerzenie.

Tworzenie konta bazy danych

Przed utworzeniem bazy danych dokumentów musisz utworzyć konto bazy danych Cassandra z użyciem usługi Azure Cosmos DB.

  1. W menu witryny Azure Portal lub na stronie głównej wybierz pozycję Utwórz zasób.

  2. Na stronie Nowa wyszukaj i wybierz usługę Azure Cosmos DB.

  3. Na stronie Azure Cosmos DB wybierz pozycję Utwórz.

  4. Na stronie interfejsu API wybierz pozycję Utwórz w sekcji Cassandra .

    Interfejs API określa typ konta do utworzenia. Usługa Azure Cosmos DB udostępnia pięć interfejsów API: NoSQL dla baz danych dokumentów, Gremlin dla grafowych baz danych, mongoDB dla baz danych dokumentów, tabel platformy Azure i bazy danych Cassandra. Musisz utworzyć oddzielne konto dla każdego interfejsu API.

    Wybierz pozycję Cassandra, ponieważ w tym przewodniku Szybki start tworzysz tabelę, która współpracuje z interfejsem API dla bazy danych Cassandra.

    Dowiedz się więcej o interfejsie API dla bazy danych Cassandra.

  5. Na stronie Tworzenie konta usługi Azure Cosmos DB wprowadź podstawowe ustawienia nowego konta usługi Azure Cosmos DB.

    Ustawienie Wartość Opis
    Subskrypcja Twoja subskrypcja Wybierz subskrypcję platformy Azure, której chcesz użyć dla tego konta usługi Azure Cosmos DB.
    Grupa zasobów Tworzenie nowego elementu

    Następnie wprowadź taką samą nazwę jak nazwa konta
    Wybierz pozycjęUtwórz nowy. Następnie wprowadź nową nazwę grupy zasobów dla swojego konta. Dla uproszczenia użyj tej samej nazwy co nazwa konta usługi Azure Cosmos DB.
    Nazwa konta Wprowadź unikatową nazwę Wprowadź unikatową nazwę do identyfikacji konta usługi Azure Cosmos DB. Identyfikator URI konta zostanie cassandra.cosmos.azure.com dołączony do unikatowej nazwy konta.

    Nazwa konta może używać tylko małych liter, cyfr i łączników (-) i musi zawierać od 3 do 31 znaków.
    Lokalizacja Region najbliżej Twoich użytkowników Wybierz lokalizację geograficzną, w której będzie hostowane konto usługi Azure Cosmos DB. Użyj lokalizacji znajdującej się najbliżej Twoich użytkowników, aby zapewnić im najszybszy dostęp do danych.
    Tryb wydajności Aprowizowana przepływność lub bezserwerowa Wybierz pozycję Aprowizowana przepływność , aby utworzyć konto w trybie aprowizowanej przepływności . Wybierz pozycję Bezserwerowa , aby utworzyć konto w trybie bezserwerowym .
    Stosowanie rabatu za bezpłatną warstwę usługi Azure Cosmos DB Zastosuj lub nie zastosuj W przypadku warstwy Bezpłatna usługi Azure Cosmos DB uzyskasz bezpłatnie pierwsze 1000 RU/s i 25 GB miejsca do magazynowania na koncie. Dowiedz się więcej o warstwie Bezpłatna.
    Ograniczanie całkowitej przepływności konta Wybierz, aby ograniczyć przepływność konta Jest to przydatne, jeśli chcesz ograniczyć całkowitą przepływność konta do określonej wartości.

    Uwaga

    W ramach jednej subskrypcji platformy Azure można korzystać z maksymalnie jednego konta usługi Azure Cosmos DB w warstwie Bezpłatna. Tę opcję należy wybrać podczas tworzenia konta. Jeśli opcja zastosowania rabatu na podstawie warstwy Bezpłatna nie jest widoczna, inne konto w subskrypcji już korzysta z warstwy Bezpłatna.

    Nowa strona konta usługi Azure Cosmos DB dla bazy danych Apache Cassandra

  6. Na karcie Dystrybucja globalna skonfiguruj następujące szczegóły. Możesz pozostawić wartości domyślne na potrzeby tego przewodnika Szybki start:

    Ustawienie Wartość Opis
    Nadmiarowość geograficzna Wyłącz Włącz lub wyłącz dystrybucję globalną na koncie, łącząc region z regionem pary. Później możesz dodać więcej regionów do swojego konta.
    Moduły zapisujące obsługujące wiele regionów Wyłącz Funkcja zapisu w wielu regionach umożliwia wykorzystanie aprowizowanej przepływności dla baz danych i kontenerów na całym świecie.
    Strefy dostępności Wyłącz Strefy dostępności są izolowanymi lokalizacjami w regionie świadczenia usługi Azure. Każda strefa składa się z co najmniej jednego centrum danych wyposażonego w niezależne zasilanie, chłodzenie i sieć.

    Uwaga

    Następujące opcje nie są dostępne w przypadku wybrania opcji Bezserwerowa jako tryb pojemności:

    • Zastosuj rabat na podstawie warstwy Bezpłatna
    • Nadmiarowość geograficzna
    • Moduły zapisujące obsługujące wiele regionów
  7. Opcjonalnie możesz skonfigurować dodatkowe szczegóły na następujących kartach:

  8. Wybierz pozycję Przejrzyj i utwórz.

  9. Przejrzyj ustawienia konta, a następnie wybierz pozycję Utwórz. Utworzenie konta trwa kilka minut. Poczekaj na wyświetlenie komunikatu Wdrożenie zostało ukończone na stronie portalu.

    Okienko Powiadomienia w witrynie Azure Portal

  10. Wybierz pozycję Przejdź do zasobu, aby przejść do strony konta usługi Azure Cosmos DB.

Klonowanie przykładowej aplikacji

Teraz przejdźmy do pracy z kodem. Sklonujemy aplikację bazy danych Cassandra z serwisu GitHub, ustawimy parametry połączenia i uruchomimy ją. Zobaczysz, jak łatwo jest pracować programowo z danymi.

  1. Otwórz wiersz polecenia. Utwórz nowy folder o nazwie git-samples. Następnie zamknij wiersz polecenia.

    md "C:\git-samples"
    
  2. Otwórz okno terminala usługi Git, np. git bash, i użyj polecenia cd, aby przejść do nowego folderu instalacji aplikacji przykładowej.

    cd "C:\git-samples"
    
  3. Uruchom następujące polecenie w celu sklonowania przykładowego repozytorium. To polecenie tworzy kopię aplikacji przykładowej na komputerze.

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

Przeglądanie kodu

Ta czynność jest opcjonalna. Jeśli chcesz dowiedzieć się, jak kod tworzy zasoby bazy danych, możesz przejrzeć poniższe fragmenty kodu. W przeciwnym razie możesz od razu przejść do sekcji Aktualizacja parametrów połączenia. Wszystkie te fragmenty kodu pochodzą z pliku src/main/java/com/azure/cosmosdb/cassandra/util/CassandraUtils.java .

  • Ustawiono opcje hosta, portu, nazwy użytkownika, hasła i protokołu TLS/SSL. Informacje o parametrach połączenia pochodzą ze strony parametrów połączenia w witrynie Azure Portal.

    cluster = Cluster.builder().addContactPoint(cassandraHost).withPort(cassandraPort).withCredentials(cassandraUsername, cassandraPassword).withSSL(sslOptions).build();
    
  • Element cluster nawiązuje połączenie z usługą Azure Cosmos DB dla bazy danych Apache Cassandra i zwraca sesję w celu uzyskania dostępu.

    return cluster.connect();
    

Poniższe fragmenty kodu pochodzą z pliku src/main/java/com/azure/cosmosdb/cassandra/repository/UserRepository.java .

  • Utwórz nową przestrzeń kluczy.

    public void createKeyspace() {
        final String query = "CREATE KEYSPACE IF NOT EXISTS uprofile WITH replication = {'class': 'SimpleStrategy', 'replication_factor': '3' } ";
        session.execute(query);
        LOGGER.info("Created keyspace 'uprofile'");
    }
    
  • Utwórz nową tabelę.

    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'");
    }
    
  • Wstaw jednostki użytkowników przy użyciu obiektu przygotowanej instrukcji.

    public PreparedStatement prepareInsertStatement() {
        final String insertStatement = "INSERT INTO  uprofile.user (user_id, user_name, user_bcity) VALUES (?,?,?)";
        return session.prepare(insertStatement);
    }
    
    public void insertUser(PreparedStatement statement, int id, String name, String city) {
        BoundStatement boundStatement = new BoundStatement(statement);
        session.execute(boundStatement.bind(id, name, city));
    }
    
  • Wyślij zapytanie w celu pobrania informacji o wszystkich użytkownikach.

    public void selectAllUsers() {
        final String query = "SELECT * FROM uprofile.user";
        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"));
        }
    }
    
  • Wyślij zapytanie w celu pobrania informacji o jednym użytkowniku.

    public void selectUser(int id) {
        final String query = "SELECT * FROM uprofile.user 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"));
    }
    

Aktualizowanie parametrów połączenia

Teraz wróć do witryny Azure Portal, aby uzyskać informacje o parametrach połączenia i skopiować je do aplikacji. Szczegóły parametrów połączenia umożliwiają aplikacji komunikowanie się z hostowaną bazą danych.

  1. Na koncie usługi Azure Cosmos DB w Azure Portal wybierz pozycję Parametry połączenia.

    Wyświetlanie i kopiowanie nazwy użytkownika z witryny Portal Azure, strona Parametry połączenia

  2. Użyj przycisku po prawej stronie ekranu, aby skopiować wartość PUNKT KONTAKTU.

  3. Otwórz plik config.properties z folderu C:\git-samples\azure-cosmosdb-cassandra-java-getting-started\java-examples\src\main\resources .

  4. Wklej wartość PUNKT KONTAKTOWY z portalu do lokalizacji <Cassandra endpoint host> w wierszu 2.

    Wiersz 2 pliku config.properties powinien teraz wyglądać podobnie do następującego:

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

  5. Wstecz do portalu i skopiuj wartość USERNAME. Wklej wartość NAZWA UŻYTKOWNIKA z portalu do lokalizacji <cassandra endpoint username> w wierszu 4.

    Wiersz 4 pliku config.properties powinien teraz wyglądać podobnie do następującego:

    cassandra_username=cosmos-db-quickstart

  6. Wstecz do portalu i skopiuj wartość PASSWORD. Wklej wartość HASŁO z portalu do lokalizacji <cassandra endpoint password> w wierszu 5.

    Wiersz 5 pliku config.properties powinien teraz wyglądać podobnie do następującego:

    cassandra_password=2Ggkr662ifxz2Mg...==

  7. W wierszu 6, jeśli chcesz użyć określonego certyfikatu TLS/SSL, zastąp <SSL key store file location> element lokalizacją certyfikatu TLS/SSL. Jeśli wartość nie zostanie podana, używany jest certyfikat JDK zainstalowany w <JAVA_HOME>/jre/lib/security/cacerts.

  8. Jeśli wiersz 6 został zmieniony tak, aby używał określonego certyfikatu TLS/SSL, zaktualizuj wiersz 7, aby użyć hasła dla tego certyfikatu.

  9. Zapisz plik config.properties .

Uruchamianie aplikację języka Java

  1. W oknie terminalu usługi git wpisz polecenie cd i przejdź do folderu azure-cosmosdb-cassandra-java-getting-started.

    cd "C:\git-samples\azure-cosmosdb-cassandra-java-getting-started"
    
  2. W oknie terminalu usługi Git użyj poniższego polecenia, aby wygenerować plik cosmosdb-cassandra-examples.jar.

    mvn clean install
    
  3. W oknie terminalu usługi Git uruchom następujące polecenie, aby uruchomić aplikację języka Java.

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

    W oknie terminalu zostaną wyświetlone powiadomienia o utworzeniu przestrzeni kluczy i tabeli. Następnie zostaną wybrani i zwróceni wszyscy użytkownicy w tabeli oraz pojawią się dane wyjściowe, po czym zostanie wybrany wiersz według identyfikatora i pojawi się wartość.

    Naciśnij klawisze Ctrl+C, aby zatrzymać wykonywanie programu i zamknąć okno konsoli.

  4. W witrynie Azure Portal otwórz Eksploratora danych, aby wykonywać zapytania oraz modyfikować te nowe dane i pracować z nimi.

    Wyświetlanie danych w usłudze Data Explorer — Azure Cosmos DB

Przeglądanie umów SLA w witrynie Azure Portal

Azure Portal monitoruje przepływność konta usługi Azure Cosmos DB, magazyn, dostępność, opóźnienie i spójność. Wykresy metryk skojarzonych z umową dotyczącą poziomu usług (SLA) usługi Azure Cosmos DB pokazują wartość umowy SLA w porównaniu z rzeczywistą wydajnością. Ten zestaw metryk sprawia, że monitorowanie umów SLA jest przezroczyste.

Aby przejrzeć metryki i umowy SLA:

  1. Wybierz pozycję Metryki w menu nawigacji konta usługi Azure Cosmos DB.

  2. Wybierz kartę, taką jak opóźnienie, i wybierz przedział czasu po prawej stronie. Porównaj linie rzeczywiste i umowy SLA na wykresach.

    Zestaw metryk w usłudze Azure Cosmos DB

  3. Przejrzyj metryki na innych kartach.

Czyszczenie zasobów

Po zakończeniu pracy z aplikacją i kontem usługi Azure Cosmos DB możesz usunąć utworzone zasoby platformy Azure, aby nie ponosić dodatkowych opłat. Aby usunąć zasoby:

  1. Na pasku wyszukiwania Azure Portal wyszukaj i wybierz pozycję Grupy zasobów.

  2. Z listy wybierz grupę zasobów utworzoną na potrzeby tego przewodnika Szybki start.

    Wybierz grupę zasobów do usunięcia

  3. Na stronie Przegląd grupy zasobów wybierz pozycję Usuń grupę zasobów.

    Usuwanie grupy zasobów

  4. W następnym oknie wprowadź nazwę grupy zasobów do usunięcia, a następnie wybierz pozycję Usuń.

Następne kroki

W tym przewodniku Szybki start przedstawiono sposób tworzenia konta usługi Azure Cosmos DB za pomocą interfejsu API dla bazy danych Cassandra i uruchamiania aplikacji Java Cassandra, która tworzy bazę danych i kontener Cassandra. Teraz możesz zaimportować dodatkowe dane do konta usługi Azure Cosmos DB.