我正在构建一个云同步应用程序,它可以跨多个设备同步用户数据。我正处于十字路口,正在决定是将数据作为文件存储在服务器上还是存储在关系数据库中。我正在使用Amazon Web Services,如果我选择将数据存储在表中,则会将S3用于用户文件或数据库服务。我存储的数据是每十秒钟应用程序的状态。这可能是存储在数据库中的问题,因为每个用户的平均行数将是100,000,而我当前的用户群为20,000人,即20亿行。将这些信息存储在文件中会更好吗?因为这将是每个用户总共6兆字节的大约100个文件。
答案 0 :(得分:1)
正如评论中所讨论的,我会将它们存储为文件。
S3非常适合作为键/值存储,如果您能够区分更改并确保不会不必要地复制大量数据,则通过下载相关文件可以更轻松地进行同步从S3并同步客户端。
您可以节省大量成本,无需操作可存储大量行的数据库服务器,并且可以快速将其提供给客户。
我唯一真正关心的是,如果您希望将多个用户的统计信息/数据/信息聚合为后端或管理视图,则这些文件中的数据可能难以解析。您将无法编写简单的SQL查询来总结值等,并且必须打开相关文件,使用awk
或正则表达式等处理它们,然后以这种方式计算值。 / p>
你可能在客户端那样做了与该用户相关的特定文件,因此可能会有一些重叠!