zoukankan      html  css  js  c++  java
  • Elasticsearch split index 拆分索引

    1.将索引的分片数拆分成多个。

    _split API要求必须使用特定的number_of_routing_shards创建源索引,以便将来进行分割。在Elasticsearch 7.0中已经删除了这一要求。

    索引可以拆分多次,但拆分的最大分片数是由创建索引是的number_of_routing_shards决定的。拆分后的分片数量需是number_of_routing_shards的因子,即number_of_routing_shards是拆分后分片数的倍数。

    例如,原有主分片为5,number_of_routing_shards=30的索引,可以按如下几种情况拆分:

    • 5 → 10 → 30 (split by 2, then by 3)
    • 5 → 15 → 30 (split by 3, then by 2)
    • 5 → 30 (split by 6)

    2.例子:

    创建用于拆分的索引

    PUT my_source_index
    {
        "settings": {
            "index.number_of_shards" : 1,
            "index.number_of_routing_shards" : 6 
        }
    }

    设置为只读

    PUT /my_source_index/_settings
    {
      "settings": {
        "index.blocks.write": true 
      }
    }

    拆分索引分片

    POST my_source_index/_split/my_target_index
    {
      "settings": {
        "index.number_of_shards": 3
      }
    }

    3.拆分必须满足的条件:

    • 目标索引必须不存在
    • 索引的主碎片必须少于目标索引。
    • 目标索引中的主碎片数量必须是源索引中的主碎片数量的一个因子。
    • 处理拆分进程的节点必须有足够的空闲磁盘空间来容纳现有索引的第二个副本。

    4._split同样支持settings和aliases参数

    POST my_source_index/_split/my_target_index
    {
      "settings": {
        "index.number_of_shards": 5 
      },
      "aliases": {
        "my_search_indices": {}
      }
    }

    5.监控

    参考  https://www.cnblogs.com/libin2015/p/10654972.html

    参考资料:

    https://www.elastic.co/guide/en/elasticsearch/reference/6.2/indices-split-index.html

  • 相关阅读:
    多表查询,连表查询
    mysql数据概念难点
    mysql练习题
    linux下 redis
    nginx安装
    八皇后问题 OpenJ_Bailian
    Prime Ring Problem hdu-1016 DFS
    Oil Deposits hdu-1241 DFS
    Highways
    畅通工程再续
  • 原文地址:https://www.cnblogs.com/libin2015/p/10655476.html
Copyright © 2011-2022 走看看