Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 将大量数据从S3复制到ElasticSearch_Java_Json_<img Src="//i.stack.imgur.com/RUiNP.png" Height="16" Width="18" Alt="" Class="sponsor Tag Img">elasticsearch_Amazon S3_Kibana - Fatal编程技术网 elasticsearch,amazon-s3,kibana,Java,Json,elasticsearch,Amazon S3,Kibana" /> elasticsearch,amazon-s3,kibana,Java,Json,elasticsearch,Amazon S3,Kibana" />

Java 将大量数据从S3复制到ElasticSearch

Java 将大量数据从S3复制到ElasticSearch,java,json,elasticsearch,amazon-s3,kibana,Java,Json,elasticsearch,Amazon S3,Kibana,我可以访问包含网站流量数据的S3存储桶。所有这些数据都存储在JSON文件中,每行一个对象。这些文件平均包含大约20000个不同的JSON对象。bucket每小时存储100-200个30-40MB的文件,这取决于站点的流量,因此每小时大约有200-400万条记录 我需要将这些数据复制到ElasticSearch中,以在Kibana中创建数据可视化。我目前正在使用来自Elastic和jq的BulkAPI为批量请求格式化JSON(添加索引以便ElasticSearch正确索引它),这非常慢。从S3下载

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

我需要将这些数据复制到ElasticSearch中,以在Kibana中创建数据可视化。我目前正在使用来自Elastic和jq的BulkAPI为批量请求格式化JSON(添加索引以便ElasticSearch正确索引它),这非常慢。从S3下载一个20000条记录文件需要将近两分钟,使用jq重新格式化,然后使用我的Java代码、AWS Java SDK和Elastic Bulk API推送到ElasticSearch


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

似乎您的S3存储桶和Elastic搜索群集不属于同一VPC或不同的专用网络。 要允许连接到这两个服务,您需要进行一些AWS联网。如果您的帐户位于不同的VPC中,请启用该选项,或者设置一个允许流量在两个网络之间传递的网络。
最后一种可能性是启用。

您的ES群集是否也有可能托管在Amazon上?是的。它与S3 bucket在一个单独的公司/管道帐户上。您是否尝试过直接在AWS服务器上运行Java代码?你已经为下载数据腾出了很多时间。我正在下载数据,因为它需要解密和解压。我没有对bucket的写访问权限,只有read/get,所以在将解密文件推送到ES之前,我仍然必须将其存储在某个地方。是的,但最好在AWS云中的某个主机上执行所有这些操作。这样,您将受益于他们移动数据的大管道。您可以启动一个实例几分钟,运行Java代码,然后将其杀死。请注意,我只是在这里随意拍摄,但在我看来,管道大小是您的主要问题,即必须在本地主机上下载GB的数据,以便在转换后重新上传,这听起来像是什么在破坏性能。