IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 大数据 -> Elasticsearch 线上无感知切换索引 -> 正文阅读

[大数据]Elasticsearch 线上无感知切换索引

方式一:1. 创建新索引

PUT test.project.20220507
{
    "mappings":{
        "properties":{
            "code":{
                "type":"text",
                "fields":{
                    "keyword":{
                        "type":"keyword",
                        "ignore_above":256
                    }
                },
                "analyzer":"sdm_tokenizer"
            },
            "type":{
                "properties":{
                    "id":{
                        "type":"text"
                    },
                    "name":{
                        "type":"text",
                        "fields":{
                            "keyword":{
                                "type":"keyword",
                                "ignore_above":256
                            }
                        }
                    },
                    "display_name":{
                        "type":"text",
                        "fields":{
                            "keyword":{
                                "type":"keyword",
                                "ignore_above":256
                            }
                        }
                    },
                    "child_name":{
                        "type":"text",
                        "fields":{
                            "keyword":{
                                "type":"keyword",
                                "ignore_above":256
                            }
                        }
                    }
                }
            }
        }
    }
}

2.复制数据?

POST _reindex
{
    "source":{
        "index":"source.project"
    },
    "dest":{
        "index":"test.project.20220507",
        "op_type":"create"
    }
}

?其中source为原来索引数据,dest为新索引

3.切换索引

POST /_aliases
{
    "actions":[
        {
            "add":{
                "index":"test.project.20220507",
                "alias":"source.project"
            }
        },
        {
            "remove_index":{
                "index":"source.project"
            }
        }
    ]
}

?其中index为新索引,alias? 定义别名,这里的别名为旧索引的名字,remove_index:删除之前那个旧索引,保证新索引的别名顺利创建。

利用别名切换索引,可以保证不重启线上服务的情况,切换到新索引,1,2步骤非必须,除非新旧索引是因为mapping里面定义的字段类型不一样,才需要执行;单独执行步骤2的话,只是复制数据,但不复制mapping

方式二:备份旧索引的mapping,在利用别名切换索引

?1.先决条件,要改成只读


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

2.复制索引跟mapping

POST /source.project/_clone/test.project.20220507

3. 恢复原先索引

PUT /source.project/_settings
{
? "settings": {
? ? "index.blocks.write": false
? }
}

4. 利用方式一的第三步骤,切换索引

方式二个人理解适用于索引数据有问题,mapping无需更新的情况下,可直接复制mapping,然后修改同步工具?

  大数据 最新文章
实现Kafka至少消费一次
亚马逊云科技:还在苦于ETL?Zero ETL的时代
初探MapReduce
【SpringBoot框架篇】32.基于注解+redis实现
Elasticsearch:如何减少 Elasticsearch 集
Go redis操作
Redis面试题
专题五 Redis高并发场景
基于GBase8s和Calcite的多数据源查询
Redis——底层数据结构原理
上一篇文章      下一篇文章      查看所有文章
加:2022-05-11 16:30:44  更:2022-05-11 16:33:10 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/23 22:52:20-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码