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