gpt4 book ai didi

database-design - Cassandra:具有时间戳和大数据集的表设计

转载 作者:行者123 更新时间:2023-12-02 11:48:25 25 4
gpt4 key购买 nike

我在一天查询大量数据时遇到问题。我正在寻找有关创建高效表架构的建议。

表:事件日志

栏目:recordid(UUID)、insertedtimestamp(时间戳)、source(文本)、event(文本)

如果我只是这样做:

CREATE TABLE eventlog (
recordid uuid PRIMARY KEY,
insertedtimestamp timestamp,
source text,
event text
);

假设今天是 1/25,那么下面的查询将被大量数据淹没。

select * from eventlog where insertedtimestamp > '2017-01-25';

我们的目标是选择一天中的所有记录,因为我们知道我们需要使用可能有数百万条记录的表进行有效的分区。我将如何设计一个有效的表模式(什么分区键设置)?谢谢。

最佳答案

虽然您想获取一天内的所有记录,但可以使用此架构

CREATE TABLE eventlog (
day int,
month int,
year int,
recordid uuid,
insertedtimestamp timestamp,
source text,
event text,
PRIMARY KEY((day,month,year),recordid)
);

因此,一天内的所有数据都将位于单个节点中。现在,您可以使用以下查询更有效地获取日期(例如 2017-01-25)的数据

SELECT* FROM eventlog WHERE day = 25 and month = 1 and year = 2017 

关于database-design - Cassandra:具有时间戳和大数据集的表设计,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41856542/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com