我正在寻找加速MySQL数据的解决方案,但在尝试索引后,我没有找到加速MySQL计数(*)数据的解决方案。所以我使用elasticsearch来获得更好的性能。我在MySQL中有大约300万条记录,我想用连接导入所有记录,所以我使用PHP elasticsearch插件导入数据,但这也需要很长时间。然后我使用logstash并创建一个脚本来读取数据,但它也无法正常工作。我整晚都在运行我的系统,然后logstash将只插入600 000条记录。那么这个解决方案是什么?我是否需要提高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吗?