概述
elasticsearch 從6.1版本開始支持shard split。但是和solr不同,elasticsearch并不支持針對單個shard split,而是支持索引級別的split焚碌。elasticsearch支持從一個索引split到另外一個索引垃僚,源索引的每一個shard都會split成目標索引的兩個或者多個shard。
elasticsearch使用split api有兩個限制條件错妖。其一是在創(chuàng)建源索引的時候必須指定number_of_routing_shards參數(shù)绿鸣。該參數(shù)用于確定哈希空間暂氯,下文會具體分析該參數(shù)的作用潮模。但是到7.0版本后該參數(shù)可以不用人為指定,elasticsearch會幫我們自動生成該參數(shù)的值痴施。其二是準備split時必須將源索引阻塞寫操作擎厢,目的是為了保證split過程中如果出什么問題能不丟數(shù)據(jù)。
用法
創(chuàng)建源索引
PUT my_source_index
{
"settings": {
"index.number_of_shards" : 1,
"index.number_of_routing_shards" : 2
}
}
阻塞源索引的寫操作
PUT /my_source_index/_settings
{
"settings": {
"index.blocks.write": true
}
}
split
POST my_source_index/_split/my_target_index
{
"settings": {
"index.number_of_shards": 2
}
}
監(jiān)控
可以通過_cat recover接口查看split過程
總結
簡單介紹了elasticsearch shard split 怎么使用辣吃,在下面幾篇文章中將從代碼上分析split是怎么實現(xiàn)的动遭。
elasticsearch shard split 分析(二)
elasticsearch shard split 分析(三)
elasticsearch shard split 分析(四)