【发布时间】:2018-06-17 19:12:27
【问题描述】:
我们将 Cassandra 用于 OLTP DB、存储 DB 事务并评估报告解决方案的要求。
我们正在评估将 Cassandra 用于具有扁平架构的报告数据库。
使用 Cassandra 作为报告数据库有哪些优势/缺陷?
【问题讨论】:
标签: cassandra nosql nosql-aggregation
我们将 Cassandra 用于 OLTP DB、存储 DB 事务并评估报告解决方案的要求。
我们正在评估将 Cassandra 用于具有扁平架构的报告数据库。
使用 Cassandra 作为报告数据库有哪些优势/缺陷?
【问题讨论】:
标签: cassandra nosql nosql-aggregation
建议考虑将 Spark 与 Cassandra 结合使用以实现 OLAP。
这是关于stackoverflow的相关帖子:
Is Cassandra for OLAP or OLTP or both?
这是类似用例的演示文稿:https://www.slideshare.net/EvanChan2/breakthrough-olap-performance-with-cassandra-and-spark
【讨论】:
在 Cassandra 中,您几乎每次都应该为新查询创建一个新表。因此,做出决定实际上取决于您要开发的不同报告查询的数量。如果您对报表有许多不同的查询,您最终可能会维护许多 Cassandra 表。
此外,您应该考虑这些报告如何随时间变化。如果报告查询快速变化,您可能需要为这些变化创建新的 Cassandra 表。您可能需要将数据从旧 Cassandra 表移动到新 Cassandra 表。对于这些类型的任务,您需要在 Cassandra 节点上运行 Spark 作业。所以你还需要学习和维护 Spark 代码。
【讨论】:
Cassandra 没有连接和聚合,虽然有 UDAF (https://docs.datastax.com/en/cql/3.3/cql/cql_using/useCreateUDA.html),但在我看来它们的限制很大。 因此,取决于您的使用情况,如果您正在寻找可以让您在查询中具有灵活性的东西 - c* 不是答案(例如分析师的临时查询),因为您将始终需要客户端连接和聚合。 对于预定义的报告,我想它可以工作。但是你应该非常小心分区的偏斜......
【讨论】: