3.5.6.Datastream
创作人:赵凯/金端
审稿人:周海清
Data stream 的概念
时序性数据
时间序列数据( time series data )是在不同时间上收集到的数据,用于所描述现象随时间变化的情况。这类数据反映了某一事物、现象等,随时间的变化状态或程度。
总的来说,这类数据主要基于时间特性明显,随着时间的流逝,往往过去时间的数据没有现在时间的重要或者敏感。
对于 Elastisearch 处理时序性数据,有人总结了主要有以下特点:
l 由时间戳 + 数据组成。基于时间的事件,可以是服务器日志或者社交媒体流。
l 通常搜索最近事件,旧文件变得不太重要。
l 索引的使用主要基于时间,但是数据并不一定随着时间均衡分布。
l 时序性数据一旦存入后很少修改。
l 时序性数据随着时间的增加,数据量会很大。
Elastisearch 在时序性数据的使用中,往往会有以下的缺点:
l 索引随着时间增加而数目较多。
l 索引大小无法均衡。
l 管理索引成本较高,需要维护 merge 合并删除等一系列任务。
l 节点资源与冷热数据分布不匹配。
在这样的一个场景下,数据流 data stream 应运而生。
data stream (数据流)是 Elastic Stack 7.9 的一个新的功能。data stream 可以跨多个索
引存储只追加时序性数据,同时为查询写入等请求提供唯一的一个命名资源。data stream 非常适合日志,事件,指标以及其他持续生成的数据。
简单来说,data stream 根据模板生成存储数据的后备索引,然后自动将搜索或者索引请求路由到存储流数据的后备索引。而这些后备索引则根据索引生命周期管理( ILM )来自动管理。
例如,你可以使用 ILM 自动将较旧的后备索引移动到较便宜的硬件上(冷热数据处理),根据索引大小自动 Rollover 出新的后备索引,或者删除到时间限制的索引。
在一定程度上,data stream 的管理优势是利用了 ILM 的特性。但是 ILM 在普通场景下需要根据索引的别名( alias )逐个设置,而 data stream 则是抛弃了 alias 的限制,可以直接批量化设置相似名称的索引,大大增加了 ILM 的使用范围。
《Elastic Stack 实战手册》——三、产品能力——3.5 进阶篇——3.5.6.Datastream (2) https://developer.aliyun.com/article/1228583