2

現在、センサーを含むIOTプロジェクトのクライアントと作業しています。現在、すべてのデータが1つのテーブルに格納されています。このデータは、複数のセンサーノードからのものです。彼らはすべてのセンサーノードに1つのテーブルを必要とします。 AWS Dynamo Dbを使用して、既存のテーブルのハッシュキーを使用してデータを複数の別々のテーブルに分割することが可能かどうかを知りたい。私はGSIとLSIを調べましたが、これは依然として私のクライアントが望むものではありません。また、複数のテーブルを使用するとLSIやGSIを使用するよりも効果的でしょうか?私はnosqlとdynamo dbに新しいので、すべてのヘルプは非常に高く評価されています。Dynamo Dbテーブルを複数のテーブル(AWS)に分割することはできますか?

答えて

1

DynamoDBは、複数のテーブルにデータを分割することをサポートしていません。つまり、アトミック条件付きチェックを含むDynamoDBの操作自体は、テーブルの境界を超えて実行できません。しかし、テーブル間でデータを分割することは、DynamoDBとの互換性がないことを意味するものではありません。アプリケーションにロジックを追加するだけです。

異なるセンサーのデータがである限り、間違いなくであることが確認できます。もっと一般的なシナリオは、古いデータを破棄/アーカイブするために、データを複数のテーブルに分割して複数のテーブルに分割することです。これは、ハッシュキーとグローバルな二次インデックスを使用してデータを分割する処理をDynamoDBがすでに可能にしているからです。

最後に、私は、ハッシュキーのデータを複数のテーブルに分割する必要はないと言っていますが、それは実行できます。しかし、より有用なケースは、ハッシュの一部ではないデータの他の属性、または範囲キー(時系列データの例など)の複数のテーブルにデータを分割することです。

+0

ありがとうございました。私が言ったように、nosqlの新機能は、1つのダイナモdbテーブルに何百万もの行を格納し、テーブルがハッシュキーにインデックスされている場合はすぐにクエリを実行できることです。各インデックス(センサー)には最大102,000行が格納されます(これは2年以上になります)。このデータを取得するWebアプリケーションは、各センサーの履歴グラフを生成します。ですから、本質的には、この量のデータを1つの索引付けされた表に複数のデータを保管するのと同じくらい効率的に保管することが求められます。あなたの最初の対応にもう一度感謝します。 – Connar

関連する問題