【问题标题】:Cassandra data model for high ingestion rate and delete operation用于高摄取率和删除操作的 Cassandra 数据模型
【发布时间】:2020-11-26 12:35:54
【问题描述】:

我正在使用以下 Cassandra 数据模型

ruleid - bigint
patternid - bigint
key - string
value - string 
time - timestamp
event_uuid -time based uuid
partition key - ruleid, patterid
clustering key - event_uuid order by descending

我们的摄取速率约为每个模式 id 每秒 100 条记录,并且可能有 10 000 多个模式 id。

我们的查询相当简单,我们根据分区键过滤的 desc uuid 查询最后 100 000 条记录。

此外,对于我们的用例,我们需要在每个模式 id 上每秒执行大约 5 次删除。

但这会导致所谓的墓碑,并导致再次查询数据存储区时出现读取超时。

如何克服上述问题?

【问题讨论】:

    标签: cassandra


    【解决方案1】:

    听起来您正在将记录存储到表中,对记录进行一些转换/处理,然后删除它们。

    但由于您在分区中删除行(而不是分区本身),您必须遍历已删除的行(墓碑)才能获得实时记录。

    但真正的问题是读取的行数过多而效果不佳。检索 100K 行会很慢,因此请考虑对结果集进行分页。

    由于您提供的信息有限,这不是一个容易解决的问题。干杯!

    【讨论】:

    • 我们目前正在使用 datastax 驱动程序进行分页。但我们主要关心的是墓碑的创建。因此,如果有任何方法可以克服这个问题,那将非常有帮助。我们只需要 24 小时的数据。我们还可以将每个 patternid 每天的删除限制为 100 万条记录。所以只是想确保这种方法是否可行。
    猜你喜欢
    • 1970-01-01
    • 2020-11-17
    • 1970-01-01
    • 2016-11-22
    • 2017-03-10
    • 2019-07-02
    • 1970-01-01
    • 2014-06-14
    • 1970-01-01
    相关资源
    最近更新 更多