DAX を AWS SDK for Java 1.x で使用する
この手順に従って、Amazon EC2 インスタンスで Amazon DynamoDB Accelerator (DAX) の Java サンプルを実行します。
注記
これらの手順は、AWS SDK for Java 1.x を使用するアプリケーション向けです。AWS SDK for Java 2.x を使用するアプリケーションの場合は、「Java および DAX」を参照してください。
DAX の Java サンプルを実行するには
-
Java 開発キット (JDK) をインストールします。
sudo yum install -y java-devel
-
AWS SDK for Java (
.zip
ファイル) をダウンロードして解凍します。wget http://sdk-for-java.amazonwebservices.com/latest/aws-java-sdk.zip unzip aws-java-sdk.zip
-
DAX Java クライアント (
.jar
ファイル) の最新バージョンをダウンロードします。wget http://dax-sdk.s3-website-us-west-2.amazonaws.com/java/DaxJavaClient-latest.jar
注記
DAX SDK for Java のクライアントは、Apache Maven で利用可能です。詳細については、「クライアントを Apache Maven 依存関係として使用する」を参照してください。
-
CLASSPATH
変数を設定します。この例では、
を AWS SDK for Java の実際のバージョン番号に置き換えます (例:sdkVersion
1.11.112
)。export SDKVERSION=
sdkVersion
export CLASSPATH=$(pwd)/TryDax/java:$(pwd)/DaxJavaClient-latest.jar:$(pwd)/aws-java-sdk-$SDKVERSION/lib/aws-java-sdk-$SDKVERSION.jar:$(pwd)/aws-java-sdk-$SDKVERSION/third-party/lib/* -
サンプルプログラムソースコード (
.zip
ファイル) をダウンロードします。wget http://docs.aws.amazon.com/amazondynamodb/latest/developerguide/samples/TryDax.zip
ダウンロードが完了したら、ソースファイルを解凍します。
unzip TryDax.zip
-
Java コードディレクトリに移動し、次のようにコードをコンパイルします。
cd TryDax/java/ javac TryDax*.java
-
プログラムを実行します。
java 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 Writing 10 items for partition key: 4 Writing 10 items for partition key: 5 Writing 10 items for partition key: 6 Writing 10 items for partition key: 7 Writing 10 items for partition key: 8 Writing 10 items for partition key: 9 Writing 10 items for partition key: 10 Running GetItem, Scan, and Query tests... First iteration of each test will result in cache misses Next iterations are cache hits GetItem test - partition key 1 and sort keys 1-10 Total time: 136.681 ms - Avg time: 13.668 ms Total time: 122.632 ms - Avg time: 12.263 ms Total time: 167.762 ms - Avg time: 16.776 ms Total time: 108.130 ms - Avg time: 10.813 ms Total time: 137.890 ms - Avg time: 13.789 ms Query test - partition key 5 and sort keys between 2 and 9 Total time: 13.560 ms - Avg time: 2.712 ms Total time: 11.339 ms - Avg time: 2.268 ms Total time: 7.809 ms - Avg time: 1.562 ms Total time: 10.736 ms - Avg time: 2.147 ms Total time: 12.122 ms - Avg time: 2.424 ms Scan test - all items in the table Total time: 58.952 ms - Avg time: 11.790 ms Total time: 25.507 ms - Avg time: 5.101 ms Total time: 37.660 ms - Avg time: 7.532 ms Total time: 26.781 ms - Avg time: 5.356 ms Total time: 46.076 ms - Avg time: 9.215 ms Attempting to delete table; please wait... Successfully deleted table.
タイミング情報を書き留めます。これは
GetItem
、Query
、Scan
テストに必要なミリ秒の数字です。 -
前のステップで、DynamoDB エンドポイントに対してプログラムを実行しました。ここでプログラムを再度実行しますが、今度は
GetItem
、Query
、Scan
オペレーションが DAX クラスターによって処理されます。DAX クラスターのエンドポイントを確認するには、次のいずれかを選択します。
-
DynamoDB コンソールの使用 — DAX クラスターを選択します。次の例のように、クラスターエンドポイントがコンソールに表示されます。
dax://my-cluster.l6fzcv.dax-clusters.us-east-1.amazonaws.com
-
AWS CLI の使用 — 次のコマンドを入力します。
aws dax describe-clusters --query "Clusters[*].ClusterDiscoveryEndpoint"
次の例のように、クラスターエンドポイントが出力に表示されます。
{ "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" }
ここでプログラムを再度実行しますが、今度はクラスターエンドポイントをコマンドラインパラメータとして指定します。
java TryDax dax://my-cluster.l6fzcv.dax-clusters.us-east-1.amazonaws.com
出力の残りの部分を見て、タイミング情報を書き留めます。
GetItem
、Query
およびScan
の経過時間は、DynamoDB を使用した場合より DAX を使用した方が大幅に低いはずです。 -
このプログラムの詳細については、以下のセクションを参照してください。
クライアントを Apache Maven 依存関係として使用する
これらのステップに従って、アプリケーションで DAX SDK for Java のクライアントを依存関係として使用します。
クライアントを Maven 依存関係として使用するには
-
Apache Maven をダウンロードし、インストールします。詳細については、「Apache Maven のダウンロード
」および「Apache Maven のインストール 」を参照してください。 -
Maven 依存関係クライアントをアプリケーションのプロジェクトオブジェクトモデル (POM) ファイルに追加します。この例では、
x.x.x.x
をクライアントの実際のバージョン番号に置き換えます (例:1.0.200704.0
)。<!--Dependency:--> <dependencies> <dependency> <groupId>com.amazonaws</groupId> <artifactId>amazon-dax-client</artifactId> <version>x.x.x.x</version> </dependency> </dependencies>