使用Python向Elasticsearch插入数据

5

我是一个新手,对Elastic Stack的使用知识不足,敬请谅解。我的计算机是Windows 10企业工作电脑,我已经安装了Git Bash用于bash CLI,并且可以成功地启动整个Elastic Stack。我的任务是从我们数据库中存储的日志数据中提取数据并在Kibana仪表板上显示它。

根据我和我的团队推理,我不需要使用Logstash,因为日志被发送到的数据库实际上就是我们的“日志存储库”,所以使用Logstash服务将是冗余的。我在freecodecamp上找到了这张很好的图标1]

从我收集的信息来看,Logstash只是用于检索不同服务的日志的中介。因此,既然日志数据已经位于数据库中,我只需执行类似以下操作即可,而无需使用Logstash:

USER ---> KIBANA <---> ELASTICSEARCH <--- My Python Script <--- [DATABASE]

我的Python脚本能够成功调用我们的数据库并检索数据,接着是一个函数将数据转换成字典格式(我理解Elasticsearch需要的是JSON格式的数据)。
现在我想要将所有这些数据插入到Elasticsearch中 - 我一直在阅读Elastic文档,但其中有很多关于索引的讨论,并没有找到任何可以将数据直接插入Elasticsearch 的API调用。我找到的所有文档都涉及到使用Logstash,但由于我并不使用Logstash,所以目前有些困惑。
如果有人能够帮助我并指点方向,我会非常感激。谢谢。
-Dan
1个回答

6
你可以使用Index API通过PUT方法将数据导入到elasticsearch中。
要使用Python完成此操作,可以使用elasticsearch-py,这是elasticsearch的官方Python客户端。
但有时候使用Logstash更加简单,因为它可以从数据库中提取数据,使用多个过滤器格式化数据并发送到elasticsearch。

1
好的,谢谢。由于我正在使用公司电脑,我将不得不请求安装此Python客户端的访问权限。即使Logstash可以简化我的工作,由于我们的数据库是内部的,并且我无法像SQL数据库一样查询它,因此我可能无法使用它。 - danielschnoll

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接