0.从Mongodb拿出数据到ElasticSearch,使用S
2018-11-08 本文已影响13人
砂糖z
这篇博客从如何从mongodb中导出数据到es中开始,包含了下面几点
- 0.关于logstash
* 如何从mongodb中读取数据
* 如何指定index Template(es中的索引模板)
- 1.关于es (点我)
* 指定生成索引的mapping
* 指定分词器,中文分词器
- 2.关于springboot (点我)
* 我都想哭,关于stored_fields
,如何改写ElasticTemplate
* 简单分析一下源码
so ...
从mongodb中导出数据
我百度到了方法,从mongodb读数据一共有五种方法 (点击我查看),其中我考虑要使用的(mongo-connector
,JDBC input plugin for logstash
)
- 第一个:监听mongodb增删改了
- 第二个:监听mongodb的_id,如果现在监听到的_id比我监听过的_id大,就响应。
但是为了过滤mongodb中的数据,我在这里选了基于logstash的logstash-input-mongodb
插件
logstash-input-mongodb
-
提供一个配置文件(后面会根据mongodb的数据,写es的index Template )
config.png
但是使用这个时候第一个document的值并不会被导入到elasticSearch中.这是个问题?(点我可能会解决)
logstash-output-elasticsearch
- 这个插件logstash提供了的,so不下载。
- 2.刚才看的配置文件,没有指定index Template,所以下面我们来设置index Template.
指定index Template有三种办法。(Template内容在下文es中)
- 方法一:es,中写好index Template ,通过
index_patterns
(es6)template
(es5) 中的值来匹配我们写的索引名。- 重点manage_template =>false
- 这个参数是说,你的索引要不要用
logstash*
的这个index template
,false
就不使用,当然这个前提是在你没有指定template的基础上提出的.
- image.png
- 方法二:指定ElasticSearch中特定的index Template的名字
- 重点
template_name=>"xxx"
- image.png
- 重点
- 方法三:直接在logstash中指定es中的index template 的文件路径
- 重点template : 指定路径
- **重点template_overwrite :是否覆盖es中的template **
- image.png