数据流可以跨多个索引存储实现数据时间序列的增加。而在使用数据流之前,需要创建索引模板,通过模板配置数据流后备索引的结构,将数据准确快速地写入索引中。本文介绍如何创建索引模板。
前提条件
已创建7.10内核增强版的Elasticsearch(简称ES)实例。详细信息,请参见创建阿里云Elasticsearch实例。
使用限制
- 仅开启Indexing Service索引构建服务或Openstore存储的7.10版本实例支持在ES控制台使用索引模板管理功能。 
- 写入到数据流中的数据需要为日志、事件、指标或其他持续生成的数据。 
- 写入到数据流中的每个文档都需要包含一个@timestamp字段,否则写入会报错。 - 如果源数据中没有@timestamp字段数据,可使用ingest pipeline指定_ingest.timestamp获取元数据值,从而引入@timestamp字段数据。 
- 建议在索引模板中为@timestamp字段指定映射。如果不指定,该字段会映射为Elasticsearch中的date或者date_nanos类型的字段。 
- 内核增强版实例默认提供低优先级 - aliyun_default_index_template模板供索引模式[*]匹配,以便降低日志场景应用成本。应用该模板将开启字段预排序(index.sort.field)能力,提高时序数据搜索能力,- nested类型字段不支持预排序,建议在模板中关闭。
 
操作步骤
频繁的Put Mapping将消耗大量的计算资源,对托管服务稳定性影响极大。建议您写数据前提前定义索引模板,降低Put Mapping操作。
- 在左侧导航栏,单击Elasticsearch实例。 
- 进入目标实例。 - 在顶部菜单栏处,选择资源组和地域。 
- 在Elasticsearch实例中单击目标实例ID。 
 
- 在左侧导航栏,选择。 
- 单击索引模板管理页签。 
- 单击创建索引模板。 
- 可选:在创建索引模板面板,配置索引生命周期策略。 说明- 如果您无需对数据流后备索引进行生命周期策略管理,单击跳过此步即可。 - 关键参数 - 说明 - 索引生命周期策略 - 新建索引生命周期策略:创建新的索引生命周期策略。 
- 选择已有索引生命周期策略:选择集群中已存在的生命周期策略。 
 - 策略名称 - 选择新建索引生命周期策略时,需要自定义输入。 
- 选择已有索引生命周期策略时,需要在下拉列表中选择集群中已存在的生命周期策略。对应策略的其他配置会自动应用到当前索引模板中,您可在此基础上进行修改。 
 - 热阶段 - 默认开启热阶段,不可关闭。 - 开启滚动更新 - 建议配置索引生命周期滚动策略,通过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会根据索引的读写频率进行数据智能存储分层。 
- 单击保存并下一步,在索引模板配置向导中,配置索引模板信息。 - 参数 - 说明 - 模板名称 - 自定义输入索引模板名称。 - 索引模式 - 定义索引模式。支持通配符(*)表达式匹配数据流及索引名称,不允许使用空格和特殊字符: - \、- /、- ?、- "、- <、- >和- |。说明- Kibana中创建索引模式时,只能匹配前100个索引。 - 创建数据流 - 开启数据流模式。如果未开启,索引模式无法生成数据流。详细信息,请参见Data stream。 - 优先级 - 定义模板优先级,数值越大,优先级越高。 - 索引生命周期策略 - 如果您已在上一步创建了索引生命周期策略,系统直接在此处引用您创建的策略,且不能更改;如果您未在上一步创建生命周期策略,可以根据需求选择不填或者填入集群中已存在的生命周期策略名称,且只能填入一个策略名称。关于生命周期策略的详细信息,请参见ILM。 - 内容模板配置 - 配置索引Settings、Mappings、Aliases和组合内容模板。 重要- 写入到数据流中的每个文档都要求包含一个@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智能混合存储的组合模板。 
 
 
- 单击确认。 - 已创建的索引模板会显示在索引模板列表中。 - 首次进入索引模板管理页面,可以查看阿里云Elasticsearch默认创建的索引模板,建议不要修改这些默认模板的配置。 说明- 索引模板的内容模板表示该模板引用的内容模板,引用内容模板可生成组合模板。单击对应的内容模板名称,可直接跳转至内容模板管理页面,管理对应的内容模板,详细信息请参见内容模板管理。 
- 在索引模板列表中,单击目标索引模板操作列中的修改,修改当前已创建的索引模板。 - 直接单击对应的索引模板名称或索引生命周期策略,也可以查看和修改索引模板。