我开始构建一个可能需要扩展的应用程序,所以我正在认真考虑 NoSQL。阻止我阅读 NoSQL 的一件事是我存储在其中的数据用于分析的可用性。我的应用程序的主要好处之一是趋势(年龄、位置等)。由于我无法完全将我的心态从关系型转向 NoSQL,我不确定我是否只是看错了问题,或者是否真的需要通过实时、广告提供关系数据-临时查询。
请让我直截了当!
当您知道关系数据库将中断或难以使用时,应考虑选择 NoSql 解决方案:通常有两个主要原因:
横向可扩展性只是 NoSql 引擎的结果(自动共享)
如果您没有任何这些原因,您可以使用 rdbms + sharding 来管理。在 rdbms 系统上也可以进行分析。NoSql 还没有准备好取代 RDBMS,但在某些情况下非常强大。
我最近遇到了 InfiniDB,它将 MySQL 前端放在基于 MapReduce 的后端上,专门用于分析。水平和垂直缩放,他们声称它非常快。有关 InfiniDB 的详细信息,请访问 www.calpont.com。
如果确实需要通过实时、即席查询获得关系数据。
这取决于您的用例。如果您正在查看趋势,例如 90 天的滚动平均值,那么过去 6 小时的数据可能不会产生影响。但是,如果您的应用程序正在尝试为电子商务实施动态定价,那么您将需要第二个。