【问题标题】:Tips for monitoring data model with cassandra使用 cassandra 监控数据模型的技巧
【发布时间】:2011-09-25 00:54:28
【问题描述】:

我对 cassandra 比较陌生,必须为监控工具评估不同的 NoSQL 解决方案。 一个数据只有大约 100 字节大,但实际上有很多。一天之内,我们会收到大约 1500 万条记录…… 所以我目前正在测试 9 亿条记录(大约 15GB 作为 SQL-Insert 脚本)

我的第一个问题是: cassandra 是否符合我的需求?我需要进行范围查询(在创建记录的日期)并根据存储在数据中的“二级索引”定义的组来总结一些列。)

我已经尝试过 MongoDB,但它真的很糟糕 MapReduce 做了一个非常糟糕的工作...... 我还阅读了有关 HBase 的信息,但它需要的大量配置让我希望 Cassandra 可以解决...

第二个问题是:我如何存储我的数据以通过上述方式访问它? 我已经想到了一个超级列族,其中的关键是日期(从 1970 年开始),列将是当时采用的基准……但是如果我使用随机分区器,我就不能进行快速范围查询在它上面(据我所知),如果我使用 Order Preserving Partitioner,数据将不会分布在我的集群中(目前由两个节点组成)。

我希望我给了你所有必要的信息...... 感谢您的帮助!

安迪

【问题讨论】:

    标签: nosql cassandra


    【解决方案1】:

    听起来像是 Brisk(Cassandra + Hadoop 发行版)的工作。完整的 Hadoop map/reduce,包括 Hive 支持,几乎不需要配置。

    http://www.datastax.com/products/brisk

    【讨论】:

      【解决方案2】:

      我们也遇到过类似的情况。

      我们将数据存储在简单的行中,其中行键的格式为<id>:<time-bucket>。我们当前的时间桶大小是 24 小时。列是时间戳,值是用msgpack序列化的小对象。

      如果需要,我们会手动进行聚合。

      我们还做了一个小优化:当存储桶已满时,它变得不可变,因此我们创建了一个“all”对象,将所有值保存在单个列中。然后可以清除每个时间戳列。这允许我们获取整个存储桶并在 O(1) 中反序列化它,而不是扫描整个行。

      【讨论】:

        猜你喜欢
        • 2010-09-22
        • 1970-01-01
        • 2014-10-10
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-05-22
        • 2018-09-24
        • 2021-06-06
        相关资源
        最近更新 更多