Amazon web services 如何设计一个AWS物联网分析管道,为每个设备提供单独的数据集?

Amazon web services 如何设计一个AWS物联网分析管道,为每个设备提供单独的数据集?,amazon-web-services,architecture,pipeline,aws-iot,aws-iot-analytics,Amazon Web Services,Architecture,Pipeline,Aws Iot,Aws Iot Analytics,我有一个移动应用程序,从传感器获取数据,并将这些数据推送到AWS物联网核心主题。我想将这些数据转发给AWS物联网分析,然后用我自己的机器学习代码——使用容器数据集进行分析。重要的是确保事件通过设备id进行隔离和批处理,并在30分钟的时间窗口内进行分析。在我的例子中,一起分析由同一设备id生成的一组事件才有意义。事件负载已经包含唯一的设备id属性。想到的第一个解决方案是为每个移动客户端单独设置频道->管道->数据存储->SQL数据集->容器数据集。直观地描述如下所示: 考虑到设备的数量是N,这个架

我有一个移动应用程序,从传感器获取数据,并将这些数据推送到AWS物联网核心主题。我想将这些数据转发给AWS物联网分析,然后用我自己的机器学习代码——使用容器数据集进行分析。重要的是确保事件通过
设备id
进行隔离和批处理,并在30分钟的时间窗口内进行分析。在我的例子中,一起分析由同一设备id生成的一组事件才有意义。事件负载已经包含唯一的设备id属性。想到的第一个解决方案是为每个移动客户端单独设置
频道->管道->数据存储->SQL数据集->容器数据集。直观地描述如下所示:
考虑到设备的数量是N,这个架构的问题是我需要有N个通道,N个实际上相同的管道,N个存储相同类型/模式数据的数据存储,最后是2*N个数据集。因此,如果我有50000台设备,资源的数量是巨大的。这让我意识到这不是一个好的解决方案。
我想到的下一个想法是,所有设备只有一个通道、一个管道和一个数据存储,每个设备只有不同的SQL数据集和不同的容器数据集。看起来是这样的:

这种架构现在感觉好多了,但如果我有50000台设备,我仍然需要100000个不同的数据集。默认AWS限制为每个帐户100个数据集。当然,我可以要求增加限额,但如果默认限额是100个数据集,那么我想知道请求限额增加是否有意义,该限额是默认限额的x1000倍?这两种架构中有哪一种是AWS物联网分析应该如何使用的,还是我遗漏了什么

我把同样的问题贴在了网上,我从一位在那里工作的工程师那里得到了一个有用的答案。我在这里为那些可能有类似体系结构需求的人发布了他的答案:

我认为每个用户的数据集不是建模的正确方法。我们推荐数据体系结构的方式是使用单个数据集(或者可能是以设备类型、国家/地区或其他更高级别分组为轴心的少量数据集),并使用SQL查询提取感兴趣时间段的数据,在您的情况下为30分钟。接下来,您将触发一个容器数据集,该容器数据集使用该数据集,并为每个用户准备所需的最终分析。 笔记本基本上会迭代每个唯一的客户id(您可能已经能够在SQL中进行分组和排序,以加快速度),并在需要时发送数据之前执行所需的分析。根据场景的复杂性,您可以有一个容器数据集来为每个客户进行初始数据处理,另一个容器数据集来进行ML培训,但是在很多情况下,一个容器数据集就可以了——我已经使用这种方法来训练成千上万个单独的“设备”,所以这也适用于您的用例


我想一个AWS的家伙回答了是的他回答了。在StackOverflow上我没有得到答案后,我把这个问题贴到了他们的论坛上,他们的人给了我一些指导。