【发布时间】:2020-06-29 00:55:51
【问题描述】:
我有一个移动应用程序,它从传感器获取数据并将这些数据推送到 AWS IoT Core 主题。我想将此数据中继到 AWS IoT Analytics,然后使用我自己的机器学习代码进行分析 - 使用容器数据集。重要的是确保事件由device_id 隔离和批处理,并在 30 分钟的时间窗口内进行分析。在我的例子中,只有一起分析由同一 device_id 生成的一组事件才有意义。事件负载已包含唯一的 device_id 属性。想到的第一个解决方案是为每个移动客户端设置单独的Channel -> Pipeline -> DataStore -> SQL DataSet -> Container Data Set。视觉描绘如下:
鉴于设备的数量是 N,这个架构的问题是我需要有 N 个通道,N 个实际上相同的管道,N 个存储相同类型/模式的数据存储,最后是 2*N 个数据集。因此,如果我有 50.000 台设备,那么资源的数量是巨大的。这让我意识到这不是一个好的解决方案。
我想到的下一个想法是所有设备只有一个 Channel、一个 Pipeline 和一个 Datastore,并且每个设备只有不同的 SQL 数据集和不同的容器数据集。看起来像这样:
这种架构现在感觉好多了,但如果我有 50.000 台设备,我仍然需要 100.000 个不同的数据集。默认的 AWS 限制是每个账户 100 个数据集。当然,我可以请求增加限制,但如果默认限制是 100 个数据集,那么我想知道请求增加限制是否有意义,即默认限制的 x1000 倍?这两种架构中的任何一种应该如何使用 AWS IoT Analytics 还是我遗漏了什么?
【问题讨论】:
-
我认为 AWS 的老兄回答了这个问题forums.aws.amazon.com/thread.jspa?threadID=318829
-
是的,他做到了。在 StackOverflow 上没有得到答案后,我将这个问题发布到了他们的论坛,他们的人给了我一些指示。
-
我只是第一次研究这个问题,我发现最近的自定义分区功能似乎可以解决这个问题? docs.aws.amazon.com/iotanalytics/latest/userguide/…
标签: amazon-web-services architecture pipeline aws-iot aws-iot-analytics