数据流管理功能可以实现跨多索引存储,且仅追加时间序列数据,同时为请求提供唯一的命名资源。本文将针对数据流管理功能为您展开详细介绍。

背景信息

数据流管理功能适用于日志、事件、指标和其他连续生成数据的场景。如果您将索引和请求直接提交到数据流,数据流会自动将请求路由到存储数据流数据的后备索引上。您可以使用索引生命周期管理功能(ILM)来管理后备索引,将较旧的后备索引移动到低价的硬件上,并删除不需要的索引,从而帮助您降低成本及开销。

阿里云Elasticsearch仅7.10日志增强版Indexing Service支持此功能。

前提条件

  • 您已购买阿里云Elasticsearch 7.10日志增强版Indexing Service系列。
  • 数据场景为日志、事件、指标或其他持续生成数据的场景。
  • 已创建完可匹配数据流的索引模板
  • 写入到数据流中的每个文档都要求包含一个@timestamp,映射为date或者date_nanos类型的字段,请确保源端数据存在@timestamp字段数据,否则写入会报错。
说明 如果源数据中没有@timestamp字段数据,可使用ingest pipeline指定_ingest.timestamp获取元数据值,从而引入@timestamp字段数据。

注意事项

  • Indexing Service按照写入托管索引总大小和写入流量进行按量计费,业务上建议使用数据流(Data Stream)和索引生命周期管理(ILM)滚动策略实现云端托管空间最优化。
  • 如果数据流(Data Stream)不开启索引生命周期管理(ILM)滚动策略或使用独立索引(非Data Stream数据集),数据会全量存储在写入托管服务上,将会增加写入托管费用,请根据具体的使用场景评估您是否需要关闭写入托管服务功能,仅支持控制台手动关闭。

基本概念

  • 数据流及后备索引

    数据流由一个或多个自动生成的后备索引组成,每个数据流都需要一个匹配的索引模板,该模板包含用于配置数据流的后备索引的映射和设置。相同的索引模板可用于多个数据流,但不能删除数据流正在使用的索引模板。

    fig0
  • 读/写请求处理
    • 当您向数据流提交读取请求时,该数据流会将请求路由到其他所有后备索引上。fig01
    • 当您向数据流提交写请求时,该请求将会落盘在最近创建的后备索引上。数据流只会将新文档添加到此索引上,即使您直接将请求发送到其他后备索引上,也不会将新文档添加到其他后备索引上。fig02
  • 滚动更新Rollover
    滚动更新Rollover将为数据流创建一个新的后备索引,该后备索引将成为该数据流新的写入索引。当前支持以下两种方式:
    • 自动滚动更新:通过配置ILM索引生命管理策略实现。当写索引达到指定的大小或时间时,建议使用。具体信息,请参见ILM
    • 手动滚动更新:通过Rollover API实现,需要执行POST /my-data-stream/_rollover/命令。具体信息,请参见手动滚动数据流
  • 仅追加

    数据流适用于很少有更新的时序场景,不支持将文档的更新或删除请求直接发给数据流,可以通过update by query或者delete by query API进行文档的更新或删除;也可以直接向文档所在的后备索引发送请求,进行文档的update or delete

操作步骤

  1. 登录阿里云Elasticsearch控制台
  2. 在左侧导航栏,单击Elasticsearch实例
  3. 进入目标实例。
    1. 在顶部菜单栏处,选择资源组和地域。
    2. 在左侧导航栏单击Elasticsearch实例,然后在Elasticsearch实例中单击目标实例ID。
  4. 在左侧导航栏,选择配置与管理 > 索引管理中心
  5. 单击数据流管理页签。
  6. 单击创建数据流
  7. 创建数据流面板,单击预览已有索引模板,根据对应的索引模板,输入可匹配索引模板的数据流名称。
    fig_ds
    注意
    • 创建数据流之前必须存在数据流可匹配的索引模板,该模板包含用于配置数据流的后备索引映射及设置。
    • 数据流命名不支持匹配符星号(*),支持短划线(-)结尾。
  8. 单击确定,自动生成数据流及后备索引。
    figa
    每个数据流创建成功后,都会自动生成一个统一格式的后备索引,格式如下:
    .ds-<data-stream>-<yyyy.MM.dd>-<generation>
    格式 说明
    .ds 隐藏索引名统一标识,数据流生成的后备索引名,默认均以.ds开头。
    <data-stream> 数据流名称。
    <yyyy.MM.dd> 后备索引创建日期。
    <generation> 每个数据流都会生成一个六位数,默认从000001开始的累积整数值,generation值更大的后备索引包含更多新数据。

手动滚动更新

  1. 进入数据流管理模块。
  2. 选择对应的数据流名称,单击手动滚动更新,滚动生成的新的后备索引会默认在云端Indexing Service进行写入托管,旧的后备索引将自动关闭写入托管。
    figb
    功能 说明
    查看 查看数据流名称、数据流健康状态、索引数量、索引模板、生命周期策略及存储空间。
    数据流健康状态
    • green:数据流支持的索引所有分片均已分配。
    • yellow:数据流支持的索引主分片均已分配,但存在副本分片未分配。
    • red:数据流支持的索引存在主分片未分配,会导致某些数据不可用。
    云端托管索引总大小 当前时刻,正处于云端写入托管中的索引总大小。
    注意 云端托管索引总大小为实时变化数值,不是历史索引总大小。
    索引个数 当前时刻,正处于云端写入托管中的索引总个数。 该数值为当前系统中的实时数值。
    注意 索引个数为实时变化数值,不是历史索引总个数。
    手动滚动更新 调用Rollover Api手动更新数据流
    写入托管状态
    • 开启:该后备索引的云端写入托管处于开启状态。默认开启。
    • 关闭:取消该后备索引的云端写入托管。支持手动关闭,关闭后不支持开启。
    说明
    • 手动关闭某一索引的云端写入托管,数据将直接写入用户集群中。请在关闭前确认该索引是否持续有数据写入,以及用户集群负载情况,否则可能出现用户集群负载较高风险。
    • 触发手动滚动更新或索引生命周期管理(ILM)配置Rollover自动更新后,旧的后备索引将自动关闭写入托管能力。
    • 当正在写数据的后备索引关闭写入托管能力,待触发下次Rollover,最新创建的后备索引将处于写入托管中,可以在控制台数据流下查看最新的后备索引。
    • 业务上建议配置索引生命周期管理(ILM)滚动策略,实现云端托管空间最优化。如果不配置,索引数据会全量存储在云托管服务Indexing Service中,将会增加云托管费用。
  3. 单击对应的后备索引名称,将跳转至Kibana控制台索引监控页面。
    figc

相关文档