Samouczek: tworzenie interfejsu API dla konta Cassandra w usłudze Azure Cosmos DB przy użyciu aplikacji Java do przechowywania danych klucza/wartości

DOTYCZY: Cassandra

Jako deweloper być może masz aplikacje, które używają par klucz-wartość. Do przechowywania danych klucza/wartości można użyć interfejsu API dla konta Cassandra w usłudze Azure Cosmos DB. W tym samouczku opisano sposób używania aplikacji Java do tworzenia interfejsu API dla konta Cassandra w usłudze Azure Cosmos DB, dodawania bazy danych (nazywanej również przestrzenią kluczy) i dodawania tabeli. Aplikacja języka Java używa sterownika Java do tworzenia bazy danych użytkowników, która zawiera szczegółowe informacje, takie jak identyfikator użytkownika, nazwa użytkownika i miasto użytkownika.

Ten samouczek obejmuje następujące zadania:

  • Tworzenie konta bazy danych Cassandra
  • Pobieranie parametrów połączenia konta
  • Tworzenie projektu Maven i zależności
  • Dodawanie bazy danych i tabeli
  • Uruchamianie aplikacji

Wymagania wstępne

Tworzenie konta bazy danych

  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 rozwiązania 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 warstwie Bezpłatna usługi Azure Cosmos DB uzyskasz pierwsze 1000 RU/s i 25 GB miejsca do magazynowania bezpłatnie 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. Wartości domyślne można pozostawić 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. Możesz dodać więcej regionów do konta później.
    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, jeśli wybierzesz opcję Bezserwerowy 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.

Pobieranie szczegółów połączenia konta

Pobierz informacje o parametrach połączenia z witryny Azure Portal i skopiuj je do pliku konfiguracji środowiska Java. Parametry połączenia umożliwiają aplikacji komunikowanie się z hostowaną bazą danych.

  1. W Azure Portal przejdź do konta usługi Azure Cosmos DB.

  2. Otwórz okienko Parametry połączenia .

  3. Skopiuj wartości PUNKT KONTAKTOWY, PORT, NAZWA UŻYTKOWNIKA i HASŁO PODSTAWOWE do użycia w następnych krokach.

Tworzenie projektu i zależności

Przykładowy projekt języka Java używany w tym artykule jest hostowany w witrynie GitHub. Możesz wykonać kroki opisane w tym dokumencie lub pobrać przykład z repozytorium azure-cosmos-db-cassandra-java-getting-started.

Po pobraniu plików zaktualizuj informacje o parametrach połączenia w pliku java-examples\src\main\resources\config.properties i uruchom go.

cassandra_host=<FILLME_with_CONTACT POINT> 
cassandra_port = 10350 
cassandra_username=<FILLME_with_USERNAME> 
cassandra_password=<FILLME_with_PRIMARY PASSWORD> 

Aby utworzyć przykład od podstaw, wykonaj następujące kroki:

  1. W terminalu lub wierszu polecenia utwórz nowy projekt Maven o nazwie Cassandra-demo.

    mvn archetype:generate -DgroupId=com.azure.cosmosdb.cassandra -DartifactId=cassandra-demo -DarchetypeArtifactId=maven-archetype-quickstart -DinteractiveMode=false 
    
  2. Znajdź folder cassandra-demo. Za pomocą edytora tekstów otwórz wygenerowany plik pom.xml.

    Dodaj zależności bazy danych Cassandra i skompiluj wtyczki wymagane przez projekt, jak pokazano w pliku pom.xml.

  3. W folderze cassandra-demo\src\main utwórz nowy folder o nazwie resources. W folderze zasobów dodaj pliki config.properties i log4j.properties:

    • Plik config.properties przechowuje punkt końcowy połączenia i wartości klucza interfejsu API dla konta Cassandra.

    • Plik log4j.properties definiuje poziom rejestrowania wymagany do interakcji z interfejsem API dla bazy danych Cassandra.

  4. Przejdź do folderu src/main/java/com/azure/cosmosdb/cassandra/. W folderze cassandra utwórz inny folder o nazwie utils. Nowy folder przechowuje klasy narzędzi wymagane do nawiązania połączenia z interfejsem API dla konta Cassandra.

    Dodaj klasę CassandraUtils w celu utworzenia klastra oraz otwarcia i zamknięcia sesji bazy danych Cassandra. Klaster łączy się z interfejsem API dla konta Cassandra w usłudze Azure Cosmos DB i zwraca sesję, aby uzyskać dostęp. Użyj klasy Configurations w celu odczytania informacji o parametrach połączenia z pliku config.properties.

  5. Przykład języka Java tworzy bazę danych z informacjami o użytkownikach, takimi jak nazwa użytkownika, identyfikator użytkownika i miasto użytkownika. Musisz zdefiniować metody get i set, aby uzyskiwać dostęp do szczegółów użytkowników w funkcji głównej.

    Utwórz klasę User.java w folderze src/main/java/com/azure/cosmosdb/cassandra/ przy użyciu metod get i set.

Dodawanie bazy danych i tabeli

Ta sekcja zawiera opis sposobu dodawania bazy danych (przestrzeni kluczy) oraz tabeli za pomocą języka CQL.

  1. W folderze src\main\java\com\azure\cosmosdb\cassandra utwórz nowy folder o nazwie repository.

  2. Utwórz klasę języka Java UserRepository i dodaj do niej następujący kod:

    package com.azure.cosmosdb.cassandra.repository; 
    import java.util.List; 
    import com.datastax.driver.core.BoundStatement; 
    import com.datastax.driver.core.PreparedStatement; 
    import com.datastax.driver.core.Row; 
    import com.datastax.driver.core.Session; 
    import org.slf4j.Logger; 
    import org.slf4j.LoggerFactory; 
    
    /** 
     * Create a Cassandra session 
     */ 
    public class UserRepository { 
    
        private static final Logger LOGGER = LoggerFactory.getLogger(UserRepository.class); 
        private Session session; 
        public UserRepository(Session session) { 
            this.session = session; 
        } 
    
        /** 
        * Create keyspace uprofile in cassandra DB 
         */ 
    
        public void createKeyspace() { 
             final String query = "CREATE KEYSPACE IF NOT EXISTS uprofile WITH REPLICATION = { 'class' : 'NetworkTopologyStrategy', 'datacenter1' : 1 }"; 
            session.execute(query); 
            LOGGER.info("Created keyspace 'uprofile'"); 
        } 
    
        /** 
         * Create user table in cassandra DB 
         */ 
    
        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'"); 
        } 
    } 
    
  3. Znajdź folder src\main\java\com\azure\cosmosdb\cassandra i utwórz nowy podfolder o nazwie examples.

  4. Utwórz klasę języka Java UserProfile. Ta klasa zawiera metodę główną, która wywołuje zdefiniowane wcześniej metody createKeyspace i createTable:

    package com.azure.cosmosdb.cassandra.examples; 
    import java.io.IOException; 
    import com.azure.cosmosdb.cassandra.repository.UserRepository; 
    import com.azure.cosmosdb.cassandra.util.CassandraUtils; 
    import com.datastax.driver.core.PreparedStatement; 
    import com.datastax.driver.core.Session; 
    import org.slf4j.Logger; 
    import org.slf4j.LoggerFactory; 
    
    /** 
     * Example class which will demonstrate following operations on Cassandra Database on CosmosDB 
     * - Create Keyspace 
     * - Create Table 
     * - Insert Rows 
     * - Select all data from a table 
     * - Select a row from a table 
     */ 
    
    public class UserProfile { 
    
        private static final Logger LOGGER = LoggerFactory.getLogger(UserProfile.class); 
        public static void main(String[] s) throws Exception { 
            CassandraUtils utils = new CassandraUtils(); 
            Session cassandraSession = utils.getSession(); 
    
            try { 
                UserRepository repository = new UserRepository(cassandraSession); 
                //Create keyspace in cassandra database 
                repository.createKeyspace(); 
                //Create table in cassandra database 
                repository.createTable(); 
    
            } finally { 
                utils.close(); 
                LOGGER.info("Please delete your table after verifying the presence of the data in portal or from CQL"); 
            } 
        } 
    } 
    

Uruchamianie aplikacji

  1. Otwórz wiersz polecenia lub okno terminala. Wklej poniższy blok kodu.

    Ten kod zmienia katalog (polecenie cd) na ścieżkę folderu, w której utworzono projekt. Następnie jest uruchamiane polecenie mvn clean install w celu wygenerowania pliku cosmosdb-cassandra-examples.jar w folderze docelowym. Na koniec kod uruchamia aplikację języka Java.

    cd cassandra-demo
    
    mvn clean install 
    
    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.

  2. Teraz w witrynie Azure Portal otwórz Eksplorator danych, aby potwierdzić utworzenie przestrzeni kluczy i tabeli.

Następne kroki

W tym samouczku przedstawiono sposób tworzenia interfejsu API dla konta Cassandra w usłudze Azure Cosmos DB, bazie danych i tabeli przy użyciu aplikacji Java. Teraz możesz przejść do następnego artykułu: