将大量数据从S3复制到ElasticSearch

时间:2016-06-15 02:02:28

标签: java json elasticsearch amazon-s3 kibana

我可以访问包含网站流量数据的S3存储桶。所有这些数据都存储在JSON文件中,每行一个对象。平均而言,这些文件包含大约20,000个不同的JSON对象。该存储桶每小时存储100-200个这些30-40 MB的文件,具体取决于网站的流量,因此每小时有2-4百万条记录。

我需要将此数据复制到ElasticSearch中以在Kibana中创建数据可视化。我目前正在使用来自Elastic和jq的Bulk API来为Bulk请求格式化JSON(添加索引以便ElasticSearch正确地对其进行索引)这非常慢。从S3下载一个20,000记录文件需要将近两分钟,使用jq重新格式化,并使用我的Java代码,AWS Java SDK和Elastic Bulk API推送到ElasticSearch。

我已经考虑过使用AWS Lambda,但我无法将Lambda函数从我的帐户连接到另一个帐户的S3存储桶。关于如何将这么多数据上传到ElasticSearch的任何其他想法?

1 个答案:

答案 0 :(得分:0)

您的S3存储桶和弹性搜索群集似乎不属于同一个VPC或不同的专用网络。 要允许连接到这两个服务,您需要执行一些AWS网络。如果您的帐户位于不同的VPC中,请设置VPC peering,或设置NAT gateway以允许流量在两个网络之间传递。 最后一种可能是启用cross account permission to lambda