DynamoDB などのデータベースにデバイス シャドウのコピーを保持することはベスト プラクティスですか?
- これは、集約されたデバイス データに対してクエリを実行する必要がある場合に役立ちます。例えば。「state='ON' のすべてのデバイスを取得してください」
- ここでの問題は、デバイス シャドウとデータベースのデータのコピーを同期することです。
これについて何か提案はありますか? </p>
DynamoDB などのデータベースにデバイス シャドウのコピーを保持することはベスト プラクティスですか?
これについて何か提案はありますか? </p>
それはあなたの要件に依存します。Thing Shadow データに対してクエリを実行する必要がある場合は、おそらくデータベースを使用する必要があります。要件によっては、Dynamodb も機能する可能性があります。もちろん、必要なインデックスを dynamodb に作成して、テーブル スキャンを実行する必要がないようにする必要があります。
デバイスの数と更新の頻度によっては、RDS の関係データベースに状態を保存できる場合があります。このオプションは拡張性が低いことに注意してください。データを同期するには、データベースの更新を実行するラムダ関数に IOT ルールを転送します。dynamodb を使用すると、ルールを直接 dynamodb に転送できます。シンプルに保つために、同期は一方向 (つまり、モノの状態 -> データベース) のみで行います。
他のオプションは、すべてのものをシャドウし、結果を自分でフィルタリングすることです。