数据流管理

重要

本文中含有需要您注意的重要提示信息,忽略该信息可能对您的业务造成影响,请务必仔细阅读。

数据流管理功能可以实现跨多索引存储,且仅追加时间序列数据,同时为请求提供唯一的命名资源。本文介绍如何创建数据流、查看或删除数据流、滚动更新数据流等。

背景信息

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

前提条件

  • 已购买阿里云Elasticsearch 7.10日志增强版Indexing Service系列,具体操作请参见创建阿里云Elasticsearch实例

  • 数据场景为日志、事件、指标或其他持续生成数据的场景。

  • 已创建完可匹配数据流的索引模板

  • 写入到数据流中的每个文档都要求包含一个@timestamp,映射为date或者date_nanos类型的字段,请确保源端数据存在@timestamp字段数据,否则写入会报错。

    说明

    如果源数据中没有@timestamp字段数据,可使用ingest pipeline指定_ingest.timestamp获取元数据值,从而引入@timestamp字段数据。

使用限制

仅阿里云Elasticsearch 7.10日志增强版Indexing Service实例支持数据流管理功能。

注意事项

  • Indexing Service按照写入托管索引总大小和写入流量进行按量计费,业务上建议使用数据流(Data Stream)和索引生命周期管理(ILM)滚动策略实现云端托管空间最优化。

  • Indexing Service托管索引默认3天将自动取消托管,请根据具体业务场景评估取消托管时间,支持在控制台上手动关闭和API关闭。

  • Indexing Service场景,索引处于托管状态,不兼容ILM Action中的shrink操作,建议当索引处于未托管状态时,执行shrink配置。详细信息,请参见ILM-shrink

  • Indexing Service日志增强版实例与用户集群进行数据同步时,依赖于apack/cube/metadata/sync任务(可通过GET _cat/tasks?v命令获取该任务信息),不建议手动清理该任务。如果被清理,请尽快使用POST /_cube/meta/sync命令恢复,否则会影响业务写入。

  • 频繁的Put Mapping将消耗大量的计算资源,对托管服务稳定性影响极大。建议您写数据前提前定义索引模板,降低Put Mapping操作。

基本概念

  • 数据流及后备索引

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

    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实例中单击目标实例ID。
  4. 在左侧导航栏,选择配置与管理 > 索引管理中心

  5. 单击数据流管理页签。

  6. 单击创建数据流

  7. 创建数据流面板,单击预览已有索引模板,根据对应的索引模板,输入可匹配索引模板的数据流名称。

    fig_ds
    重要
    • 创建数据流之前必须存在数据流可匹配的索引模板,该模板包含用于配置数据流的后备索引映射及设置。

    • 数据流名称支持以短划线(-)结尾,不支持通配符星号(*)。

  8. 单击确定,系统会自动生成数据流及后备索引。

    每个数据流创建成功后,都会自动生成一个统一格式的后备索引,格式如下。

    .ds-<data-stream>-<yyyy.MM.dd>-<generation>

    参数

    说明

    .ds

    隐藏索引名统一标识,数据流生成的后备索引名,默认均以.ds开头。

    <data-stream>

    数据流名称。

    <yyyy.MM.dd>

    后备索引创建日期。

    <generation>

    每个数据流都会生成一个六位数,默认从000001开始的累积整数值,generation值更大的后备索引包含更多新数据。

查看数据流信息

  1. 数据流管理页面,单击对应数据流名称,查看该数据流的后备索引名称、索引状态、存储大小、创建时间、当前生命周期阶段以及写入托管状态。

    查看数据流后备索引信息
    说明

    单击对应的后备索引名称,可进入Kibana控制台的索引监控页面,查看索引的监控详情。

  2. 单击对应数据流右侧的查看,在查看数据流页面,查看数据流名称、数据流状态、索引数量、索引模板、生命周期策略及存储空间。

    查看数据流的详细信息数据流状态包含GREEN、YELLOW和RED,含义如下:

    • GREEN:数据流支持的索引所有分片均已分配。

    • YELLOW:数据流支持的索引主分片均已分配,但存在副本分片未分配。

    • RED:数据流支持的索引存在主分片未分配,会导致某些数据不可用。

查看索引托管信息

数据流管理页面,您可以查看索引托管的相关信息。查看索引托管相关信息

参数

说明

云端托管索引总大小

当前时刻,正处于云端写入托管中的索引总大小。

重要

云端托管索引总大小为实时变化数值,不是历史索引总大小。

索引个数

当前时刻,正处于云端写入托管中的索引总个数。 该数值为当前系统中的实时数值。

重要

索引个数为实时变化数值,不是历史索引总个数。

写入托管状态

  • 开启:该后备索引的云端写入托管处于开启状态。默认开启。

  • 关闭:取消该后备索引的云端写入托管。支持手动关闭,关闭后不支持开启。

说明
  • 手动关闭某一索引的云端写入托管,数据将直接写入用户集群中。请在关闭前确认该索引是否持续有数据写入,以及用户集群负载情况,否则可能出现用户集群负载较高风险。

  • 触发手动滚动更新或索引生命周期管理(ILM)配置Rollover自动更新后,旧的后备索引将自动关闭写入托管能力。

  • 当正在写数据的后备索引关闭写入托管能力,待触发下次Rollover,最新创建的后备索引将处于写入托管中,可以在控制台数据流下查看最新的后备索引。

  • 业务上建议配置索引生命周期管理(ILM)滚动策略,实现云端托管空间最优化。如果不配置,索引数据会全量存储在云托管服务Indexing Service中,将会增加云托管费用。

滚动更新数据流

  1. 数据流管理页面,单击对应数据流右侧的手动滚动更新

  2. 在弹出的对话框中,单击确认

    滚动生成的新的后备索引会默认在云端Indexing Service进行写入托管,旧的后备索引将自动关闭写入托管。

删除数据流

警告

删除数据流的同时会删除其对应的后备索引,且删除后不可恢复,请谨慎操作。

  1. 数据流管理页面,单击对应数据流右侧的删除

  2. 在弹出的对话框中,单击确认

相关文档