赞
踩
本章讲解索引类型、文档和数据同步的相关知识
1.概念
按照之前的理解,我们索引相当于数据库服务器的一个数据库,索引类型相当于数据库的一张表,而文档相当于一行数据。
这样的理解当然无可厚非,但实质上这是不建议的。ES中索引类型建议一个索引只允许有一个,这也是目前官方给出的意见,我认为这样是比较合理的,我们之后的例子都将如此。
2.索引类型、文档
我们尝试使用命令来创建索引对应的类型,这次我们创建一个新的索引,名为test01。并为它创建类型为type01。
创建test01索引如下:
创建索引类型并指定一条文档:
查询test01索引下的文档:
由此可见我们成功创建了索引的类型并且插入了一条文档。
通过查询依然可以查询的到这条文档:
3.数据同步
与Solr一样,ES同样需要定时的从其他关系型数据库中读取数据。
1)我们需要下载一个客户端辅助我们进行数据同步,那就是logstash
网址:https://www.elastic.co/downloads/logstash
下载对应ES版本的LogStash
解压后目录如下所示:
2)将数据库驱动包放入lib文件夹中,我们这次用的是oracle
3)编写LogStash配置文件名称为jdbc.config放入config文件夹下
jdbc.config文件内容如下所示:
input{ stdin{ } jdbc{ jdbc_connection_string => "jdbc:oracle:thin:@localhost:1521:orcl" jdbc_user => "scott" jdbc_password => "tiger" jdbc_driver_library => "D:\study\logstash-6.6.0\lib\ojdbc6.jar" jdbc_driver_class => "Java::oracle.jdbc.driver.OracleDriver" jdbc_paging_enabled => "true" jdbc_page_size => "5000000" #分页导入量 statement => "select * from users" #选定具体需要导入的表信息SQL schedule => "* * * * *" #执行计划时间策略,分、时、天、月、年,最小间隔是1分钟。该配置的就是1分钟。 type => "users" #仅为一个标识,可以用来标识表名 } } output{ elasticsearch{ hosts => "localhost:9200" #ES服务器地址 index => "test01" #ES索引名称 document_type => "type01" #ES索引类别,不指定将是doc document_id => "%{id}" #ES文档id,采用数据库字段的id } }
3)进入LogStash的bin目录执行如下命令
出现如下界面代表导入成功:
4)进入kibana查询结果
如此,证明我们导入了六条数据,我们去数据库中看一下
证明我们的导入是非常成功的!!
特别的:logstash默认将每分钟查询一次进行数据同步,如需配置多个表的同步,则可以配置多个jdbc块即可!
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。