我在弹性搜索引擎中加载了事件日志,并使用Kibana将其可视化。我的事件日志实际存储在Google Big Query表中。目前我正在将json文件转储到Google存储桶并将其下载到本地驱动器。然后使用logstash,我将json文件从本地驱动器移动到弹性搜索引擎。
现在,我正在尝试通过建立谷歌大查询和弹性搜索之间的连接来自动化该过程。根据我的阅读,我了解到有一个输出连接器可以将数据从弹性搜索发送到Google大查询,但反之亦然。只是想知道我是否应该将json文件上传到kubernete集群,然后在集群和Elastic搜索引擎之间建立连接。
对此方面的任何帮助将不胜感激。
答案 0 :(得分:5)
虽然此解决方案可能有点复杂,但我建议您使用Google Storage Connector和ES-Hadoop的解决方案。这两个非常成熟,并被许多伟大的公司用于生产级别。
对Kubernetes的很多pod进行Logstash将非常昂贵 - 我认为 - 这不是一个非常好的,有弹性和可扩展的方法。
答案 1 :(得分:1)
Apache Beam具有用于BigQuery和Elastic Search的连接器,我将使用DataFlow明确地执行此操作,因此您无需实现复杂的ETL和分段存储。您可以使用BigQueryIO.Read.from
从BigQuery读取数据(如果性能很重要BigQueryIO Read vs fromQuery,请查看此信息),然后使用ElasticsearchIO.write()
请参阅此内容如何从BigQuery Dataflow中读取数据
弹性搜索索引
答案 2 :(得分:1)
我最近在类似的管道上工作。我建议的工作流程将使用提到的Google存储连接器或其他方法将json文件读入spark作业。您应该能够快速,轻松地转换数据,然后使用elasticsearch-spark插件将该数据加载到Elasticsearch集群中。
您可以使用Google Cloud Dataproc或Cloud Dataflow来运行和安排您的工作。