mysql - Cassandra 是构建报告系统的最佳方式吗

标签 mysql cassandra reporting

我将在下面总结我的案例:

我正在尝试在 Cassandra 中添加身份验证用户信息。实际上,它对于诸如身份验证用户、添加新用户、检查用户登录、编辑和删除帐户等基础知识工作得很好。

但是在我构建之后,我们尝试使用 Cassandra 存储来应用报告系统,例如

  • 获取总用户
  • 根据注册时间过滤器获取用户数量
  • 根据登录时间过滤器获取用户数量
  • 根据性别获取用户数量
  • 获取基于用户数量的验证电子邮件
  • 根据电子邮件、名字和姓氏搜索用户
  • 喜欢搜索
  • 根据注册语言获取用户数量
  • 以及产品经理提出的其他标准

根据我所看到的,我认为将我的报告转移到 MySql 并保持我的系统基于 Cassandra 运行是很好的。

我将使用正确的方法将数据从 Cassandra 同步到 MySql。

最佳答案

自 Cassandra 3.4(今天发布)以来,您可以使用新的 SASI 索引在 Cassandra 中实现全文搜索功能。看起来可以满足您动态搜索的要求:

全文搜索预览:https://twitter.com/doanduyhai/status/707231879456546816

使用此全文搜索索引的官方文档:https://twitter.com/doanduyhai/status/707232855873732609

请注意,某些用例可能根本无法从这个新索引中受益,例如用例“获取基于验证电子邮件的用户数量”。

原因很简单,对于 1 个电子邮件地址,您最多将拥有 1 个用户(因为每个用户的电子邮件具有唯一性)。因此,即使使用新索引,在最坏的情况中,您也需要扫描集群中的所有节点(模复制因子)以查找与您的电子邮件匹配的用户。

对于这种一对一的关系(用户和电子邮件之间),最好使用物化 View ,请阅读我的博客:www.doanduyhai.com/blog/?p=1930

关于mysql - Cassandra 是构建报告系统的最佳方式吗,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35870685/

相关文章:

php - Mysql Auto Increment id 已占用但似乎未写入磁盘

c# - 从表中检索数据以确认记录是否存在时如何修复 "Specified Cast Is Not Valid"错误?

cassandra - 如何根据 WRITETIME 过滤 Cassandra 结果

iis - SSRS 2005 API 导致应用程序池崩溃

java - 碧 Jade 报告 : Cover page

php - 我们可以使 MySQL select 查询的结果可编辑和可排序吗?

html - HTTP 状态 500 - 在第 6 行处理 JSP 页面/webtech/login.jsp 时发生异常

cassandra - 使用 CQL3 在 Cassandra 中插入任意列

cassandra - 一定时间后删除一行

database - 出色的报告工具