Am Dynamodbの新機能DynamoDBには100kを超える項目を持つテーブルがあります。また、この表は頻繁にリフレッシュされます。この表では、関連データベースの世界でこれと似たようなことができるようにしたいと考えています。テーブルからどのように最大値を得るかです。Amazon Dynamodbで集計関数を使用する方法
答えて
DynamoDBはNoSQLデータベースであるため、データのクエリ方法は非常に限定されています。 DynamoDB APIを直接呼び出してテーブルから最大値などの集計を実行することはできません。この問題を解決するには、さまざまなツールやアプローチを検討する必要があります。
あなたが考えることができる可能な解の数があります。
が、これはおそらく非常に悪い考えであるあなたのテーブル内の複数の100kの項目を表スキャン
を実行します。テーブルスキャンはすべての単一項目を読み込み、アプリケーション側のロジックに最大値を指定させることができます。これは実用的な解決策ではありません。
を使用すると、別のDynamoDBのテーブルのインデックスを維持するために、DynamoDBのストリームとラムダ関数を使用することができ、あなたのユースケースに応じて、DynamoDBの
にインデックスをマテリアライズド。あなたのテーブルが書き込み専用で、削除も削除もない場合は、別のテーブルに最大値を保存し、新しいレコードが挿入されると、それらを比較して必要な更新を実行できます。
このアプローチは、いくつかの制約条件の下で実行可能ですが、一般化された解決策ではありません。
は赤方偏移は、簡単にこれらのタイプの計算を実行することができ、非常に強力なビッグデータプラットフォームであるのに対しアマゾン赤方偏移
DynamoDBのは、そのような最大などの分析業務を行うためのものではありません使用して分析を行います。 DynamoDBインデックスと同様に、分析目的でテーブルのほぼリアルタイムのコピーを保持するためにレコードが挿入されると、DynamoDBストリームを使用してRedshiftにデータを送信できます。
オフラインまたは分析ソリューションをさらに探している場合は、これが良い選択です。
アナリティクスElasticsearchを使用して実行
DynamoDBのデータ耐久性に強い保証を持つ強力なNoSQLの溶液であるが、Elasticsearchは、最大のようなクエリを可能にし、これらの集計は、スライスしてダイシングすることができる非常に柔軟なクエリ方法を提供どんな属性値でもリアルタイムで。上記のソリューションと同様に、DynamoDBストリームを使用して、レコード挿入の更新と削除をリアルタイムでElasticsearchインデックスに送信できます。
DynamoDBに固執したいが追加のクエリ機能が必要な場合は、特にElasticSearchサービスを使用してElasticsearchクラスタを完全に管理する場合には、これは本当に良いオプションです。 ElasticsearchはDynamoDBテーブルを置き換えるものではなく、同じデータの簡単に検索可能なインデックスであることに注意してください。
だけ
に明白な解決策をSQLデータベースを使用するには、SQLの要件を持っているならば、SQLベースのシステムへのNoSQLベースのシステムから移動しています。AWSのRDSは、管理されたソリューションを提供します。 DynamoDBは多くのメリットをもたらしますが、ユースケースがSQLソリューションに向かっている場合、最も簡単なことは、それに対抗せずにソリューションを変更することかもしれません。
これは、SQLベースのソリューションまたはNoSQLベースのソリューションが優れているとは言えません。それぞれの賛否両論があり、それぞれのユースケースに応じて異なりますが、考慮するオプションは間違いありません。
DynamoDBのが実際MAX集約関数を持っている:http://docs.aws.amazon.com/amazondynamodb/latest/developerguide/EMRforDynamoDB.Querying.html
- 1. 集計関数の使用方法R
- 2. グループで複数の集計関数を使用する方法
- 3. SSAS Tabular - DAX集計関数でFORMAT関数を使用する方法
- 4. Amazon DynamoDBでレルムを使用する
- 5. Neo4j - 集計関数内で集計関数を使用できません
- 6. Amazon Elasticsearchを使用してdynamodbデータをインデックスする方法は?
- 7. JPAでの集計関数の使用
- 8. asp.netで集計関数を使用したデータセットの使用方法C#
- 9. Dynamodbを使った基本的な集計方法は?
- 10. 集約関数と集計関数を使用してデータフレーム内のユニークな列を取得する方法は?
- 11. ピボットを使用する方法と2つの異なる集計関数を使用する方法は?
- 12. Amazon QuickSightの計算フィールド内で集計を使用
- 13. 集計関数を使用したPIVOT
- 14. 集計関数とグループを使用するクエリを書き換える方法
- 15. Amazon Dynamodbでのテーブルの設計
- 16. ツリー内で集計関数(aggFuncs)を作成する方法は?
- 17. 集計関数でPERCENTILE_DISCを使用する
- 18. 並べ替え式で集計関数を使用する
- 19. 複数の列を使用するPandas DataFrame集計関数
- 20. 集計関数の使用に関する問題
- 21. 集計関数
- 22. 集計関数
- 23. Amazon AWS CLIを使用してDynamoDBグローバルセカンダリインデックスを更新する方法
- 24. 集計関数を使用して一意の合計を計算する
- 25. DataTable(C#)で集計関数をグループ化して計算する方法
- 26. 集計関数を使用したクエリにcase文を組み込む方法
- 27. 集計関数を使用したIF計算
- 28. pyspark 1.4集計関数のリストを取得する方法
- 29. mongo dbクエリの関数を集計する方法は?
- 30. 文字型の列に集計関数を使用する
これはDynamoDBのに接続されたアマゾンEMRクラスタを介して利用可能です。 DynamoDB自体で使用可能な機能ではありません。 DynamoDBストリームに接続されたセカンダリサービスの使用に反対しない場合は、[設定のチュートリアル(http://docs.aws.amazon.com/amazondynamodb/latest/developerguide/EMRforDynamoDB.Tutorial.html)集約クエリの場合 – Hal