クイックスタート: Java と Azure Cosmos DB for MongoDB を使用してコンソール アプリを作成する
適用対象: MongoDB
このクイックスタートでは、Azure portal から Azure Cosmos DB for MongoDB アカウントを作成、管理し、GitHub からクローンした Java SDK アプリを使用してデータを追加します。 Azure Cosmos DB は、マルチモデル データベース サービスです。グローバルな分散と水平方向のスケーリング機能により、ドキュメント データベースやテーブル データベース、キーと値のデータベース、グラフ データベースをすばやく作成し、クエリを実行することができます。
前提条件
- アクティブなサブスクリプションが含まれる Azure アカウント。 無料で作成できます。 または、Azure サブスクリプションなしで、Azure Cosmos DB を無料で試すこともできます。 Azure Cosmos DB Emulator を使用することもできます。接続文字列には、
.mongodb://localhost:C2y6yDjf5/R+ob0N8A7Cgv30VRDJIWEHLM+4QDU5DE2nQ9nDuVTqobD4b8mGGyPMbIZnqyMsEcaGQy67XIw/Jw==@localhost:10255/admin?ssl=true
を使用してください。 - Java Development Kit (JDK) バージョン 8。
- Maven。 または、
apt-get install maven
を実行して Maven をインストールします。 - Git.
データベース アカウントの作成
新しいブラウザー ウィンドウで、Azure Portal にサインインします。
左側のメニューで、 [リソースの作成] を選択します。
[新規] ページで、[データベース]>[Azure Cosmos DB] の順に選択します。
[API オプションの選択] ページで、[Azure Cosmos DB for MongoDB]>[作成] を選択します。
API によって、作成するアカウントの種類が決まります。 このクイックスタートでは MongoDB に対応するコレクションを作成するので、Azure Cosmos DB for MongoDB を選択します。 詳細については、Azure Cosmos DB for MongoDB の概要に関するページを参照してください。
[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 レベルで既に有効になっていることを意味します。
[グローバル分散] タブで、次の詳細を構成します。 このクイックスタートでは、既定値のままでかまいません。
設定 値 説明 geo 冗長性 無効化 リージョンをペア リージョンとペアリングすることによる、アカウントでのグローバル配信を有効または無効にします。 アカウントには、後でさらにリージョンを追加できます。 マルチリージョン書き込み 無効化 マルチリージョン書き込み機能を使用すると、世界中のデータベースとコンテナーで、プロビジョニングされたスループットを利用できます。 Note
[Capacity mode](容量モード) として [サーバーレス] を選択した場合、以下のオプションは利用できません。
- Apply Free Tier Discount (Free レベルの割引の適用)
- geo 冗長性
- マルチリージョン ライター
必要に応じて、次のタブで追加の詳細を構成できます。
- [ネットワーク] - 仮想ネットワークからのアクセスを構成します。
- [バックアップ ポリシー] - 定期的または継続的のいずれかのバックアップ ポリシーを構成します。
- [暗号化] - サービス マネージド キーまたはカスタマー マネージド キーのいずれかを使用します。
- [タグ] - タグは名前と値のペアで、同じタグを複数のリソースやリソース グループに適用することでリソースを分類したり、統合した請求を表示したりできるようにします。
[Review + create](レビュー + 作成) を選択します。
アカウントの作成には数分かかります。 ポータルに [Congratulations! Your Azure Cosmos DB for MongoDB account is ready] (おめでとうございます。Azure Cosmos DB for MongoDB アカウントの準備が完了しました) ページが表示されるのを待ちます。
コレクションの追加
新しいデータベースに db、新しいコレクションに coll という名前を付けます。
Azure portal でデータ エクスプローラー ツールを使用して、Azure Cosmos DB の MongoDB データベースとコンテナー用の API を作成できるようになりました。
[データ エクスプローラー]>[新しいコンテナー] の順に選択します。
[コンテナーの追加] 領域が右端に表示されます。表示するには、右へスクロールする必要がある場合があります。
[コンテナーの追加] ページで、新しいコンテナーの設定を入力します。
設定 提案された値 説明 データベース 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 からアプリをクローンし、接続文字列を設定して実行しましょう。 プログラムでデータを処理することが非常に簡単であることがわかります。
コマンド プロンプトを開いて git-samples という名前の新しいフォルダーを作成し、コマンド プロンプトを閉じます。
md "C:\git-samples"
git bash などの git ターミナル ウィンドウを開いて、
cd
コマンドを使用して、サンプル アプリをインストールする新しいフォルダーに変更します。cd "C:\git-samples"
次のコマンドを実行して、サンプル レポジトリを複製します。 このコマンドは、コンピューター上にサンプル アプリのコピーを作成します。
git clone https://github.com/Azure-Samples/azure-cosmos-db-mongodb-java-getting-started.git
次に、使い慣れたエディターでコードを開きます。
コードの確認
この手順は省略可能です。 コード内のデータベース リソースの作成方法に関心がある場合は、次のスニペットを確認できます。 関心がない場合は、「接続文字列の更新」に進んでください。
次のスニペットはすべて 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 に戻り、接続文字列情報を取得し、アプリにコピーします。
Azure Cosmos DB アカウントから [クイック スタート] を選択し、Java を選択して、接続文字列をクリップボードにコピーします。
Program.java ファイルを開き、MongoClientURI コンストラクターの引数を接続文字列で置き換えます。 これで、Azure Cosmos DB と通信するために必要なすべての情報でアプリを更新しました。
コンソール アプリの実行
ターミナルで
mvn package
を実行し、必要なパッケージをインストールしますターミナルで
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 を確認するには:
Azure Cosmos DB アカウントのナビゲーション メニューで [メトリック] を選びます。
[遅延時間] など、タブを選択し、右側で期間を選択します。 グラフ上の [実際] と [SLA] の線を比較します。
他のタブでメトリックを確認します。
リソースをクリーンアップする
アプリと Azure Cosmos DB アカウントの使用を完了したら、それ以上料金がかからないように、作成した Azure リソースを削除できます。 リソースを削除するには、次の手順に従います。
Azure portal の検索バーで、「リソース グループ」を検索して選択します。
一覧から、このクイック スタートで作成したリソース グループを選択します。
リソース グループの [概要] ページで、[リソース グループの削除] を選択します。
次のウィンドウで、削除するリソース グループの名前を入力し、[削除] を選択します。
次のステップ
このクイックスタートでは、Azure Cosmos DB for MongoDB アカウントを作成する方法や、データ エクスプローラーを使用してデータベースとコンテナーを追加する方法、Java コンソール アプリを使用してデータを追加する方法について学習しました。 これで、Azure Cosmos DB データベースに追加のデータをインポートできるようになりました。
Azure Cosmos DB への移行のための容量計画を実行しようとしていますか? 容量計画のために、既存のデータベース クラスターに関する情報を使用できます。
- 既存のデータベース クラスター内の仮想コアとサーバーの数のみがわかっている場合は、仮想コア数または仮想 CPU 数を使用した要求ユニットの見積もりに関するページを参照してください
- 現在のデータベース ワークロードに対する通常の要求レートがわかっている場合は、Azure Cosmos DB Capacity Planner を使用した要求ユニットの見積もりに関するページを参照してください