【发布时间】:2018-07-19 20:55:09
【问题描述】:
查询 1:来自设备的事件数据存储在 Cassandra 表中。显然这是时间序列数据。如果我们需要在当前时间存储多长时间的过时事件(如果由于某些问题而缓存在设备中),我们会遇到性能问题吗?如果是,有什么方法可以避免这种情况?
查询 2:一旦事件进入就将事件写入 Cassandra 表是一种好习惯吗?或者,如果这样可以显着提高 Cassandra 的写入性能,我们是否应该将其排队一段时间以一次性写入多个事件?
【问题讨论】:
查询 1:来自设备的事件数据存储在 Cassandra 表中。显然这是时间序列数据。如果我们需要在当前时间存储多长时间的过时事件(如果由于某些问题而缓存在设备中),我们会遇到性能问题吗?如果是,有什么方法可以避免这种情况?
查询 2:一旦事件进入就将事件写入 Cassandra 表是一种好习惯吗?或者,如果这样可以显着提高 Cassandra 的写入性能,我们是否应该将其排队一段时间以一次性写入多个事件?
【问题讨论】:
Q1:这一切都取决于桌子的设计。通常这应该不是问题,但这可能取决于您的访问模式和压缩策略。如果你有表结构,请分享一下。
Q2:单个写入应该不是问题,但这实际上取决于您对吞吐量的要求。如果您要写入多个属于同一分区键的数据点,您可能会使用未记录的批处理,在这种情况下,Cassandra 将只对该批处理中的多个插入执行一次写入。请阅读this document。
【讨论】: