クイックスタート: Java と Azure Cosmos DB for MongoDB を使用してコンソール アプリを作成する

適用対象: MongoDB

このクイックスタートでは、Azure portal から Azure Cosmos DB for MongoDB アカウントを作成、管理し、GitHub からクローンした Java SDK アプリを使用してデータを追加します。 Azure Cosmos DB は、マルチモデル データベース サービスです。グローバルな分散と水平方向のスケーリング機能により、ドキュメント データベースやテーブル データベース、キーと値のデータベース、グラフ データベースをすばやく作成し、クエリを実行することができます。

前提条件

データベース アカウントの作成

  1. 新しいブラウザー ウィンドウで、Azure Portal にサインインします。

  2. 左側のメニューで、 [リソースの作成] を選択します。

    Azure portal でリソースを作成する画面のスクリーンショット。

  3. [新規] ページで、[データベース]>[Azure Cosmos DB] の順に選択します。

    Azure portal の [データベース] ウィンドウのスクリーンショット。

  4. [API オプションの選択] ページで、[Azure Cosmos DB for MongoDB]>[作成] を選択します。

    API によって、作成するアカウントの種類が決まります。 このクイックスタートでは MongoDB に対応するコレクションを作成するので、Azure Cosmos DB for MongoDB を選択します。 詳細については、Azure Cosmos DB for MongoDB の概要に関するページを参照してください。

    [API オプションの選択] ウィンドウのスクリーンショット。

  5. [Azure Cosmos DB アカウントの作成] ページで、新しい Azure Cosmos DB アカウントの設定を入力します。

    設定 説明
    サブスクリプション サブスクリプション名 この Azure Cosmos DB アカウントに使用する Azure サブスクリプションを選択します。
    リソース グループ リソース グループ名 リソース グループを選択するか、 [新規作成] を選択し、新しいリソース グループの一意の名前を入力します。
    アカウント名 一意の名前を入力します 自分の Azure Cosmos DB アカウントを識別するための一意の名前を入力します。 アカウント URI は、一意のアカウント名に mongo.cosmos.azure.com が追加されたものになります。

    アカウント名に使用できるのは、小文字、数字、ハイフン (-) のみで、長さは 3 文字から 44 文字の範囲にする必要があります。
    場所 ユーザーに最も近いリージョン Azure Cosmos DB アカウントをホストする地理的な場所を選択します。 データに最も高速にアクセスできるよう、お客様のユーザーに最も近い場所を使用します。
    容量モード プロビジョニング スループットまたはサーバーレス プロビジョニング スループット モードでアカウントを作成するには、 [Provisioned throughput](プロビジョニング スループット) を選択します。 サーバーレス モードでアカウントを作成するには、 [サーバーレス] を選択します。

    : サーバーレス アカウントでサポートされているのは、MongoDB 用 API バージョン 4.2、4.0、3.6 のみです。 バージョンとして 3.2 を選択すると、アカウントにプロビジョニング済みスループット モードが強制されます。
    Apply Azure Cosmos DB free tier discount (Azure Cosmos DB Free レベル割引を適用する) [適用] または [適用しない] Azure Cosmos DB Free レベルのアカウントでは、最初の 1000 RU/s と 25 GB のストレージを無料でご利用いただけます。 Free レベルの詳細を確認してください。
    バージョン 必要なサーバー バージョンを選択する Azure Cosmos DB for MongoDB は、サーバー バージョン 4.2、4.0、3.6、3.2 と互換性があります。 アカウントは、作成した後にアップグレードまたはダウングレードできます。

    Note

    Azure サブスクリプションにつき所有できる Free レベルの Azure Cosmos DB アカウントは 1 つまでです。また、アカウントの作成時にオプトインする必要があります。 Free レベルの割引を適用するオプションが表示されない場合は、サブスクリプション内の別のアカウントが Free レベルで既に有効になっていることを意味します。

    Azure Cosmos DB の新しいアカウントのページのスクリーンショット。

  6. [グローバル分散] タブで、次の詳細を構成します。 このクイックスタートでは、既定値のままでかまいません。

    設定 説明
    geo 冗長性 無効化 リージョンをペア リージョンとペアリングすることによる、アカウントでのグローバル配信を有効または無効にします。 アカウントには、後でさらにリージョンを追加できます。
    マルチリージョン書き込み 無効化 マルチリージョン書き込み機能を使用すると、世界中のデータベースとコンテナーで、プロビジョニングされたスループットを利用できます。

    Note

    [Capacity mode](容量モード) として [サーバーレス] を選択した場合、以下のオプションは利用できません。

    • Apply Free Tier Discount (Free レベルの割引の適用)
    • geo 冗長性
    • マルチリージョン ライター
  7. 必要に応じて、次のタブで追加の詳細を構成できます。

    • [ネットワーク] - 仮想ネットワークからのアクセスを構成します。
    • [バックアップ ポリシー] - 定期的または継続的のいずれかのバックアップ ポリシーを構成します。
    • [暗号化] - サービス マネージド キーまたはカスタマー マネージド キーのいずれかを使用します。
    • [タグ] - タグは名前と値のペアで、同じタグを複数のリソースやリソース グループに適用することでリソースを分類したり、統合した請求を表示したりできるようにします。
  8. [Review + create](レビュー + 作成) を選択します。

  9. アカウントの作成には数分かかります。 ポータルに [Congratulations! Your Azure Cosmos DB for MongoDB account is ready] (おめでとうございます。Azure Cosmos DB for MongoDB アカウントの準備が完了しました) ページが表示されるのを待ちます。

    Azure portal の通知ウィンドウのスクリーンショット。

コレクションの追加

新しいデータベースに db、新しいコレクションに coll という名前を付けます。

Azure portal でデータ エクスプローラー ツールを使用して、Azure Cosmos DB の MongoDB データベースとコンテナー用の API を作成できるようになりました。

  1. [データ エクスプローラー]>[新しいコンテナー] の順に選択します。

    [コンテナーの追加] 領域が右端に表示されます。表示するには、右へスクロールする必要がある場合があります。

    Azure portal の [データ エクスプローラー] の [コンテナーの追加] ウィンドウ

  2. [コンテナーの追加] ページで、新しいコンテナーの設定を入力します。

    設定 提案された値 説明
    データベース ID db 新しいデータベースの名前として「db」と入力します。 データベース名は 1 文字以上 255 文字以内にする必要があります。/, \\, #, ? は使えず、末尾にスペースを入れることもできません。 [Provision database throughput](データベース スループットをプロビジョニングする) オプションをオンにすると、データベースにプロビジョニングされたスループットをデータベース内のすべてのコンテナーにわたって共有できます。 このオプションは、コストの削減にも役立ちます。
    スループット 400 スループットを 400 要求ユニット/秒 (RU/秒) のままにします。 待ち時間を短縮する場合、後でスループットをスケールアップできます。 また、[自動スケーリング モード] を選択することもできます。これにより、必要に応じて動的に増減する RU/秒の範囲が提供されます。
    [コレクション ID] coll 新しいコンテナーの名前として「coll」と入力します。 コンテナー ID には、データベース名と同じ文字要件があります。
    [ストレージ容量] 固定 (10 GB) このアプリケーションに対して [固定 (10 GB)] を選択します。 [無制限] を選択した場合は、Shard Key を作成する必要があります。この場合、挿入されたすべての項目が必要になります。
    シャード キー /_id この記事で説明されているサンプルでは、シャード キーは使用されないため、/_id に設定すると、自動的に生成された ID フィールドがシャード キーとして使用されます。 シャーディング (パーティション分割) の詳細については、「Azure Cosmos DB でのパーティション分割」をご覧ください。

    [OK] を選択します。 新しいデータベースとコンテナーがデータ エクスプローラーに表示されます。

サンプル アプリケーションの複製

それでは、GitHub からアプリをクローンし、接続文字列を設定して実行しましょう。 プログラムでデータを処理することが非常に簡単であることがわかります。

  1. コマンド プロンプトを開いて git-samples という名前の新しいフォルダーを作成し、コマンド プロンプトを閉じます。

    md "C:\git-samples"
    
  2. git bash などの git ターミナル ウィンドウを開いて、cd コマンドを使用して、サンプル アプリをインストールする新しいフォルダーに変更します。

    cd "C:\git-samples"
    
  3. 次のコマンドを実行して、サンプル レポジトリを複製します。 このコマンドは、コンピューター上にサンプル アプリのコピーを作成します。

    git clone https://github.com/Azure-Samples/azure-cosmos-db-mongodb-java-getting-started.git
    
  4. 次に、使い慣れたエディターでコードを開きます。

コードの確認

この手順は省略可能です。 コード内のデータベース リソースの作成方法に関心がある場合は、次のスニペットを確認できます。 関心がない場合は、「接続文字列の更新」に進んでください。

次のスニペットはすべて Program.java ファイルからのものです。

このコンソール アプリは、MongoDB Java ドライバーを使用します。

  • DocumentClient が初期化されます。

    MongoClientURI uri = new MongoClientURI("FILLME");`
    
    MongoClient mongoClient = new MongoClient(uri);            
    
  • 新しいデータベースとコレクションが作成されます。

    MongoDatabase database = mongoClient.getDatabase("db");
    
    MongoCollection<Document> collection = database.getCollection("coll");
    
  • MongoCollection.insertOne を使用していくつかのドキュメントが挿入されます。

    Document document = new Document("fruit", "apple")
    collection.insertOne(document);
    
  • MongoCollection.find を使用していくつかのクエリが実行されます。

    Document queryResult = collection.find(Filters.eq("fruit", "apple")).first();
    System.out.println(queryResult.toJson());    	
    

接続文字列を更新する

ここで Azure Portal に戻り、接続文字列情報を取得し、アプリにコピーします。

  1. Azure Cosmos DB アカウントから [クイック スタート] を選択し、Java を選択して、接続文字列をクリップボードにコピーします。

  2. Program.java ファイルを開き、MongoClientURI コンストラクターの引数を接続文字列で置き換えます。 これで、Azure Cosmos DB と通信するために必要なすべての情報でアプリを更新しました。

コンソール アプリの実行

  1. ターミナルで mvn package を実行し、必要なパッケージをインストールします

  2. ターミナルで mvn exec:java -D exec.mainClass=GetStarted.Program を実行し、Java アプリケーションを起動します。

これで、Robomongo / Studio 3T を使用して、この新しいデータをクエリ、変更、および操作できるようになりました。

Azure Portal での SLA の確認

Azure portal では、Azure Cosmos DB アカウントのスループット、ストレージ、可用性、待ち時間、一貫性が監視されます。 Azure Cosmos DB サービス レベル アグリーメント (SLA) に関連付けられたメトリックのグラフに、実際のパフォーマンスと比較された SLA の値が示されます。 この一連のメトリックによって、SLA の監視が透明化されます。

メトリックと SLA を確認するには:

  1. Azure Cosmos DB アカウントのナビゲーション メニューで [メトリック] を選びます。

  2. [遅延時間] など、タブを選択し、右側で期間を選択します。 グラフ上の [実際][SLA] の線を比較します。

    Azure Cosmos DB の一連のメトリック

  3. 他のタブでメトリックを確認します。

リソースをクリーンアップする

アプリと Azure Cosmos DB アカウントの使用を完了したら、それ以上料金がかからないように、作成した Azure リソースを削除できます。 リソースを削除するには、次の手順に従います。

  1. Azure portal の検索バーで、「リソース グループ」を検索して選択します。

  2. 一覧から、このクイック スタートで作成したリソース グループを選択します。

    削除するリソース グループを選択する

  3. リソース グループの [概要] ページで、[リソース グループの削除] を選択します。

    リソース グループを削除します

  4. 次のウィンドウで、削除するリソース グループの名前を入力し、[削除] を選択します。

次のステップ

このクイックスタートでは、Azure Cosmos DB for MongoDB アカウントを作成する方法や、データ エクスプローラーを使用してデータベースとコンテナーを追加する方法、Java コンソール アプリを使用してデータを追加する方法について学習しました。 これで、Azure Cosmos DB データベースに追加のデータをインポートできるようになりました。

Azure Cosmos DB への移行のための容量計画を実行しようとしていますか? 容量計画のために、既存のデータベース クラスターに関する情報を使用できます。