创建索引模板

数据流可以跨多个索引存储实现数据时间序列的增加。而在使用数据流之前,需要创建索引模板,通过模板配置数据流后备索引的结构,将数据准确快速地写入索引中。本文介绍如何创建索引模板。

前提条件

已创建7.10内核增强版的Elasticsearch(简称ES)实例。详细信息,请参见创建阿里云Elasticsearch实例

使用限制

  • 仅7.10内核增强版Elasicsearch实例支持索引模板管理功能。

  • 写入到数据流中的数据需要为日志、事件、指标或其他持续生成的数据。

  • 写入到数据流中的每个文档都需要包含一个@timestamp字段,否则写入会报错。

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

    • 建议在索引模板中为@timestamp字段指定映射。如果不指定,该字段会映射为Elasticsearch中的date或者date_nanos类型的字段。

    • 内核增强版实例默认提供低优先级aliyun_default_index_template模板供索引模式[*]匹配,以便降低日志场景应用成本。应用该模板将开启字段预排序(index.sort.field)能力,提高时序数据搜索能力,nested类型字段不支持预排序,建议在模板中关闭。

操作步骤

说明

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

  1. 登录阿里云Elasticsearch控制台
  2. 在左侧导航栏,单击Elasticsearch实例
  3. 进入目标实例。
    1. 在顶部菜单栏处,选择资源组和地域。
    2. Elasticsearch实例中单击目标实例ID。
  4. 在左侧导航栏,选择配置与管理 > 索引管理中心

  5. 单击索引模板管理页签。

  6. 单击创建索引模板

  7. 可选:创建索引模板面板,配置索引生命周期策略。

    说明

    如果您无需对数据流后备索引进行生命周期策略管理,单击跳过此步即可。

    关键参数

    说明

    索引生命周期策略

    • 新建索引生命周期策略:创建新的索引生命周期策略。

    • 选择已有索引生命周期策略:选择集群中已存在的生命周期策略。

    策略名称

    • 选择新建索引生命周期策略时,需要自定义输入。

    • 选择已有索引生命周期策略时,需要在下拉列表中选择集群中已存在的生命周期策略。对应策略的其他配置会自动应用到当前索引模板中,您可在此基础上进行修改。

    热阶段

    默认开启热阶段,不可关闭。

    开启滚动更新

    建议配置索引生命周期滚动策略,通过ILM自动管理数据流后备索引,实现云端托管空间最优化。

    • ILM默认10分钟检测一次符合策略标准的索引。在使用过程中您可能会发现索引已满足Rollover条件,但实际没有立即触发滚动,这主要与ILM检查周期有关,可通过indices.lifecycle.poll_interval参数修改检测周期。

    • 如果不配置索引滚动策略,索引数据会全量存储在云托管服务Indexing Service中,将会增加云托管费用。

    取消托管时间

    默认为3天,3天后自动退出Indexing Service写入托管服务,减少计费开销。如果您设置的时长超过冷阶段或删除阶段的开始时间,索引进入相应阶段后会自动取消托管。取消托管后索引变成只读,索引将不再通过Indexing Service进行写入加速。

    重要

    长期数据托管会产生索引托管存储费用,建议根据业务情况,在索引不再有写入后设置取消托管。为保证托管服务稳定性,云端对写入托管时长及托管Shard数有相关限制,详细信息请参见OpenStore存储引擎介绍

    冷阶段

    • OpenStore存储的版本为自定义冷热存储时,支持开启并配置冷阶段。

    • OpenStore存储的版本为智能混合存储时,无冷阶段。

    OpenStore存储

    开启冷阶段后,才可开启OpenStore存储。当您面临查询复杂度大、海量存储成本高的问题时,建议开启OpenStore存储,详细信息请参见通过OpenStore自定义冷热存储实现海量数据存储。使用该功能需要注意以下几点:

    • 对于阿里云Elasicsearch 7.10内核增强版Indexing Service系列实例,只有在新购时开启了OpenStore自定义冷热存储功能,才能配置OpenStore相关信息。

    • 如果您开启了索引生命周期中的冷阶段和OpenStore存储,那么到达索引迁移时间后,系统将自动迁移数据至冷数据节点及OpenStore存储。

    删除时间

    支持设置索引的删除时间。对于OpenStore智能混合存储,在索引删除前,Elasticsearch会根据索引的读写频率进行数据智能存储分层。

  8. 单击保存并下一步,在索引模板配置向导中,配置索引模板信息。

    参数

    说明

    模板名称

    自定义输入索引模板名称。

    索引模式

    定义索引模式。支持通配符(*)表达式匹配数据流及索引名称,不允许使用空格和特殊字符:\ /?" <>|

    说明

    Kibana中创建索引模式时,只能匹配前100个索引。

    创建数据流

    开启数据流模式。如果未开启,索引模式无法生成数据流。详细信息,请参见Data stream

    优先级

    定义模板优先级,数值越大,优先级越高。

    索引生命周期策略

    如果您已在上一步创建了索引生命周期策略,系统直接在此处引用您创建的策略,且不能更改;如果您未在上一步创建生命周期策略,可以根据需求选择不填或者填入集群中已存在的生命周期策略名称,且只能填入一个策略名称。关于生命周期策略的详细信息,请参见ILM

    内容模板配置

    配置索引SettingsMappingsAliases组合内容模板

    重要
    • 写入到数据流中的每个文档都要求包含一个@timestamp字段,建议在索引模板中为@timestamp字段指定映射。如果不指定,该字段会映射为Elasticsearch中的date或者date_nanos类型的字段。

    • 配置格式严格按照Elastic官方配置。

    本文使用的代码样例为:

    • Settings

      {
          "index.number_of_replicas": "1", 
          "index.number_of_shards": "5"
      }
    • Mappings

      {
          "properties": {
              "like": {
                  "type": "keyword"
              }, 
              "name": {
                  "type": "text"
              }, 
              "age": {
                  "type": "integer"
              }, 
              "email": {
                  "type": "keyword"
              }
          }
      }
    • Aliases

      {
          "aliases": {
              "demo": { }
          }
      }
    • 组合内容模板:

      • component-openstore-index-template:OpenStore自定义冷热存储的组合模板。

      • component-hybrid-openstore-index-template:OpenStore智能混合存储的组合模板。

  9. 单击确认

    • 已创建的索引模板会显示在索引模板列表中。

      首次进入索引模板管理页面,可以查看阿里云Elasticsearch默认创建的索引模板,建议不要修改这些默认模板的配置。

      说明

      索引模板的内容模板表示该模板引用的内容模板,引用内容模板可生成组合模板。单击对应的内容模板名称,可直接跳转至内容模板管理页面,管理对应的内容模板,详细信息请参见内容模板管理

    • 在索引模板列表中,单击目标索引模板操作列中的修改,修改当前已创建的索引模板。

      直接单击对应的索引模板名称索引生命周期策略,也可以查看和修改索引模板。

相关文档