【问题标题】:cassandra performance with very high number of columns per row每行列数非常多的 cassandra 性能
【发布时间】:2013-06-09 07:01:31
【问题描述】:

我正在考虑存储每行列数在 100-2.5 亿之间的数据,列族中最多有 2-3k 行。 我将使用复合列来允许对数据进行切片,并将切片范围限制为可以在进程内存限制内处理的合理值。

一个 CF 将没有列值,只有 100-250 百万列的列名,而其他 CF 将具有相同的列数,但每列值大约有 20-30kb 数据。

我假设切片不需要加载所有列名等来切片数据。

会有 5% 的行有如此多的列,其余的将有 15-20 百万。

任何人都尝试过 Column Family 中每行如此大量的列,性能如何...

如果上述工作正常,它可以为我节省大量管理多个 CF 的工作。

谢谢

【问题讨论】:

    标签: performance cassandra


    【解决方案1】:

    我处理的数据量与您描述的数据量接近。范围切片不是很快,但在增加数据大小时并没有真正变慢,除了开销导致 cassandra 必须返回更多列。但是,最快的查询方法是如果您事先知道要查询的所有键。

    您的设置几乎没有缺点,因为您没有使用超列并且具有扁平的数据结构,这正是 Cassandra 的优势所在,毕竟它是一个键值存储。

    【讨论】:

    • 当您说 Range slice 不是很快时,您能否给出一些具体的数字。也是最快的查询方式,我假设您指的是一行中的列名。谢谢
    • 最快的是在一行中按名称查询列,就切片范围而言,最快的是通过键而不是键范围查询行。按数字,假设切片范围的冷查询大约需要 40 毫秒,这将返回 5000 列中的 10 列,而如果我事先知道列名,则相同的查询大约需要 5-10 毫秒。
    猜你喜欢
    • 2017-06-15
    • 1970-01-01
    • 2016-07-25
    • 2018-10-29
    • 1970-01-01
    • 2013-06-12
    • 1970-01-01
    • 2015-05-17
    • 2021-05-24
    相关资源
    最近更新 更多