Elasticsearch 基于时间的索引

栏目: 编程工具 · 发布时间: 6年前

内容简介:对于数据量较大的业务功能(比如日志),如果使用单个 ES 索引来存储文档,与日俱增的数据量很快就会使得单个索引过大,因为无法水平扩展,最终会导致机器空间不足。这种大数据量的场景下,需要对数据进行切分,将数据分段存储在不同的索引中。根据数据增长速度的不同,可以选择按天索引(索引名称形如 2017-05-16),或者按月索引(索引名称形如 2017-05)等等。

应用场景

对于数据量较大的业务功能(比如日志),如果使用单个 ES 索引来存储文档,与日俱增的数据量很快就会使得单个索引过大,因为无法水平扩展,最终会导致机器空间不足。这种大数据量的场景下,需要对数据进行切分,将数据分段存储在不同的索引中。

Sizing Elasticsearch 介绍了常用的几种数据切分方法,因为这两天在工作中刚好用到过,所以在这里重点总结下 “基于时间的索引” ( time-based indices ) 的管理技巧。

选择时间范围

根据数据增长速度的不同,可以选择按天索引(索引名称形如 2017-05-16),或者按月索引(索引名称形如 2017-05)等等。

设计索引模板

面对这么多不断新增的索引,如何管理它们的 settings 和 mappings 呢?一个一个地去手动维护,无疑是个噩梦。这时,就需要用到 ES 的 Index Templates 机制。

Index Templates 的基本原理是:首先预定义一个或多个 “索引模板”(index template,其中包括 settings 和 mappings 配置);然后在创建索引时,一旦索引名称匹配了某个 “索引模板”,ES 就会自动将该 “索引模板” 包含的配置(settings 和 mappings)应用到这个新创建的索引上面。

以日志为例,假设我们的 ES 索引需求如下:

  1. 按天索引(索引名称形如 log-2017-05-16)
  2. 每天的日志数据,只会进入当天的索引
  3. 搜索的时候,希望搜索范围是所有的索引(借助 alias)

基于上述索引需求,对应的 “索引模板” 可以设计为:

$ curl -XPUT http://localhost:9200/_template/log_template -d '{
  "template": "log-*",
  "settings": {
    "number_of_shards": 1
  },
  "mappings": {
    "log": {
      "dynamic": false,
      "properties": {
        "content": {
          "type": "string"
        },
        "created_at": {
          "type": "date",
          "format": "dateOptionalTime"
        }
      }
    }
  },
  "aliases": {
    "search-logs": {}
  }
}'

两点说明:

  1. 创建索引时,如果索引名称的格式形如 “log-*”,ES 会自动将上述 settings 和 mappings 应用到该索引
  2. aliases 的配置,告诉 ES 在每次创建索引时,自动为该索引添加一个名为 “search-logs” 的 alias(别名)

索引与搜索

基于上述 “索引模板” 的设计,索引与搜索的策略就很直接了。

索引策略:每天的数据,只索引到当天对应的索引。比如,2017 年 5 月 16 日这天的数据,只索引到 log-2017-05-16 这个索引当中。

搜索策略:因为搜索需求是希望全量搜索,所以在搜索的时候,索引名称使用 “search-logs” 这个 alias 即可。

更多关于 “如何有效管理基于时间的索引” 的技巧,可以参考 Managing Elasticsearch time-based indices efficiently


以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

XSS跨站脚本攻击剖析与防御

XSS跨站脚本攻击剖析与防御

邱永华 / 人民邮电出版社 / 2013-9-1 / 49.00元

《XSS跨站脚本攻击剖析与防御》是一本专门剖析XSS安全的专业书,总共8章,主要包括的内容如下。第1章 XSS初探,主要阐述了XSS的基础知识,包括XSS的攻击原理和危害。第2章 XSS利用方式,就当前比较流行的XSS利用方式做了深入的剖析,这些攻击往往基于客户端,从挂马、窃取Cookies、会话劫持到钓鱼欺骗,各种攻击都不容忽视。第3章 XSS测试和利用工具,介绍了一些常见的XSS测试工具。第4......一起来看看 《XSS跨站脚本攻击剖析与防御》 这本书的介绍吧!

HTML 编码/解码
HTML 编码/解码

HTML 编码/解码

XML 在线格式化
XML 在线格式化

在线 XML 格式化压缩工具

HEX HSV 转换工具
HEX HSV 转换工具

HEX HSV 互换工具