我正在寻找一个解决方案,以加快mysql数据,但在尝试索引后,我没有找到解决方案,以加快mysql计数(*)数据。所以我使用elasticsearch来获得更好的性能。我在mysql中有大约300万条记录,我想用join导入所有记录,所以我使用php elasticsearch插件来导入数据,但也需要很长时间。然后我使用logstash并创建一个脚本来读取数据,但它也不起作用。我整个晚上都在运行我的系统,然后logstash只会插入60万条记录。那么解决这个问题的方法是什么呢?我是否需要提高mysql性能才能导入elasticsearch,或者需要任何其他方法将大数据导入elasticsearch。
也看看我的剧本。
input {
jdbc {
jdbc_connection_string => "jdbc:mysql://172.17.0.3:3306/repairs_db"
# The user we wish to execute our statement as
jdbc_user => "root"
jdbc_password => ""
jdbc_page_size => 50000
jdbc_paging_enabled => true
# The path to our downloaded jdbc driver
jdbc_driver_library => "/home/mysql-connector-java-5.1.46/mysql-connector-java-5.1.46.jar"
jdbc_driver_class => "com.mysql.jdbc.Driver"
# our query
statement => "SELECT r.id,r.brand_id,r.product_brand,r.product_description,r.store_id,r.product_group,r.product_id,r.itm_product_group_desc,r.first_name,r.last_name,r.status,r.damaged,r.is_extended_warranty,r.is_floor_stock,r.is_inhome,r.callcentre,r.is_bsp_case,r.created,r.updated,r.is_sandbox_mode,pro.itm_descriptor,st.name as store_name,rp.name as repairer_name from requests r JOIN products pro ON r.product_id = pro.id JOIN stores st ON r.store_id = st.id JOIN repairers rp ON r.repairer_id = rp.id"
}
}
output {
stdout { codec => json_lines }
elasticsearch {
"hosts" => "172.17.0.3:9200"
"index" => "req-migrate"
"document_type" => "data"
}
}
请给我一些建议,将数据加载到elasticsearch中。在这种情况下,我们也可以使用mysql吗?
暂无答案!
目前还没有任何答案,快来回答吧!