Cassandra 和聚合数据

Cassandra and aggregated data

我们有一个 "legacy" SQL 基于服务器的应用程序,用于保存 OLTP 数据(销售):

主要问题:当我们需要一个新视图时,扫描所有现有的 OLTP 数据需要花费大量时间。

现在我们想迁移到 Cassandra,我们应该使用相同的方法来实现相同的目标还是:

这可能不是您要查找的答案。但是,我只想分享我们在 cassandra 和聚合数据方面的经验。在我们的项目中,我们需要从世界各地的服务器收集数据并进行相应的聚合。一些指标是每台服务器、每个地理区域每小时的消息等。因此,一旦有新数据进入,它将自动启动批处理以执行聚合或将数据插入多个 tables/views。我们使用 apache-spark 作为处理引擎,此外,我们还根据特定用例使用了 cassandra 中的一些概念,例如 materialized viewsecondary indexcustom trigger。设计数据模型的一个重点是忘记 NF,基本上,我们一般在 NoSQL 中不需要它。

简而言之,我可以说从传统数据库迁移到 NoSQL 数据库一开始可能会很麻烦。但最终的结果在性能和可用性方面还是比较令人满意的。