在一个几乎每次都推送数据的系统中ms
,使用的最佳时间桶大小是多少?
查询通常只针对数据的一个子集(取决于密钥),时间跨度从几分钟到几小时不等。
建议设置块的大小,所以它是包括数据和索引在内的内存的 25%。所以所有的插入都会进入内存中的热数据。
来自Timesacle 文档的建议:
选择时间间隔的关键属性是属于最近间隔的块(包括索引)(或块,如果使用空间分区)适合内存。因此,我们通常建议设置间隔,以便这些块包含不超过 25% 的主内存。
提示:确保您计划将所有活动超表中的单个块放入主内存的 25%,而不是每个超表的 25%。
要估计块的大小,重要的是要考虑列数和值的平均大小,除了速率之外,还要考虑索引中值的大小。同样来自文档:
要确定这一点,您需要大致了解您的数据速率。如果您每天要写入大约 2GB 的数据并拥有 64GB 的内存,那么将时间间隔设置为一周会很好。如果您每天在同一台机器上写入 10GB,则将时间间隔设置为一天是合适的。
块的大小可以更改,并且只会影响新的块。在时间段完全完成并使用新的块大小之前,太大的块可能会影响摄取率。