在 Mapping 里面,将 dynamic 参数设置成 strict 可以拒绝索引包含未知字段的文档。 此条 Tips 由 medcl 贡献。

关系型数据库导入es插件推荐

Elasticsearch | 作者 lz8086 | 发布于2017年06月05日 | 阅读数:12230

大家都用什么插件来导入亿级别的数据至es呢?目前用过两种
1、logsta-input-jdbc 官方推荐组件,但实际用发现贼难用啊,用来导全表那速度惨不忍睹,导增量效果不太好
2、kettle的es组件,导全量挺快,但貌似不支持增量
已邀请:

wyntergreg

赞同来自: lz8086

LS-jdbc是可配的,调一下参数处理速度可以
楼上君3个小时导4000W,有点太慢了

Jea - 一只猿

赞同来自:

我在初始化的时候是自己写的脚本导入的,增量数据入队列, 多个子进程处理

lz8086 - es小司机

赞同来自:

附上配置文件  
input{
jdbc{
jdbc_connection_string => "jdbc:oracle:thin:@//127.0.0.1:1521/appsync"
jdbc_user => "root"
jdbc_password => "123"
jdbc_driver_library => "/usr/local/logstash-5.3.0/input-jdbc/ojdbc14.jar"
jdbc_driver_class => "Java::oracle.jdbc.driver.OracleDriver"
record_last_run => "true"
use_column_value => "true"
tracking_column => "GXSJ"
tracking_column_type => timestamp
jdbc_paging_enabled => "true"
jdbc_page_size => "150000"
statement_filepath => "/usr/local/logstash-5.3.0/input-jdbc/vio.sql"
schedule => "54 11 * * *"
type => "vio_type"
lowercase_column_names => false
last_run_metadata_path => "/usr/local/logstash-5.3.0/input-jdbc/logstash_jdbc_last_run"
}
}
output{
elasticsearch{
hosts => "127.0.0.1:9200"
index => "vio_2017"
document_id => "%{WFBH}"
}
stdout{
codec => json_lines
}
}
附上sql
该表有101列,其中一些列做了时间格式转换,一些ik分词
SELECT * FROM
TRFF_APP.VIO_VIOLATION WHERE to_timestamp(to_char(GXSJ, 'YYYY-MM-DD HH24:mi:ss'),'yyyy-MM-dd hh24:mi:ss:ff9') > :sql_last_value

lz8086 - es小司机

赞同来自:

索引速度.png

这是我分页增量导时的速度情况,其中在14:20时从后台日志才看到查询需导的全部条数sql执行,那就有个疑问了在14:00至14:20期间插件在干什么,谢谢了

要回复问题请先登录注册