在我们的Web应用程序中,我们需要跟踪用户点击的内容,他们写入搜索框的内容等.AJAX将发送大量数据。通常功能与谷歌分析有点类似,但我们需要以不同的方式对其进行自定义。
将收集数据并每天汇总一次并导出到PostgreSQL,因此后端应该能够处理数十个插入。我不考虑使用传统的SQL数据库,因为它可能无法有效地处理如此多的插入。
我想知道你会使用哪个后端进行此类任务?其实我想的是MongoDB或Cassandra。但也许你知道更好的软件用于那项任务?也许与NoSQL数据库有所不同?
Web应用程序是用Ruby on Rails编写的,所以对Ruby的支持会很好,但这绝对不是最重要的。
答案 0 :(得分:1)
听起来你需要分析你的具体要求。
可能最好的解决方案是拆分/分区/分区传统数据库,然后从那里推送数据。
根据您对数据丢失的容忍度,有很多选项。如果您选择具有单服务器持久性的系统,则写入瓶颈的主要来源是fdatasync()(假设您使用硬盘驱动器来存储数据)。
如果您可以比每次提交更容忍同步,那么您可以调整数据库以定时提交。
根据您的表,索引结构等,我希望您可以使用“常规”数据库(例如postgresql)获得相当多的插入,如果您正确管理并调整持久性(如果它支持根据自己的喜好。
将其分成几个实例当然可以让你扩展它。但是,您需要注意操作要求(即,如果某些实例关闭会发生什么)。与您的Ops团队讨论他们喜欢管理的内容。