Consistent Readを設定することで、Writeがすべて反映されたレスポンスが取得出来るようです。これで古いデータを 取得する事が無くなると思います。
この2つのattributeは複合キーとして働きます。つまり、2つの値の組み合わせによって、1つのitemを特定します。
複合プライマリキーを利用する。アクセスパターンに合致する場合、複数のattributeを組み合わせてユニークキーを 構成するようにしましょう。たとえば、customerid + productid + countrycode がパーティション・キーで、 order_dateがソート・キーである orders テーブルです。
言い換えると、Query レスポンスからの LastEvaluatedKey を、次の Query リクエストの ExclusiveStartKey として 使用する必要があります。Query レスポンスに LastEvaluatedKey 要素がない場合、結果の最後のページを取得します。 (結果セットの最後まで到達したことを確認できるのは、LastEvaluatedKey がないときだけです)
冒頭に掲載したドキュメントの通り LastEvaluatedKey を利用して, 以下のようにレスポンスに LastEvaluatedKey が 含まれなくなるまでループさせてみると...全てのデータを取得することが出来る
If ScanIndexForward is false, DynamoDB reads the results in reverse order by sort key value, and then returns the results to the client.
アイテム作成時に既存のアイテムとキーが衝突したときに、RDBの感覚だと一意性制約でエラーになるのを期待しますが、 DynamoDBではなんと!上書きしてしまいます。
実はBatchWriteItemという操作を使うと25件ずつまとめて削除することができます。
DynamoDB Streams は、DynamoDB テーブル内の項目レベルの変更の時系列シーケンスをキャプチャし、この情報を最大 24 時間ログに 保存します。アプリケーションは、このログにアクセスし、データ項目の変更前および変更後の内容をほぼリアルタイムで参照できます。
トリガーを使用すると、DynamoDB テーブル内のデータ変更に対応するアプリケーションを構築できます。
今回のアップデートでDynamoDB Streamsを有効にするとDynamoDB内でのアイテムの変化(登録、更新、削除)が 24時間ストリームとして時間順に流されます。
AWS LambdaではEvent SourceとしてDynamoDBを利用することが出来ます。 上記の機能を使う事でDynamoDBをトリガーにAWS Lambdaで処理をする等が可能となります。
追加/削除/置換処理を1回に25個まで同時に処理できる。サイズ制限は全体で1MB。 アイテムの追加/削除で用いることができるが、既存のアイテムの更新に用いることはできない。
The BatchWriteItem operation puts or deletes multiple items in one or more tables. A single call to BatchWriteItem can write up to 16 MB of data, which can comprise as many as 25 put or delete requests.
本記事ではAWS Lambdaの概要からユースケース例、そして実際に触ってみることでAWS Lambdaがどういったものか、 何ができるのかといった点を解説していきます。
Amazon SNS と AWS Lambda は統合されているため、Amazon SNS 通知を使用して Lambda 関数を呼び出すことができます。
You are viewing documentation for version 3 of the AWS SDK for Ruby
AWS SDK for Ruby の設定方法を学習します。
AWS SDK for Ruby を使用して Amazon DynamoDB サービスにアクセスするには、次の例を使用できます。
このチュートリアルでは、AWS SDK for Ruby を使用して次の Amazon DynamoDB オペレーションを実行するシンプルなプログラムを作成します。 Movies というテーブルを作成し、JSON形式のサンプルデータをロードします。 テーブルで、作成、読み込み、更新、削除のオペレーションを実行します。 簡単なクエリを実行します。
このめんどくさいオプション指定なんとかならんのか。
Shared examples are written in a cross-SDK way, which wouldn't take simple attributes into account.
scanとqueryの違い Scanでは常にテーブル全体がスキャンされるが、Queryではキー条件のセットを持たずに特定の範囲のキーだけが検索される。 => Scanは負荷が大きい Queryではプライマリキーの属性値だけが検索されるのに対してScanではテーブル内のすべての項目を検索する事が可能。 事前に設計できていれば基本的にはQueryのみを使う方が良い
The document client simplifies working with items in Amazon DynamoDB by abstracting away the notion of attribute values.
$ AWS_PROFILE=work-account
Dynamo使うならここに書いて有ることだけでかなりのことがイケるはず
docClientを使うと、ネイティブなJavascriptのデータ型を自動的にDynamoDB上の型に変換してくれるので、コードが簡潔になります。
DynamoDBのAPIはずいぶん長い間放っておかれていたように思っていたのですが、そのせいか古い情報がまだ数多く残っています。
As of September 10, 2015, this version of the Document SDK will be deprecated in favor of the AWS.DynamoDB.DocumentClient in the official AWS SDK for JavaScript.