DynamoDB 等数据库中保留设备影子的副本是否是一种最佳实践?
- 当我们必须在聚合设备上查询时,这将很有帮助数据。例如。"给我所有状态='ON'的设备"
- 这里的问题是同步数据的副本设备影子和数据库
对此有什么建议吗?
AWS IoT 队列索引于 2017 年 12 月推出,支持为您的事物和阴影编制索引。此服务会自动检测事物/阴影的变化并更新索引。可以使用 Lucene(一种流行的开源搜索查询语言)的子集对此索引执行功能强大的查询。
要试用此功能,您可以调用更新-索引-配置 API,或者只需在 AWS IoT 控制台中勾选复选框即可。
这取决于您的要求。如果您需要查询事物影子数据,则可能应该使用数据库。Dynamodb可以工作,同样取决于您的要求。当然,您应该在dynamodb中创建必要的索引,这样您就不需要执行表扫描。
根据设备的数量和更新频率,您可能能够将状态存储在 RDS 的关系数据库中。请注意,此选项的可伸缩性较低。要同步数据,您需要将 IOT 规则转发到执行数据库更新的 lambda 函数。使用 dynamodb,您可以将规则直接转发到 dynamodb 中。仅以一种方式(即事物状态 -> 数据库)进行同步以保持简单。
您的其他选择是获取所有事物的阴影并自己过滤结果。