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 無料アカウントを作成してください。

Azure サブスクリプション不要で、契約もなしで Azure Cosmos DB を無料で試すことができます。 または、Azure Cosmos DB Free レベルのアカウントを作成して、最初の 1000 RU/秒と 25 GB のストレージを無料でご利用いただけます。 また、URI https://localhost:8081Azure 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 クエリの例」を参照してください。

タスク API リファレンス
すべてのドキュメントのクエリ CosmosContainer.queryItems
CosmosAsyncContainer.queryItems
= = を使用する等値のクエリ CosmosContainer.queryItems
CosmosAsyncContainer.queryItems
!= と NOT を使用する非等値のクエリ CosmosContainer.queryItems
CosmosAsyncContainer.queryItems
>、<、>=、<= などの範囲演算子を使用するクエリ CosmosContainer.queryItems
CosmosAsyncContainer.queryItems
文字列に対して範囲演算子を使用するクエリ CosmosContainer.queryItems
CosmosAsyncContainer.queryItems
Order By を使用するクエリ CosmosContainer.queryItems
CosmosAsyncContainer.queryItems
DISTINCT を使用するクエリ CosmosContainer.queryItems
CosmosAsyncContainer.queryItems
集計関数を使用するクエリ CosmosContainer.queryItems
CosmosAsyncContainer.queryItems
サブドキュメントの操作 CosmosContainer.queryItems
CosmosAsyncContainer.queryItems
ドキュメント間結合を使用するクエリ CosmosContainer.queryItems
CosmosAsyncContainer.queryItems
文字列、数値、および配列の演算子を使用するクエリ CosmosContainer.queryItems
CosmosAsyncContainer.queryItems
SqlQuerySpec を使用してパラメーター化された SQL を使用するクエリ CosmosContainer.queryItems
CosmosAsyncContainer.queryItems
明示的なページングを使用するクエリ CosmosContainer.queryItems
CosmosAsyncContainer.queryItems
並列でのパーティション分割コレクションのクエリ CosmosContainer.queryItems
CosmosAsyncContainer.queryItems

変更フィードの例

変更フィード プロセッサのサンプル ファイルは、次のタスクを実行する方法を示しています。 以下のサンプルを実行する前に Azure Cosmos DB の変更フィードについて知るために、Azure Cosmos DB の変更フィードの読み取り変更フィード プロセッサに関する記事を参照してください。

タスク API リファレンス
基本的な変更フィードの機能 ChangeFeedProcessor.changeFeedProcessorBuilder
最初からの変更フィードの読み取り ChangeFeedProcessorOptions.setStartFromBeginning()

サーバー側プログラミングのサンプル

ストアド プロシージャのサンプル ファイルは、次のタスクを実行する方法を示しています。 以下のサンプルを実行する前に Azure Cosmos DB のサーバー側プログラミングについて知るために、「ストアド プロシージャ、トリガー、およびユーザー定義関数」を参照してください。

タスク API リファレンス
ストアド プロシージャの作成 CosmosScripts.createStoredProcedure
ストアド プロシージャの実行 CosmosStoredProcedure.execute
ストアド プロシージャの削除 CosmosStoredProcedure.delete

次のステップ

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