写入深度优化

阿里云Elasticsearch Serverless(简称ES Serverless)日志分析型应用通过将阿里云ES在日志场景的最佳实践和内核优化特性应用到索引中,提高日志场景下的读写性能,降低存储成本。考虑到部分特性可能会对索引的使用产生一定影响,我们提供了写入深度优化功能,在您明确这些特性对业务无影响的情况下,通过开启该功能,可以进一步提升日志场景下的收益。

索引调整

开启写入深度优化功能后索引的调整:

  • Text字段类型被调整为match_only_text,即"type": "match_only_text"

  • Text及keyword类型均开启 term_hash功能,即"term_hash_enable": true

  • 动态新增string字段类型会被设置为match_only_text并开启term_hash功能。

特性影响及收益

match_only_text

说明

官方7.14版本ES新引入字段类型match_only_text,详情请参见match-only-text-field-type

影响

  • 使用positions的查询如match_phrase的性能会受到影响。

  • 不支持span queries:使用interval queries代替span queries。

收益:日志数据集下节省约10%的磁盘空间。

TermHash

TermHash特性通过使用Hash结构替换原生ES的FST,以降低索引构建开销。

影响:不支持前缀查询,如prefix, match_phrase_prefix查询等。

收益:索引大小降低10%左右,写入性能提升20~30%。

使用建议

  • 建议您开启应用级别的写入深度优化功能。

    您可以在创建索引时设置是否开启写入深度优化,或在应用的应用详情页面调整写入深度优化的配置。具体操作请参见创建日志分析型应用

  • 建议您根据业务情况判断是否开启索引的写入深度优化功能:如果您明确上述特性对业务无影响,建议您开启索引的写入深度优化功能。

    在应用中创建索引时,索引默认采用应用级别的配置。如果需要修改索引配置,可以在索引的高级配置中进行修改。具体操作请参见创建索引修改索引配置