Azure Cosmos DB for NoSQL: Java SDK v4 のサンプル
適用対象: NoSQL
重要
Java SDK v4 の詳細については、Azure Cosmos DB Java SDK v4 のリリース ノート、Maven リポジトリ、Azure Cosmos DB Java SDK v4 のパフォーマンスに関するヒント、Azure Cosmos DB Java SDK v4 のトラブルシューティング ガイドを参照してください。 v4 より前のバージョンを現在使用している場合、v4 にアップグレードするには、Azure Cosmos DB Java SDK v4 ガイドを参照してください。
重要
Azure サブスクリプションをお持ちでない場合は、開始する前に Azure 無料アカウントを作成してください。
- Visual Studio サブスクライバーの特典を有効にすることができます。Visual Studio サブスクリプションにより、有料の Azure サービスで使用できるクレジットが毎月提供されます。
Azure サブスクリプション不要で、契約もなしで Azure Cosmos DB を無料で試すことができます。 または、Azure Cosmos DB Free レベルのアカウントを作成して、最初の 1000 RU/秒と 25 GB のストレージを無料でご利用いただけます。 また、URI https://localhost:8081
で Azure Cosmos DB エミュレーターを使用することもできます。 エミュレーターで使用するキーについては、「要求の認証」を参照してください。
Azure Cosmos DB リソースに対する CRUD 操作などの一般的な操作を実行する最新のサンプル アプリケーションは、azure-cosmos-java-sql-api-samples GitHub リポジトリにあります。 この記事では、次の内容について説明します。
- 各サンプル Java プロジェクト ファイルのタスクへのリンク。
- 関連する API リファレンス コンテンツへのリンク。
前提条件
このサンプル アプリケーションを実行するには、次のものが必要です。
- Java Development Kit 8
- Azure Cosmos DB Java SDK v4
プロジェクトで使用する最新の Azure Cosmos DB Java SDK v4 バイナリが必要な場合は、Maven を使用して取得することもできます。 必要な依存関係は Maven によって自動的に追加されます。 または、pom.xml ファイルに一覧表示されている依存関係を直接ダウンロードして、ビルドのパスに追加することもできます。
<dependency>
<groupId>com.azure</groupId>
<artifactId>azure-cosmos</artifactId>
<version>LATEST</version>
</dependency>
サンプル アプリケーションの実行
サンプル リポジトリを複製します。
$ git clone https://github.com/Azure-Samples/azure-cosmos-java-sql-api-samples.git
$ cd azure-cosmos-java-sql-api-samples
これらのサンプルは、IDE (Eclipse、IntelliJ、または VS Code) を使うか、Maven を使ってコマンド ラインから実行できます。
次の環境変数を、
ACCOUNT_HOST=your account hostname;ACCOUNT_KEY=your account primary key
アカウントへの読み取りおよび書き込みアクセス権をサンプルに付与するために設定する必要があります。
サンプルを実行するには、メイン クラスを指定します
com.azure.cosmos.examples.sample.synchronicity.MainClass
ここで、sample.synchronicity.MainClass には、以下を指定できます
- crudquickstart.sync.SampleCRUDQuickstart
- crudquickstart.async.SampleCRUDQuickstartAsync
- indexmanagement.sync.SampleIndexManagement
- indexmanagement.async.SampleIndexManagementAsync
- storedprocedure.sync.SampleStoredProcedure
- storedprocedure.async.SampleStoredProcedureAsync
- changefeed.SampleChangeFeedProcessor " (Changefeed には非同期サンプルのみがあり、同期サンプルはありません) " など
Note
各サンプルは自己完結型であり、自身をセットアップし、自身をクリーンアップします。 一連のサンプルでは、CosmosContainer
または CosmosAsyncContainer
を作成するために複数の呼び出しが発行されます。 これが行われるたびに、作成中のコレクションのパフォーマンス階層ごとに 1 時間の使用量に対するサブスクリプションが課金されます。
データベースのサンプル
同期と非同期のデータベース CRUD サンプル ファイルは、次のタスクを実行する方法を示しています。 以下のサンプルを実行する前に Azure Cosmos DB データベースについて知るには、データベース、コンテナー、アイテムの操作に関する概念記事をご覧ください。
タスク | API リファレンス |
---|---|
データベースを作成する | CosmosClient.createDatabaseIfNotExists CosmosAsyncClient.createDatabaseIfNotExists |
ID によってデータベースを読み取る | CosmosClient.getDatabase CosmosAsyncClient.getDatabase |
すべてのデータベースを読み取る | CosmosClient.readAllDatabases CosmosAsyncClient.readAllDatabases |
データベースの削除 | CosmosDatabase.delete CosmosAsyncDatabase.delete |
コレクションのサンプル
同期と非同期のコレクション CRUD サンプル ファイルは、次のタスクを実行する方法を示しています。 以下のサンプルを実行する前に Azure Cosmos DB のコレクションについて知るには、データベース、コンテナー、アイテムの操作に関する概念記事を参照してください。
タスク | API リファレンス |
---|---|
コレクションの作成 | CosmosDatabase.createContainerIfNotExists CosmosAsyncDatabase.createContainerIfNotExists |
コレクションの構成済みのパフォーマンスを変更する | CosmosContainer.replaceThroughput CosmosAsyncContainer.replaceProvisionedThroughput |
ID によってコレクションを取得する | CosmosDatabase.getContainer CosmosAsyncDatabase.getContainer |
データベース内のすべてのコレクションを読み取る | CosmosDatabase.readAllContainers CosmosAsyncDatabase.readAllContainers |
コレクションの削除 | CosmosContainer.delete CosmosAsyncContainer.delete |
コレクションの自動スケーリングのサンプル
これらのサンプルを実行する前に自動スケーリングの詳細を確認するには、アカウントとデータベースおよびコンテナーで自動スケーリングを有効にする手順を参照してください。
同期と非同期の自動スケーリング データベース サンプル ファイルは、次のタスクを実行する方法を示しています。
タスク | API リファレンス |
---|---|
指定した自動スケーリングの最大スループットを使用してデータベースを作成する | CosmosClient.createDatabase CosmosAsyncClient.createDatabase |
同期と非同期の自動スケーリング コレクション サンプル ファイルは、次のタスクを実行する方法を示しています。
タスク | API リファレンス |
---|---|
指定した自動スケーリングの最大スループットを使用してコレクションを作成する | CosmosDatabase.createContainerIfNotExists CosmosAsyncDatabase.createContainerIfNotExists |
コレクションの自動スケーリングの構成済み最大スループットを変更する | CosmosContainer.replaceThroughput CosmosAsyncContainer.replaceThroughput |
コレクションの自動スケーリングのスループット構成を読み取る | CosmosContainer.readThroughput CosmosAsyncContainer.readThroughput |
分析ストレージのコレクションのサンプル
同期と非同期の分析ストレージのコレクション CRUD サンプル ファイルでは、次のタスクを実行する方法が示されています。 次のサンプルを実行する前に Azure Cosmos DB コレクションの詳細を確認するには、Azure Cosmos DB の Synapse と分析ストアに関するページを参照してください。
タスク | API リファレンス |
---|---|
コレクションの作成 | CosmosDatabase.createContainerIfNotExists CosmosAsyncDatabase.createContainerIfNotExists |
項目の例
同期と非同期のドキュメント CRUD サンプル ファイルは、次のタスクを実行する方法を示しています。 以下のサンプルを実行する前に Azure Cosmos DB のドキュメントについて知るには、データベース、コンテナー、アイテムの操作に関する概念記事を参照してください。
注意
特定の項目に対して操作を実行するときは、パーティション キーを指定する必要があります。
タスク | API リファレンス |
---|---|
ドキュメントの作成 | CosmosContainer.createItem CosmosAsyncContainer.createItem |
ID によってドキュメントを読み取る | CosmosContainer.readItem CosmosAsyncContainer.readItem |
ドキュメントのクエリ | CosmosContainer.queryItems CosmosAsyncContainer.queryItems |
ドキュメントを置換する | CosmosContainer.replaceItem CosmosAsyncContainer.replaceItem |
ドキュメントをアップサートする | CosmosContainer.upsertItem CosmosAsyncContainer.upsertItem |
ドキュメントの削除 | CosmosContainer.deleteItem CosmosAsyncContainer.deleteItem |
条件付き ETag チェックを使用してドキュメントを置換する | CosmosItemRequestOptions.setIfMatchETag (同期) CosmosItemRequestOptions.setIfMatchETag (非同期) |
ドキュメントが変更された場合にのみ、ドキュメントを読み取る | CosmosItemRequestOptions.setIfNoneMatchETag (同期) CosmosItemRequestOptions.setIfNoneMatchETag (非同期) |
部分的なドキュメント更新 | CosmosContainer.patchItem |
ドキュメントの一括更新 | 一括サンプル |
トランザクション バッチ | バッチ サンプル |
インデックス作成のサンプル
コレクションの CRUD のサンプル ファイルは、次のタスクを実行する方法を示しています。 以下のサンプルを実行する前に Azure Cosmos DB におけるインデックス作成について知るために、インデックス作成ポリシー、インデックスの種類、インデックスのパスに関する概念記事を参照してください。
タスク | API リファレンス |
---|---|
指定されたドキュメント パスをインデックスに含める | IndexingPolicy.IncludedPaths |
指定されたドキュメント パスをインデックスから除外する | IndexingPolicy.ExcludedPaths |
複合インデックスの作成 | IndexingPolicy.setCompositeIndexes CompositePath |
地理空間インデックスを作成する | IndexingPolicy.setSpatialIndexes SpatialSpec SpatialType |
インデックス作成の詳細については、「Azure Cosmos DB インデックス作成ポリシー」をご覧ください。
クエリのサンプル
同期と非同期のクエリ サンプル ファイルは、SQL クエリ文法を使用して次のタスクを実行する方法を示しています。 以下のサンプルを実行する前に Azure Cosmos DB の SQL クエリ リファレンスについて知るために、「Azure Cosmos DB の SQL クエリの例」を参照してください。
変更フィードの例
変更フィード プロセッサのサンプル ファイルは、次のタスクを実行する方法を示しています。 以下のサンプルを実行する前に Azure Cosmos DB の変更フィードについて知るために、Azure Cosmos DB の変更フィードの読み取りと変更フィード プロセッサに関する記事を参照してください。
タスク | API リファレンス |
---|---|
基本的な変更フィードの機能 | ChangeFeedProcessor.changeFeedProcessorBuilder |
最初からの変更フィードの読み取り | ChangeFeedProcessorOptions.setStartFromBeginning() |
サーバー側プログラミングのサンプル
ストアド プロシージャのサンプル ファイルは、次のタスクを実行する方法を示しています。 以下のサンプルを実行する前に Azure Cosmos DB のサーバー側プログラミングについて知るために、「ストアド プロシージャ、トリガー、およびユーザー定義関数」を参照してください。
タスク | API リファレンス |
---|---|
ストアド プロシージャの作成 | CosmosScripts.createStoredProcedure |
ストアド プロシージャの実行 | CosmosStoredProcedure.execute |
ストアド プロシージャの削除 | CosmosStoredProcedure.delete |
次のステップ
Azure Cosmos DB への移行のための容量計画を実行しようとしていますか? 容量計画のために、既存のデータベース クラスターに関する情報を使用できます。
- 既存のデータベース クラスター内の仮想コアとサーバーの数のみがわかっている場合は、仮想コア数または仮想 CPU 数を使用した要求ユニットの見積もりに関するページを参照してください
- 現在のデータベース ワークロードに対する通常の要求レートがわかっている場合は、Azure Cosmos DB Capacity Planner を使用した要求ユニットの見積もりに関するページを参照してください