[AI/ML] 如何选用数据采集与预处理服务?

0

【以下的问题经过翻译处理】 客户将电动自行车传感器数据加载到S3,希望从这些传感器数据中通过AI/ML获得更多洞察。 数据每个大小约为4KB文件,存储在S3桶中。数据被放入以下格式中:

时间戳1,传感器A,传感器B,传感器C,...,传感器Z 时间戳2,传感器A,传感器B,传感器C,...,传感器Z 时间戳3,传感器A,传感器B,传感器C,...,传感器Z ......

然后将这些传感器数据放入一个约为4KB大小的文件中。

我计划的方法是:

*读取S3对象 *使用Lambda解析S3对象。我考虑了Glue,但想将数据放入DynamoDB中,而Glue似乎不支持。此外,Glue似乎更昂贵。 *将数据放入带有自行车ID的DynamoDB并将时间戳作为排序键。 *使用SageMaker学习DynamoDB数据。将分开讨论选择哪个模型和进行时间序列推理。 *如果需要重新学习,则使用DynamoDB数据,而不是来自S3的数据。我认为从DynamoDB获取数据比从原始S3数据获取数据更快。 *此外,我认为我们可以过滤一些错误输入或对DynamoDB数据应用一些小修改(将时间戳转换为正确时间等)。 *根据模型进行推理输出。

有其他推荐的方案吗?或者通过Athena或直接访问S3?或者使用Glue和Redshift? 目前大约为100MB数据即可训练处可用的模型,Glue和Redshift可能更适合数据量更大的场景。

1 Antwort
0

【以下的回答经过翻译处理】 关于DynamoDB的想法

每GB的数据存储成本方面,DynamoDB大约是S3的5倍。此外,它还有RCU/WCU成本。

我建议将数据保留在S3中。不仅更具成本效益,而且使用S3,您不必担心DynamoDB的RCU/WCU成本或吞吐量。

SageMaker笔记本和训练实例可以直接从S3中读取,而S3具有高吞吐量。我认为100 MB数据集不会有性能问题。

如果您需要准备/转换数据,可以使用Glue、Athena、GlueDataBrew、GlueStudio等在S3中就地进行转换。

关于Glue和DynamoDB

我考虑了Glue,但想将数据放在DynamoDB中,而Glue似乎不支持。

Glue支持Python和Spark作业。如果使用Glue Python作业,可以导入boto3(AWS SDK)库并写入DynamoDB。

其他策略

客户如何摄取传感器数据/如何写入S3?他们使用AWS IoT Core吗?

无论如何,您描述的模式到目前为止都是:

设备- > S3中的传感器数据- >使用Lambda进行转换- >将数据存储在DynamoDB中。

另一种您可以考虑的方法是使用具有Lambda转换的Kinesis Firehose。这将允许您在将数据写入S3之前进行“内联”解析/转换,从而消除了重新从S3读取数据并在事后应用转换的需要。Firehose还允许您将存储的数据以Parquet等格式编写,这有助于成本以及后续查询性能。

如果要存储原始数据和转换后的数据,可以使用Kinesis Streams/Firehose的“扇出”模式,其中一个输出是发送到 S3 的原始数据,另一个是转换后的流。

profile picture
EXPERTE
beantwortet vor 5 Monaten

Du bist nicht angemeldet. Anmelden um eine Antwort zu veröffentlichen.

Eine gute Antwort beantwortet die Frage klar, gibt konstruktives Feedback und fördert die berufliche Weiterentwicklung des Fragenstellers.

Richtlinien für die Beantwortung von Fragen