美文网首页
ElasticSearch 索引模版使用

ElasticSearch 索引模版使用

作者: 国服最坑开发 | 来源:发表于2024-08-16 11:03 被阅读0次

    0x01 为啥提到这个

    • 当然是遇到痛点了。

    当我们有3-5个数据节点,但是没有指定分片数的时候,那么可能产生一个后果: 新创建的索引文件仅保存在一个数据节点上。
    这会产生两个问题:写入慢, 查询慢。

    怎么解决这个问题?下面聊到索引的两个概念:

    • 分片数(shard)

      • 分片数是指一个索引文件,可以分拆成几份,可以在物理上实现分布式存储。
      • 优点是可以提高文档的吞吐速度,发挥多数据节点价值
      • 分片数设置:一般设置成数据节点数即可。 后期有优化再更新
    • 副本数(replica)

      • 同一份文档有多个备份。主要解决数据节点发生单点故障时使用。
      • 例: 对于日志型文档,如果无所谓的话,可以把 副本数 设置为:0
           如果设置成1 的话,那么就需要占用两倍的存储空间。

    0x02 如何使用

    一般情况下,我们采用的按天自动生成索引的方式进行工作,如果要对每一个索引去设置分片数和副本数,就比较累了。

    这时候,就是索引模版登场的时机了。

    使用前,应该了解的信息:

    1、索引模版:通过索引名称的通配符,去作用新创建的索引,无法更新已存在的索引。
    2、索引模版:可以把上述 分片数、副本数等信息,自动作用于新创建的索引。
    

    0x03 来个例子

    这里的场景:
    1、有三个数据节点,
    2、设置为3个分片数
    3、无需副本数
    4、把所有属性都保存下来
    

    再来几个常用指令, 直接在kibana的开发者窗口执行:

    • 创建索引模版
    PUT _template/sit
    {
      "index_patterns": ["sit*"], 
      "settings": {
        "number_of_shards": 3,   
        "number_of_replicas": 0       
      },
      "mappings": {
        "dynamic_templates": [
          {
            "all_fields": {
              "match_mapping_type": "*",
              "mapping": {
                "type": "{dynamic_type}",
                "fields": {
                  "keyword": {
                    "type": "keyword",
                    "ignore_above": 256
                  }
                }
              }
            }
          }
        ]
      }
    }
    
    • 查看索引模版
    GET _template/sit
    
    • 创建索引
    PUT /sit-3024.08.17
    
    • 查看索引
    GET /sit-3024.08.17
    

    相关文章

      网友评论

          本文标题:ElasticSearch 索引模版使用

          本文链接:https://www.haomeiwen.com/subject/nkdykjtx.html