《Elastic Stack 实战手册》——三、产品能力——3.4.入门篇——3.4.2.Elasticsearch基础应用——3.4.2.11.Index alias(5) https://developer.aliyun.com/article/1230374
索引别名(写权限)
当一个索引别名绑定较多的索引,这时若需要使用别名进行写操作,则需要对其中一对绑定关系进行标注,指定别名对特定索引具有写操作权限,没有标注具有写权限的索引别名即为普通索引别名。具有写权限的索引别名,操作索引别名时,会转化为对真实索引的操作。
索引别名(索引为动词)的应用场景主要包括,reindex索引和rollover索引。如下所示,将别名write-index-alias1同时绑定索引test和test2,别名与test索引的绑定关系标注了写权限。
POST /_aliases { "actions": [ { "add": { "index": "test", "alias": "write-index-alias1", "is_write_index": true } }, { "add": { "index": "test2", "alias": "write-index-alias1" } } ] }
使用索引别名进行数据写入:
PUT /write-index-alias1/_doc/1 { "foo": "bar" }
通过以下方式可以验证,数据写入到了test索引:
#可以获取得到对应文档 GET test/_doc/1 #可以查看到两个索引的文档数量,发现 test 表增加了一个文档 GET _cat/indices/write-index-alias1?v
在进行索引rollover或者reindex时,为了做到零停机切换索引;还可以通过bulk API切换别名与索引绑定的写权限标注,该 API 为原子操作,actions中的动作编写顺序不影响交换执行。
POST /_aliases { "actions": [ { "add": { "index": "test", "alias": "write-index-alias1", "is_write_index": false } }, { "add": { "index": "test2", "alias": "write-index-alias1", "is_write_index": true } } ] }
创作人简介:
杨松柏,目前就职于好未来教育科技集团,任数据平台资深研发工程师。 长期关注ELK、TiDB、clickhouse 等分布式存储技术,对于 Elasticsearch 和 TiDB 都有深入的理解。