Java および DAX - Amazon DynamoDB

Java および DAX

DAX SDK for Java 2.x は AWS SDK for Java 2.x と互換性があります。Java 8 以降をベースに構築されており、非ブロック I/O がサポートされています。AWS SDK for Java 1.x での DAX の使用については、「DAX を AWS SDK for Java 1.x で使用する」を参照してください。

クライアントを Maven 依存関係として使用する

これらのステップに従って、アプリケーションで Java 用 DAX SDK のクライアントを依存関係として使用します。

  1. Apache Maven をダウンロードし、インストールします。詳細については、「Apache Maven のダウンロード」および「Apache Maven のインストール」を参照してください。

  2. Maven 依存関係クライアントをアプリケーションのプロジェクトオブジェクトモデル (POM) ファイルに追加します。この例では、x.x.x を クライアントの実際のバージョン番号に置き換えます。

    <!--Dependency:--> <dependencies> <dependency> <groupId>software.amazon.dax</groupId> <artifactId>amazon-dax-client</artifactId> <version>x.x.x</version> </dependency> </dependencies>

TryDax サンプルコード

ワークスペースを設定し、DAX SDK を依存関係として追加したら、TryDax.java をプロジェクトに追加します。

このコマンドを使用してコードを実行します。

java -cp classpath TryDax

次のような出力が表示されます。

Creating a DynamoDB client Attempting to create table; please wait... Successfully created table. Table status: ACTIVE Writing data to the table... Writing 10 items for partition key: 1 Writing 10 items for partition key: 2 Writing 10 items for partition key: 3 ... Running GetItem and Query tests... First iteration of each test will result in cache misses Next iterations are cache hits GetItem test - partition key 1-100 and sort keys 1-10 Total time: 4390.240 ms - Avg time: 4.390 ms Total time: 3097.089 ms - Avg time: 3.097 ms Total time: 3273.463 ms - Avg time: 3.273 ms Total time: 3353.739 ms - Avg time: 3.354 ms Total time: 3533.314 ms - Avg time: 3.533 ms Query test - partition key 1-100 and sort keys between 2 and 9 Total time: 475.868 ms - Avg time: 4.759 ms Total time: 423.333 ms - Avg time: 4.233 ms Total time: 460.271 ms - Avg time: 4.603 ms Total time: 397.859 ms - Avg time: 3.979 ms Total time: 466.644 ms - Avg time: 4.666 ms Attempting to delete table; please wait... Successfully deleted table.

タイミング情報を書き留めます。これは、GetItem および Query テストに必要なミリ秒の数字です。このケースでは、DynamoDB エンドポイントに対してプログラムを実行しました。次に、プログラムを再度実行します。今回は DAX クラスターに対して実行します。

DAX クラスターのエンドポイントを確認するには、次のいずれかを選択します。

  • DynamoDB コンソールで DAX クラスターを選択します。次の例のように、クラスターエンドポイントがコンソールに表示されます。

    dax://my-cluster.l6fzcv.dax-clusters.us-east-1.amazonaws.com
  • AWS CLI を使用して、次のコマンドを入力します。

    aws dax describe-clusters --query "Clusters[*].ClusterDiscoveryEndpoint"

    次の例のように、クラスターエンドポイントのアドレス、ポート、URL が出力に表示されます。

    { "Address": "my-cluster.l6fzcv.dax-clusters.us-east-1.amazonaws.com", "Port": 8111, "URL": "dax://my-cluster.l6fzcv.dax-clusters.us-east-1.amazonaws.com" }

ここでプログラムを再度実行しますが、今度はクラスターエンドポイント URL をコマンドラインパラメータとして指定します。

java -cp classpath TryDax dax://my-cluster.l6fzcv.dax-clusters.us-east-1.amazonaws.com

出力を見て、タイミング情報を書き留めます。GetItem および Query の経過時間は、DynamoDB を使用した場合より DAX を使用した方が大幅に低いはずです。

SDK のメトリクス

DAX SDK for Java 2.x を使用すると、アプリケーションのサービスクライアントに関するメトリクスを収集し、Amazon CloudWatch で出力を分析できます。詳細については、「メトリクスを有効にする」を参照してください。

注記

DAX SDK for Java は ApiCallSuccessful および ApiCallDuration メトリクスのみを収集します。