- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
我是大数据领域的新手,目前正坚持一个基本的决定。
对于一个研究项目,我需要每分钟将数百万条日志条目存储到我的基于 Cassandra 的数据中心,这工作得很好。 (单数据中心,4个节点)
Log Entry
------------------------------------------------------------------
| Timestamp | IP1 | IP2 ...
------------------------------------------------------------------
| 2015-01-01 01:05:01 | 10.10.10.1 | 192.10.10.1 ...
------------------------------------------------------------------
每个日志条目都有一个特定的时间戳。首先应按不同时间范围查询日志条目。按照建议,我开始以大行方法“为我的查询建模”。
Basic C* Schema
------------------------------------------------------------------
| row key | column key a | column key b ...
------------------------------------------------------------------
| 2015-01-01 01:05 | 2015-01-01 01:05:01 | 2015-01-01 01:05:23
------------------------------------------------------------------
其他详细信息:column keys由timestamp+uuid组成,唯一性,避免重写;特定时间的日志条目通过其相同的分区键存储在节点附近;
因此,日志条目以每行的短时间间隔存储。例如 2015-01-01 01:05
的每个日志条目精确到一分钟。查询并没有真正执行为带有 <
的范围查询运算符,而是将条目选择为指定分钟的 block 。
基于范围的查询在合适的响应时间内取得成功,这对我来说很好。
问题:在下一步中,我们希望通过查询获取更多信息,这些信息主要集中在 IP
上。 field 。例如:选择所有具有 IP1=xx.xx.xx.xx
的条目和 IP2=yy.yy.yy.yy
.
很明显,当前模型非常不适用于其他以 IP 为中心的 CQL 查询。所以问题不是找到一个可能的解决方案,而是可能的技术的各种选择可能是一个可能的解决方案:
由于我在这个领域缺乏知识,所以很难找到我应该采取的最佳方法。尤其是感觉集群计算框架的使用将是一个过度的解决方案。
最佳答案
据我了解您的问题,您的表架构如下所示:
create table logs (
minute timestamp,
id timeuuid,
ips list<string>,
message text,
primary key (minute,id)
);
使用这个简单的架构,您:
在我看来,有多种方法可以实现这个想法:
在我看来,C* 做这些事情的方法是为不同的查询设置一组单独的表。它将使您能够执行极快的查询(但会增加存储成本)。
关于hadoop - Cassandra 查询灵活性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30348264/
我正在使用 2 个库,并且我需要其中一个库中的一个类才能具有另一个库的功能。我的第一次尝试是获取库 A 的源代码并让该类扩展库 B 中的类。这工作得很好,除了大量修复等,这些修复不会使代码变得那么稳定
以下代码不起作用(当然),因为标记的行无法编译: MyClass { //singleton stuff private static MyClass instance; pr
这是我的情况,我有一个 css 3 列流体布局(终于掌握了 chalice ,谢谢大家!)并且在我的左列中我有一个 google adsense 广告。对于熟悉这一点的人来说,它们在广告尺寸方面不是很
为了提高我的在线 map 的性能,尤其是在智能手机上,我遵循 Mike Bostock 的建议,在将地理数据上传到服务器之前尽可能多地准备地理数据(根据他的 command-line cartogra
我是一名优秀的程序员,十分优秀!