选择用于存储用户数据的 AWS 存储服务

Posted

技术标签:

【中文标题】选择用于存储用户数据的 AWS 存储服务【英文标题】:Selecting AWS storage services for storing user data 【发布时间】:2017-01-23 15:15:48 【问题描述】:

我是一名计算机科学专业的本科生。我正在开发活动识别 android 应用程序。我的应用程序从移动传感器(Acc+Gyro+Mag)读取数据,然后在移动设备本身进行一些基本处理。现在,我正在尝试将这些数据上传到 AWS。 让我详细解释一下这个项目。我开发了一个应用程序,它可以通过从移动传感器读取数据来了解用户活动,并将数据本地存储在移动设备上。现在,我正在尝试从不同的用户集中收集更多数据,因此,我需要将这些数据上传到云端。我对 AWS 有一点了解,但不是专家。我正在使用 AWS 的移动集线器服务,在这个模块中,我找到了 DynmoDB,但在我研究的某个地方,它只适用于存储小于 2MB 的数据。 我还在 AWS 上发现了许多存储服务,例如 DynmoDB、RedShift 和 RDS。现在,我越来越糊涂了。我需要使用哪个服务?

单线问题:我想将传感器读数实时存储在云端,并且一次存储(在收集一些数据之后)。我需要使用哪些服务?

附:我试图解释我的项目和问题。如果您想了解更多信息,请告诉我

【问题讨论】:

取决于您的要求,例如成本、持久性、可扩展性、性能、数据大小、查询类型等。借助 RDS,AWS 可以管理和维护。 Redshift 通常用作数据仓库 你的意思是每个样本或记录都大于2MB吗?另外,你想对数据做什么?您需要在其上运行 SQL 吗?还是将其读入程序并进行处理?你会阅读给定的记录一次还是多次? 【参考方案1】:

您在哪里看到 DynamoDB 仅适用于小于 2MB 的数据? DynamoDB 每个项目有 400KB 的限制,但对表的大小没有限制。您上传到 AWS 的每条记录/项目是否会大于 400KB?

DynamoDB 似乎是这类事情的完美解决方案。这是 DynamoDB 教程和示例中通常提到的应用程序类型。如果将数据存储在 NoSQL 数据库中适合您,那么我会推荐 DynamoDB。

如果您需要以关系格式存储数据,则需要查看 RDS 数据库或可能的 Redshift,具体取决于您计划执行的查询类型。

如果每条数据都非常大,那么您可能需要将其从您的移动应用程序上传到 S3,然后根据您的需要在 AWS 中进行处理。

【讨论】:

我想对从各个用户收集的数据执行一些操作。在这方面哪种存储服务适合我们? 您没有为具体推荐提供足够的信息。您需要执行什么样的操作?总共会有多少数据?每条记录有多大? 我在 Android 设备上以表格的形式将数据保存在 SQlite 数据库中。现在我想将这些数据实时上传到云存储上。在这方面我想要一些关于使用哪个 AWS 存储数据库的建议? 您还没有回答我的任何问题,而您只是添加了“实时”要求。很抱歉,我无法提供更详细的答案。

以上是关于选择用于存储用户数据的 AWS 存储服务的主要内容,如果未能解决你的问题,请参考以下文章

AWS 存储服务

基于AWS S3协议搭建个人云存储服务

用于管理状态数据的AWS服务-dynamodb / step函数/ sqs?

【Minio】基于AWS S3协议搭建个人云存储服务

选择正确的 AWS 服务和软件工具

AWS 数据分析服务