問題タブ [dynamodb-mapper]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
290 参照

java - 複数のインデックスで DynamoDB をクエリする方法は?

DynamoDB にテーブルがあり、主キーと 2 つのグローバル共有インデックスがあります。たとえば、テーブル構造は次のようになります。

だから私が必要なのは、で複数のキーを使用する方法を知る必要があるということですwithKeyConditionExpression

次のシナリオでデータをフィルタリングする必要があります。

  1. S1PK = :v1 and SK = :v4 and S2PK = :v2 and S2SK <= :v3
  2. S2PK = :v1 and S2SK >= :v2 and S1SK <= :v2

では、どうすればそれを行うことができますか?上記のクエリを入れると、withKeyConditionExpressionエラーがスローされます。プライマリ キーとセカンダリ インデックスを使用してテーブルを一度にクエリする方法はありますか? ここで何が間違っていますか?誰かが私を助けることができれば、本当に感謝しています。前もって感謝します。

0 投票する
1 に答える
384 参照

amazon-dynamodb - DynamoDBMapper、ページネーションなしですべてのアイテムを取得する方法

DDB には約 780K(count) のアイテムが保存されています。

DynamoDBMapper.query(...) メソッドを呼び出して、それらすべてを取得しています。結果は良好です。すべてのアイテムを取得できます。しかし、それらを取得するのに3分かかりました。

ログから、DynamoDBMapper.query(...) メソッドがページごとに項目を取得しようとしていることがわかります。各ページは DDB への個別のクエリ呼び出しを要求し、ページごとに約 0.7 秒かかります。すべてのアイテムが 292 ページで返されたことを数えたので、合計の長さは約 0.7*292=200 秒であり、これは受け入れられません。私のコードは基本的に以下のようなものです:

では、ページネーションなしですべてのアイテムを一度に取得するにはどうすればよいですか。私の最終的な目標は、クエリの所要時間を短縮することです。