チュートリアル: Java アプリケーションを使用して Azure Cosmos DB に Cassandra API アカウントを作成し、キーと値のデータを格納するTutorial: Create a Cassandra API account in Azure Cosmos DB by using a Java application to store key/value data

開発者は、キー/値ペアを使用するアプリケーションを持っていることがあります。As a developer, you might have applications that use key/value pairs. Azure Cosmos DB の Cassandra API アカウントを使用して、キーと値のデータを格納できます。You can use a Cassandra API account in Azure Cosmos DB to store the key/value data. このチュートリアルでは、Java アプリケーションを使用して、Azure Cosmos DB に Cassandra API アカウントを作成し、データベース (キースペースとも呼ばれます) を追加してテーブルを追加する方法について説明します。This tutorial describes how to use a Java application to create a Cassandra API account in Azure Cosmos DB, add a database (also called a keyspace), and add a table. Java アプリケーションでは、Java ドライバーを使用して、ユーザー ID、ユーザー名、ユーザーの住所などの詳細情報を格納するユーザー データベースを作成します。The Java application uses the Java driver to create a user database that contains details such as user ID, user name, and user city.

このチュートリアルに含まれるタスクは次のとおりです。This tutorial covers the following tasks:

  • Cassandra データベース アカウントを作成するCreate a Cassandra database account
  • アカウントの接続文字列を取得するGet the account connection string
  • Maven プロジェクトと依存関係を作成するCreate a Maven project and dependencies
  • データベースとテーブルを追加するAdd a database and a table
  • アプリの実行Run the app

前提条件Prerequisites

データベース アカウントの作成Create a database account

  1. Azure Portal にサインインします。Sign in to the Azure portal.

  2. [リソースの作成] > [データベース] > [Azure Cosmos DB] を選択します。Select Create a resource > Databases > Azure Cosmos DB.

  3. [新しいアカウント] ウィンドウで、新しい Azure Cosmos アカウントの設定を入力します。In the New account pane, enter the settings for the new Azure Cosmos account.

    SettingSetting 推奨値Suggested value 説明Description
    IDID 一意の名前を入力しますEnter a unique name この Azure Cosmos アカウントを識別するための一意の名前を入力します。Enter a unique name to identify this Azure Cosmos account.

    指定した ID に cassandra.cosmosdb.azure.com が付加されてコンタクト ポイントが作成されるので、ID は一意であっても識別可能なものを使用してください。Because cassandra.cosmosdb.azure.com is appended to the ID that you provide to create your contact point, use a unique but identifiable ID.
    APIAPI CassandraCassandra API によって、作成するアカウントの種類が決まります。The API determines the type of account to create.
    Cassandra を選択します。この記事では、CQL (Cassandra Query Language) 構文を使用してクエリ可能なワイドカラム データベースを作成するためです。Select Cassandra, because in this article you will create a wide-column database that can be queried by using Cassandra Query Language (CQL) syntax.
    SubscriptionSubscription 該当するサブスクリプションYour subscription お客様がこの Azure Cosmos アカウントに使用したい Azure サブスクリプションを選択します。Select Azure subscription that you want to use for this Azure Cosmos account.
    リソース グループResource Group 名前を入力Enter a name [新規作成] を選択し、お客様のアカウントで使用する新しいリソース グループの名前を入力します。Select Create New, and then enter a new resource-group name for your account. 簡略化のため、ID と同じ名前を使用することができます。For simplicity, you can use the same name as your ID.
    LocationLocation ユーザーに最も近いリージョンを選択Select the region closest to your users お客様の Azure Cosmos アカウントをホストする地理的な場所を選択します。Select the geographic location in which to host your Azure Cosmos account. データに最も高速にアクセスできるよう、お客様のユーザーに最も近い場所を使用します。Use the location that's closest to your users, to give them the fastest access to the data.

    ポータルでアカウントを作成する

  4. 作成 を選択します。Select Create.
    アカウントの作成には数分かかります。The account creation takes a few minutes. リソースが作成された後、ポータルの右側に "デプロイに成功しました" という通知が表示されます。After the resource is created, you can see the Deployment succeeded notification on the right side of the portal.

アカウントの接続の詳細を取得するGet the connection details of your account

Azure portal から接続文字列情報を取得し、Java の構成ファイルにそれをコピーします。Get the connection string information from the Azure portal, and copy it into the Java configuration file. アプリはこの接続文字列によって、ホストされているデータベースと通信できます。The connection string enables your app to communicate with your hosted database.

  1. Azure portal でお客様の Azure Cosmos アカウントに移動します。From the Azure portal, go to your Azure Cosmos account.

  2. [接続文字列] ウィンドウを開きます。Open the Connection String pane.

  3. 次の手順で使用するので、 [コンタクト ポイント][ポート][ユーザー名][プライマリ パスワード] の値をコピーします。Copy the CONTACT POINT, PORT, USERNAME, and PRIMARY PASSWORD values to use in the next steps.

プロジェクトと依存関係を作成するCreate the project and the dependencies

この記事でお客様が使用する Java のサンプル プロジェクトは、GitHub でホストされています。The Java sample project that you use in this article is hosted in GitHub. このドキュメントの手順を実行するか、azure-cosmos-db-cassandra-java-getting-started リポジトリからサンプルをダウンロードすることができます。You can run the steps in this doc or download the sample from the azure-cosmos-db-cassandra-java-getting-started repository.

ファイルをダウンロードしたら、java-examples\src\main\resources\config.properties ファイル内の接続文字列情報を更新して、それを実行します。After you download the files, update the connection string information within the java-examples\src\main\resources\config.properties file and run it.

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

サンプルをゼロからビルドするには、次の手順を使用します。Use the following steps to build the sample from scratch:

  1. ターミナルまたはコマンド プロンプトから、Cassandra-demo という名前で新しい Maven プロジェクトを作成します。From the terminal or command prompt, create a new Maven project called Cassandra-demo.

    mvn archetype:generate -DgroupId=com.azure.cosmosdb.cassandra -DartifactId=cassandra-demo -DarchetypeArtifactId=maven-archetype-quickstart -DinteractiveMode=false 
    
  2. cassandra-demo フォルダーを検索します。Locate the cassandra-demo folder. テキスト エディターを使用して、生成された pom.xml ファイルを開きます。Using a text editor, open the pom.xml file that was generated.

    Cassandra 依存関係を追加し、pom.xml ファイルで示されているように、お客様のプロジェクトに必要なプラグインをビルドします。Add the Cassandra dependencies and build plugins required by your project, as shown in the pom.xml file.

  3. cassandra-demo\src\main フォルダーの下に、resources という名前の新しいフォルダーを作成します。Under the cassandra-demo\src\main folder, create a new folder named resources. resources フォルダーの下に、config.properties ファイルと log4j.properties ファイルを追加します。Under the resources folder, add the config.properties and log4j.properties files:

    • config.properties ファイルには、Cassandra API アカウントの接続エンドポイントとキーの値が格納されます。The config.properties file stores the connection endpoint and key values of the Cassandra API account.

    • log4j.properties ファイルでは、Cassandra API との対話に必要なログ記録のレベルを定義します。The log4j.properties file defines the level of logging required for interacting with the Cassandra API.

  4. src/main/java/com/azure/cosmosdb/cassandra/ フォルダーを参照します。Browse to the src/main/java/com/azure/cosmosdb/cassandra/ folder. cassandra フォルダー内に、utils という名前の別のフォルダーを作成します。Within the cassandra folder, create another folder named utils. 新しいフォルダーには、Cassandra API アカウントに接続するために必要なユーティリティ クラスが格納されます。The new folder stores the utility classes required to connect to the Cassandra API account.

    クラスターを作成し、Cassandra セッションを開いたり閉じたりするには、CassandraUtils クラスを追加します。Add the CassandraUtils class to create the cluster and to open and close Cassandra sessions. クラスターは Azure Cosmos DB の Cassandra API アカウントに接続し、アクセスするセッションを返します。The cluster connects to the Cassandra API account in Azure Cosmos DB and returns a session to access. config.properties ファイルから接続文字列の情報を読み取るには、Configurations クラスを使用します。Use the Configurations class to read connection string information from the config.properties file.

  5. Java のサンプルでは、ユーザー名、ユーザー ID、ユーザーの住所などのユーザー情報が含まれるデータベースを作成します。The Java sample creates a database with user information such as user name, user ID, and user city. main 関数でユーザーの詳細にアクセスするには、get メソッドと set メソッドを定義する必要があります。You need to define get and set methods to access user details in the main function.

    get メソッドと set メソッドを含む User.java クラスを src/main/java/com/azure/cosmosdb/cassandra/ フォルダーに作成します。Create a User.java class under the src/main/java/com/azure/cosmosdb/cassandra/ folder with get and set methods.

データベースとテーブルを追加するAdd a database and a table

このセクションでは、CQL を使用してデータベース (キースペース) とテーブルを追加する方法について説明します。This section describes how to add a database (keyspace) and a table, by using CQL.

  1. src\main\java\com\azure\cosmosdb\cassandra フォルダーの下に、repository という名前の新しいフォルダーを作成します。Under the src\main\java\com\azure\cosmosdb\cassandra folder, create a new folder named repository.

  2. UserRepository Java クラスを作成し、次のコードをそれに追加します。Create the UserRepository Java class and add the following code to it:

    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. src\main\java\com\azure\cosmosdb\cassandra フォルダーを検索し、examples という名前の新しいサブフォルダーを作成します。Locate the src\main\java\com\azure\cosmosdb\cassandra folder, and create a new subfolder named examples.

  4. UserProfile Java クラスを作成します。Create the UserProfile Java class. このクラスには、前に定義した createKeyspace および createTable メソッドを呼び出す main メソッドが含まれます。This class contains the main method that calls the createKeyspace and createTable methods you defined earlier:

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

アプリの実行Run the app

  1. コマンド プロンプトまたはターミナル ウィンドウを開きます。Open a command prompt or terminal window. 次のコード ブロックを貼り付けます。Paste the following code block.

    このコードは、プロジェクトを作成したフォルダー パスにディレクトリを変更 (cd) します。This code changes the directory (cd) to the folder path where you created the project. 次に、mvn clean install コマンドを実行して、ターゲット フォルダー内に cosmosdb-cassandra-examples.jar ファイルを生成します。Then, it runs the mvn clean install command to generate the cosmosdb-cassandra-examples.jar file within the target folder. 最後に、Java アプリケーションを実行します。Finally, it runs the Java application.

    cd cassandra-demo
    
    mvn clean install 
    
    java -cp target/cosmosdb-cassandra-examples.jar com.azure.cosmosdb.cassandra.examples.UserProfile 
    

    ターミナル ウィンドウに、キースペースとテーブルが作成されたという通知が表示されます。The terminal window displays notifications that the keyspace and table are created.

  2. Azure portal でデータ エクスプローラーを開き、キースペースとテーブルが作成されたことを確認します。Now, in the Azure portal, open Data Explorer to confirm that the keyspace and table were created.

次の手順Next steps

このチュートリアルでは、Java アプリケーションを使用して、Azure Cosmos DB の Cassandra API アカウント、データベース、テーブルを作成する方法を学習しました。In this tutorial, you've learned how to create a Cassandra API account in Azure Cosmos DB, a database, and a table by using a Java application. 次の記事に進むことができます。You can now proceed to the next article: