ELK生态系统——全量数据从RDBMS到ES迁移

注意:如果es中mappring是自己手动创建的那就没问题了,如果es中mappring自己不创建,需要es根据导入的数据自动创建,那么要检查要导入的数据是不是包含了所有字段了,如果这些数据中有一个字段,一个值也没有,那么es在mappring中不会创建该字段。如果出现这个情况,建议自己手动插入一条每个字段都有值的测试数据,然后在es中再删掉该条测试数据。

1、手动全量导入数据:

(1)创建*.conf格式配置文件:

在logstash安装目录下config文件夹中,创建一个test.conf文件,然后用notepad++打开,编写input、output相关内容即可:

注意:output中输出到es时,选择document_id为mysql数据中对应主键ID值,这样方便以后对es数据实现更新效果。

(2)修改*.conf文件格式:

在windows中创建编辑的test.conf文件格式为windows,服务器为linux,因此需要修改test.conf格式为linux的格式:

(3)部署*.conf文件到服务器:

将创建好的test.conf文件上传到服务器的logstash安装目录下config文件夹中,一般配置型文件都是放到此位置的。

(4)后台运行*.conf文件迁移数据:

进入服务端logstash安装根目录的bin中,然后执行命令:

./logstash -f ../config/test.conf &

(5)查看es中导入的数据:

Logstash命令执行完毕后或者执行中,就可以通过es-head或kibana链接到es查看es中的数据了。

2、创建索引别名:

对es中使用的每一个索引都创建对应的一个索引别名,java连接es访问的时候也就是访问别名了。这样以后如果索引需要修改,就可以先使用旧索引,手动创建新索引,并将就索引中的数据迁移到新索引,等待新索引创建完毕并且数据导入完毕,没有问题的情况下,只需要删除别名对应的旧索引映射关系,同时创建别名与新索引的映射关系。这样可以做到修改es索引平滑过渡。

修改索引别名的dsl语言命令:

http://192.168.99.164:9200/_aliases POST

{

  "actions": [

    {

      "add": {

        "index": "t_b_company_info_list",

        "alias": "t_b_company_info"

      }

    }

  ]

}

查看索引是否有别名的dsl语言命令:

http://192.168.99.164:9200/t_b_company_info_list/_alias/* GET

猜你喜欢

转载自blog.csdn.net/LSY_CSDN_/article/details/91396625