我正在考虑将 Cassandra 用于大型数据项目。数据将来自传统数据仓库。Cassandra 将托管以我的应用程序可以正确读取的方式格式化的数据。
我不太明白如何修剪来自 Cassandra 的数据。
例如,我想计算过去 24 小时内特定 IP 地址对网站的访问次数。我计划每小时生成一次这些数据,我希望每个 IP 地址保留 2 周。我的列结构如下所示:
127.0.0.1: {
visitorsLast24Hours: {
1279554672: 30,
1279553072: 24,
etc...
}
}
如何从 visitorLast24Hours 列中删除行?
到目前为止,我想出的最佳解决方案是:
- 获取我要使用的列
- 修剪我不再想保留的值
- 从数据库中删除列
- 重新插入新的修剪列
这似乎是处理数据库的一种糟糕方法。我假设我的数据大小会膨胀,这取决于 Cassandra 中的存储方式。
有没有更有效的方法呢?
我目前正在使用phpcassa作为我与 Cassandra 的接口。
谢谢!