2016-06-14 8 views
0

DynamoDBを使ってJsonドキュメント(vs mongo)を保存し、ほぼすべてのAWSドキュメントとオンラインの例を読む必要があるかどうかを判断しようと苦労した1日後、ここで私の質問。Amazon DynamoDB問い合わせとスキャン中のJsonサポート

私たちはSpring Boot Javaアプリケーションで、私たちはaws-dynamodb sdkプラグインを使用しています。私たちのアプリケーションは数千種類のJsonドキュメントを管理し、さまざまな条件に基づいて検索する必要があります。例えば

、これはJSON文書であると想像 -

{ 
"serial":"123123", 
"feed":{ 
     "ABC":{ 
      "queue": "ABC", 
      "active": true 
      }, 
     "XYZ" : { 
      "queue":"XYZ", 
      "active": false 
} 
} 

はこれらは私が

  1. 私はダイナモテーブル内の文字列の属性としてこの全体のJSONドキュメントを保存することができている質問です、まだJson内の特定の属性の値に基づいてレコードを取得することができますか? たとえば、フィードABCが有効なアイテムをすべて取得したいとします。

  2. このソリューションはどの程度スケーラブルですか?

私はこれをMongoで非常に簡単に行うことができますが、ダイナモで動作させることはできませんでした。

答えて

1

最初に、DynamoDBMapperをDynamoDBとの会話に使用していない場合は、低レベルのAPIではなく、より使いやすい上位レベルの抽象化を使用することを検討する必要があります。

さて、ご質問:

  • 代わりに、それを文字列として保存するには、地図を使用することを検討してください。サポートされているデータタイプの詳細については、hereを参照してください。検索には、two waysQuery(必要なレコードの主キーを提供する必要があります)とScanがあります。あなたの例(フィードABCを有効にしているすべてのアイテム)では、主キーがわからないので、Scanを実行する必要があります。
  • DynamoDBはスケーラビリティに優れています。 Queryは効率的ですが、あなたはScanより多くのように見えます。後者には限界があります。文字通り各レコードを通過しますが、数千レコードしかないので、うまくいくはずです。最初にパフォーマンステストを行います。
関連する問題