【问题标题】:how do I delete the data from cassandra如何从 cassandra 中删除数据
【发布时间】:2018-04-24 20:42:59
【问题描述】:

我用的是Cassandra 3.6 Database,表定义是这样的。

CREATE TABLE sg.products (
    date_updated text,
    time_added int,
    id text,
    best_seller text,
    company text,
    PRIMARY KEY (date_updated, time_added, id)
) WITH CLUSTERING ORDER BY (time_added ASC, id ASC)
    AND bloom_filter_fp_chance = 0.01
    AND caching = {'keys': 'ALL', 'rows_per_partition': 'NONE'}
    AND comment = ''
    AND compaction = {'class': 'org.apache.cassandra.db.compaction.SizeTieredCompactionStrategy', 'max_threshold': '32', 'min_threshold': '4'}
    AND compression = {'chunk_length_in_kb': '64', 'class': 'org.apache.cassandra.io.compress.LZ4Compressor'}
    AND crc_check_chance = 1.0
    AND dclocal_read_repair_chance = 0.1
    AND default_time_to_live = 0
    AND gc_grace_seconds = 864000
    AND max_index_interval = 2048
    AND memtable_flush_period_in_ms = 0
    AND min_index_interval = 128
    AND read_repair_chance = 0.0
    AND speculative_retry = '99PERCENTILE';

表格有数百万条数据。

在“产品”表中,我删除了 best_seller 列,成功删除了该列。 但是当我检查空间磁盘时,它并没有法令,

所以我在谷歌上查询并找到了这个词“墓碑”,

所以 Cassandra 并没有删除数据,而是保存到墓碑中。

现在我的问题是如何删除墓碑数据?这样我可以节省内存。

或者有什么办法可以节省内存?

提前致谢。

【问题讨论】:

    标签: cassandra cql


    【解决方案1】:

    墓碑掉落 当压缩触发时,Cassandra 将完全删除这些墓碑,仅在数据所属表上定义的 local_delete_time + gc_grace_seconds 之后。请记住,所有节点都应该在 gc_grace_seconds 内修复,以确保墓碑的正确分布并防止已删除的数据再次出现。

    【讨论】:

    • 感谢@ravan96 的快速解答,您的意思是在 gc_grace_seconds “10 天”到期后。我得到了被删除数据占用的空间。
    • 是的@Ganesh,你可以在这里阅读更多相同的信息 - thelastpickle.com/blog/2016/07/27/…
    【解决方案2】:

    从你的表定义中看到这一行:

    AND gc_grace_seconds = 864000
    

    这是墓碑将存在的时间段。 864000 秒 == 10 天。墓碑在这段时间内存在,以允许它们有足够的时间分配给集群中的其他节点。这样所有其他节点都知道删除,并且不会返回过时的值。

    一旦 10 天的时间过去了,并且该表下一次触发压缩(10 天之后),墓碑将被删除。

    请注意,您可以通过修改表定义中的该属性来缩短该时间段。只需确保您在该时间范围内进行维修即可。

    【讨论】:

    • 感谢 Aaron 的快速解答,你的意思是 10 天后我得到了被删除数据占用的空间。
    • @Ganesh 是的。只要没有任何快照包含指向任何 SSTable 文件的硬链接,那么在 10 天后该表下一次触发压缩时,逻辑删除和基础过时数据将从磁盘中删除。
    猜你喜欢
    • 2014-11-11
    • 2016-10-18
    • 2021-07-28
    • 2011-09-08
    • 2021-12-17
    • 2012-05-18
    • 1970-01-01
    • 2015-03-07
    • 2012-11-19
    相关资源
    最近更新 更多