我将事件日志加载到elasticsearch引擎中,并使用Kibana将其可视化。我的事件日志实际上存储在Google Big Query表中。目前,我正在将json文件转储到Google存储桶中,并将其下载到本地驱动器。然后使用logstash将json文件从本地驱动器移动到elastic搜索引擎。
现在,我正试图通过在google大查询和弹性搜索之间建立联系来自动化这个过程。根据我所读到的,我了解到有一个输出连接器,它将来自elastic search的数据发送到Google大查询,但反之亦然。我只是想知道是否应该将json文件上传到kubernete集群,然后在集群和Elastic搜索引擎之间建立连接。
在这方面的任何帮助都将不胜感激。
发布于 2017-03-28 08:46:49
尽管这个解决方案可能有点复杂,但我建议您在ES-Hadoop中使用Google Storage Connector。这两种技术已经非常成熟,并被许多大公司用于生产级。
在Kubernetes上运行许多pod的Logstash将非常昂贵,而且--我认为--不是一个非常好的、有弹性的和可伸缩的方法。
发布于 2019-03-04 11:34:52
Apache Beam有用于BigQuery和弹性搜索的连接器,我肯定会使用DataFlow来执行,这样你就不需要实现复杂的ETL和临时存储。您可以使用BigQueryIO.Read.from从BigQuery读取数据(如果性能很重要,请查看此BigQueryIO Read vs fromQuery),然后使用ElasticsearchIO.write()将其加载到ElasticSearch中
有关如何从BigQuery数据流读取数据的信息,请参阅
弹性搜索索引
更新2019-06-24
最近,今年发布了BigQuery存储API,它提高了从BigQuery中提取数据的并行性,并得到了DataFlow的原生支持。有关更多详细信息,请参阅https://beam.apache.org/documentation/io/built-in/google-bigquery/#storage-api。
从文档中
BigQuery存储API允许您直接访问BigQuery存储中的表。因此,您的流水线可以比以前更快地从BigQuery存储中读取数据。
发布于 2019-03-04 14:43:56
我最近也参与了一个类似的管道项目。我建议的工作流程要么使用前面提到的Google存储连接器,要么使用其他方法将json文件读取到spark作业中。您应该能够快速轻松地转换数据,然后使用elasticsearch-spark插件将数据加载到Elasticsearch集群中。
你可以使用Google Cloud Dataproc或Cloud Dataflow来运行和调度你的作业。
https://stackoverflow.com/questions/39252484
复制相似问题