我计划为使用 Amazon S3 作为文件存储后端的多租户 SaaS 平台构建文件管理微服务。我打算使用 DynamoDB 作为数据库,因为它速度快且可扩展。该平台可能托管许多租户,每个租户有许多用户,每个用户的存储空间中有许多文件。
我需要在数据库中记录每个文件的元数据和用户目录结构(层次结构)。但是,我不确定 DynamoDB 是否是最佳选择。用户可能希望列出所有目录和文件,按名称搜索,或按字母顺序或按创建日期排序。这可能会导致“热分区”问题(至少对于全局二级索引而言)。当跟踪租户内所有用户上传的所有文件时,情况可能会变得更具挑战性。
因此,我正在考虑一种混合方法:使用 PostgreSQL 存储关系数据,使用 DynamoDB 存储文件信息和目录层次结构。
你对这个想法有什么看法?有人能给我指明正确的方向吗?
提前致谢。
并不比任何其他主流数据库系统更甚,例如 SQL Server、PostgreSQL、MySQL 等,仅举几例。
可能不是。DynamoDB 是一个 NoSQL 键值存储数据库,用于通过键查找特定数据。...
...这些大多是关系型用例和数据对象。
在这里尝试维护两个数据库系统是没有意义的。只需将所有数据存储在单个 RDBMS(如 PostgreSQL)中,然后就大功告成了。如果架构正确,作为关系数据,它在那里的表现同样出色。特别是因为分层数据本质上是树状的,这自然是由 RDBMS 使用的索引类型建模的。
我有在 RDBMS 类型的多租户数据库服务器中处理“大数据”的经验,这些服务器在普通的硬件上(实际上托管在 AWS 上),其查询通常在一秒钟内完成。