LogStash 导入 oracle(mysql)数据

本文介绍了如何使用LogStash将Oracle数据库中的数据导入到Elasticsearch中,包括设置环境、编写SQL文件、配置数据输入源和输出源,以及自定义分词器模板的过程,以实现商品信息的索引构建和搜索自动补全功能。
摘要由CSDN通过智能技术生成

LogStash 导入 oracle(mysql)数据

版本:

ES 7.13.3

LogStash 7.13.4

1. 背景

因为一些原因需要将oracle的数据导入到Es中,A、B两个表的数据构成商品信息,组成products索引。

分词器采用ik_max_word 对name相关的字段采用搜索自动补全功能。

2. 数据导入

首先默认我们已经按转好了 ES和Logstash环境。

下载 oracle驱动

2.1 编写sql文件
#ROWNUM 是oracle自带的 可以查出当前数据是第多少条数据,用于做#ROWNUM 是oracle自带的 可以查出当前数据是第多少条数据,用于做功能导入数据使用 
#suggest 会根据这个字段做猜你所想的功能具体分下见下文
SELECT ROWNUM,NAME AS suggest,STATUS,AGE FORM A

SELECT ROWNUM,NAME AS suggest FROM B
2.1 编写数据输入源和输出源代文件

input:

1.配置数据库相关信息见注释

2.配置增量导入实现的标记,需要注意/path/id/ 文件夹是需要真实存在的 。当然我们也可以根据时间做增量,具体场景具体分析。

output

1.es配置 地址、账号、密码、类型和document_id等

2.分词器魔板文件,如果需要制定分析器的话。

input {
   stdin {
   }
   jdbc {
          jdbc_connection_string => "jdbc:oracle:thin:@ip/databaseName"
          jdbc_user => "userName"
          jdbc_password => "pwd"
          jdbc_driver_library =>
          "/path/ojdbc6.jar"
      jdbc_driver_class => "Java::oracle.jdbc.driver.OracleDriver"
          codec => plain { charset => "UTF-8"}
          statement_filepath => "/path/your.sql"
         schedule => "*/2 * * * *"
          type => "bp_dealer_rp"
        use_column_value => "true"
        record_last_run => "true"
        # 增量数据需要,将最后一次查询的rownum存入到下边的配置文件中去,下次导入数据 直接从rownum之后导入,需要根据自己的场景选择对应的 增量导入模式
         tracking_column => "rownum"
        last_run_metadata_path=> "/path/id/file1"
     clean_run =>"false"
   }
}

filter {

}

output {
   elasticsearch {
       hosts => ["40.18.15.23:9200"]
       user => "elastic"
      password => "pwd"
      index => "products"
      # 因为是多个表导入到一个索引当中 后边添加type字段区分不同表的数据。
     document_id => "%{rownum}-type1"
      # 模板名称
    template_name => "products"
    #自定义配置位置 绝对路径
    template => "/path/ik.json"
   #重写模板
    template_overwrite => true
   #manage_template => false
  }
  stdout {
       codec => json_lines
  }
}


2.2 修改pipeline文件

pipeline 是logstash的一个工作流可以执行多个任务,path.conf配置的

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值