ES--Logstash工具导入Oracle千万级数据

1.在logstash安装目录bin目录下启动

bin/logstash -f config/xxx.conf

设置启动程序,xxx.conf。内容如下

input {
  stdin {
  }
  jdbc {
    codec => plain { charset => "UTF-8"}
	jdbc_connection_string => "jdbc连接"
	jdbc_driver_library => "C:\xxx\ojdbc7.jar"#jar包根路径
	jdbc_driver_class => "Java::oracle.jdbc.driver.OracleDriver"
	jdbc_user => "数据库名字"
	jdbc_password => "数据库密码"
	jdbc_paging_enabled => "true"#是否分页
	jdbc_page_size => "150000"#分页-每页数据数量
	statement => "SELECT * FROM (SELECT ROWNUM AS rowno, t.* FROM TEMP_BIGDATA t WHERE ROWNUM <= 20000000) table_alias WHERE table_alias.rowno >0"

> 上面这条sql是导入数据的关键,请在数据库中测试是否符合需求,再拿过来用。基本表数据导入可以参照我的。比如 ROWNUM 值,和rowno值得设定。这两个数据啥意思,请自行百度oracle语法。
> 下面的配置基本是默认的,新手不建议修改

	schedule => "* * * * *"
	use_column_value => true
	record_last_run => true
> # 以下语句 按照数据库字段big_id为唯一标志进行分页,也就是说不会导入重复的big_id.
	tracking_column => "big_id"
> # last_run_metadata_path =>"D:\Oracle\LogStash工具\logstash-6.4.1\logs\local_email_last_run.txt" #这个是最后一条数据存储位置
  }
}

# 把oracle导入到elasticSearch
output {
    elasticsearch {
        index => "索引名称" #建议和数据库的名字一样
        document_type => "索引类型" #入date_type
        hosts => "localhost:9200" #本地的ES地址
		document_id => "%{big_id}" #和上面的big_id一致
    }
}

你可能感兴趣的:(个人经验,数据处理,大数据导入)