ElasticSearch入门(四)ElasticSearch索引类型、文档和数据同步

版权声明:程序猴jwang版权所有 https://blog.csdn.net/qq_21046965/article/details/86995625

前言

      本章讲解索引类型、文档和数据同步的相关知识

方法

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块即可!

猜你喜欢

转载自blog.csdn.net/qq_21046965/article/details/86995625