我想把数据从kibana(elasticsearch)发送到mysql。有没有什么简单的方法可以直接或通过python来实现?
flmtquvp1#
你需要的是所谓的etl,我没有给出确切的答案,因为你的问题更一般。您可以开发一个小的python脚本来实现这一点,但一般来说,使用真正的etl更有用。我推荐ApacheSpark和官方的ElasticSearchHadoop插件:https://www.elastic.co/guide/en/elasticsearch/hadoop/current/spark.htmlhttps://docs.databricks.com/spark/latest/data-sources/sql-databases.html#write-数据到jdbcscala中的示例(但可以使用python、java或r):
val df = sqlContext.read().format("org.elasticsearch.spark.sql").load("spark/trips") df.write.jdbc(jdbcUrl, "_table_")
好处:spark将通过workers分发工作(将同时读取所有elasticsearch碎片!)处理故障转移允许您修改数据
xxslljrj2#
我认为整个任务可以分为两部分:如何从elasticsearch获取数据(可以通过python实现):https://elasticsearch-py.readthedocs.io/en/master/如何向mysql添加数据(可以通过python实现):https://dev.mysql.com/doc/connector-python/en/connector-python-example-cursor-transaction.html顺便说一句,您可以查看此页面以了解通过python从es中的一个索引获取所有文档的示例脚本:https://discuss.elastic.co/t/get-all-documents-from-an-index/86977
2条答案
按热度按时间flmtquvp1#
你需要的是所谓的etl,我没有给出确切的答案,因为你的问题更一般。
您可以开发一个小的python脚本来实现这一点,但一般来说,使用真正的etl更有用。
我推荐ApacheSpark和官方的ElasticSearchHadoop插件:
https://www.elastic.co/guide/en/elasticsearch/hadoop/current/spark.html
https://docs.databricks.com/spark/latest/data-sources/sql-databases.html#write-数据到jdbc
scala中的示例(但可以使用python、java或r):
好处:
spark将通过workers分发工作(将同时读取所有elasticsearch碎片!)
处理故障转移
允许您修改数据
xxslljrj2#
我认为整个任务可以分为两部分:
如何从elasticsearch获取数据(可以通过python实现):https://elasticsearch-py.readthedocs.io/en/master/
如何向mysql添加数据(可以通过python实现):https://dev.mysql.com/doc/connector-python/en/connector-python-example-cursor-transaction.html
顺便说一句,您可以查看此页面以了解通过python从es中的一个索引获取所有文档的示例脚本:https://discuss.elastic.co/t/get-all-documents-from-an-index/86977