直接从Cassandra读取web应用程序的表面信息可以吗?

直接从Cassandra读取web应用程序的表面信息可以吗?,web,web-applications,cassandra,nosql,Web,Web Applications,Cassandra,Nosql,我使用Cassandra作为时间序列日志应用程序的主要数据存储。我收到了大量对该数据库的写入,因此卡桑德拉是一个自然的选择 然而,当我尝试在web应用程序上显示有关数据的统计信息时,我对该数据库进行了代价高昂的读取,并且速度开始减慢 我最初的想法是定期运行cron作业,每小时预先计算这些统计数据。这将确保没有慢速读取。我想知道是否有其他方法可以读取Cassandra数据库,最好的解决方案是什么 你最初的想法是正确的 如何在C*中存储数据,特别是如何选择主键字段,直接影响到如何读取数据。如果您在一

我使用Cassandra作为时间序列日志应用程序的主要数据存储。我收到了大量对该数据库的写入,因此卡桑德拉是一个自然的选择

然而,当我尝试在web应用程序上显示有关数据的统计信息时,我对该数据库进行了代价高昂的读取,并且速度开始减慢


我最初的想法是定期运行cron作业,每小时预先计算这些统计数据。这将确保没有慢速读取。我想知道是否有其他方法可以读取Cassandra数据库,最好的解决方案是什么

你最初的想法是正确的

如何在C*中存储数据,特别是如何选择主键字段,直接影响到如何读取数据。如果您在一个表上点击一个分区,那么从C*集群读取数据是非常有效的,并且是在网站上显示数据的一个很好的选择

在您的情况下,如果您想显示某种级别的聚合数据(例如,按小时),我建议您创建分区键的方式应确保所有要聚合的数据都包含在同一分区中。下面是我的意思的示例模式:

CREATE TABLE data_by_hour (
  day text,
  hour int,
  minute int,
  data float,
  PRIMARY KEY((day, hour), minute)
);
然后,您可以使用cron作业或其他机制来运行查询,并将数据聚合到另一个表中以显示在网站上