Udostępnij przez


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: Kasandra

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 Java używa sterownika Java do utworzenia bazy danych użytkownika zawierającej szczegółowe informacje, takie jak identyfikator użytkownika, nazwa użytkownika i miasto użytkownika.

Ten samouczek obejmuje następujące zadania:

  • Utwórz konto bazy danych Cassandra.
  • Pobierz parametry połączenia konta.
  • Utwórz projekt Maven i skonfiguruj zależności.
  • Dodaj bazę danych i tabelę.
  • Uruchom aplikację.

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 w sekcji Cassandra wybierz pozycję Utwórz.

    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 Cassandra, ponieważ w tym samouczku tworzysz tabelę, która współpracuje z interfejsem API dla Cassandra.

    Aby dowiedzieć się więcej na temat interfejsu API dla bazy danych Cassandra, zobacz Co to jest usługa Azure Cosmos DB dla systemu Apache 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óra ma być używana dla tego konta usługi Azure Cosmos DB.
    Grupa zasobów Utwórz nową.

    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, 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 mieć długość 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ę Bezserwerowe , aby utworzyć konto w trybie bezserwerowym .
    Stosowanie rabatu za bezpłatną warstwę usługi Azure Cosmos DB Zastosuj lub nie zastosuj. Dzięki 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 bezpłatnej warstwie.
    Ograniczanie całkowitej przepływności konta Wybierz, aby ograniczyć przepływność konta. Ta opcja jest przydatna, jeśli chcesz ograniczyć łączną przepływność konta do określonej wartości.

    Uwaga

    Możesz mieć maksymalnie jedno konto Azure Cosmos DB w warstwie bezpłatnej na subskrypcję platformy Azure. Musisz wyrazić zgodę podczas tworzenia konta. Jeśli nie widzisz opcji na rabat dla darmowej warstwy, oznacza to, że inne konto w subskrypcji zostało już aktywowane z darmową warstwą.

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

  6. Na karcie Dystrybucja globalna skonfiguruj następujące szczegóły. Użyj wartości domyślnych dla tego samouczka.

    Ustawienie Wartość Opis
    Georedundancja 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.
    Zapisy w wielu regionach Wyłącz Dzięki funkcji zapisu w wielu regionach można korzystać z zapewnionej przepustowości dla baz danych i kontenerów na całym świecie.
    Strefy dostępności Wyłącz Strefy dostępności to izolowane lokalizacje 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ć.

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

    • Zastosuj rabat na poziomie bezpłatnym
    • Nadmiarowość geograficzna
    • Zapisy w wielu regionach
  7. Opcjonalnie możesz skonfigurować inne 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.

    Zrzut ekranu przedstawiający 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 witrynie Azure Portal przejdź do swojego 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 uruchomić kroki opisane w tym artykule 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 pom.xml wygenerowany plik.

    Dodaj zależności systemu 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 resources dodaj pliki config.properties i log4j.properties.

    • Plik config.properties przechowuje wartości punktu końcowego połączenia i 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ę w celu uzyskania dostępu. Użyj klasy Configurations , aby odczytać informacje o parametrach połączenia z config.properties pliku.

  5. Przykładowy język Java tworzy bazę danych z informacjami o użytkowniku, takimi jak nazwa użytkownika, identyfikator użytkownika i miasto użytkownika. Należy zdefiniować metody get i set, aby uzyskać dostęp do szczegółów użytkownika w funkcji głównej.

    Utwórz klasę User.java w folderze src/main/java/com/azure/cosmosdb/cassandra/ zawierającą metody get i set.

Dodawanie bazy danych i tabeli

W tej sekcji opisano sposób dodawania bazy danych (przestrzeni kluczy) i tabeli przy użyciu języka zapytań Cassandra (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. Klasa ta zawiera metodę `main`, która wywołuje zdefiniowane wcześniej metody createKeyspace oraz 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"); 
            } 
        } 
    } 
    

Uruchom aplikację

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

    Ten kod zmienia katalog (cd) na ścieżkę folderu, w której został utworzony 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. W portalu Azure otwórz Eksploratora danych, aby potwierdzić, że utworzono przestrzeń kluczy i tabelę.

Następny krok

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: