首页 > 解决方案 > AWS Cloudsearch 是否可扩展?

问题描述

我有 500MB 的数据要推送到云搜索。

以下是我尝试过的选项:

直接从控制台上传:

尝试上传文件,有 5 MB 的限制。

然后将文件上传到 S3 并选择 S3 选项,

上传到 S3 并在控制台中提供 S3 url

失败并要求尝试命令行。

用命令行试过

aws cloudsearchdomain upload-documents --endpoint-url http://endpoint --content-type application/json --documents s3://bucket/cs.json

Error parsing parameter '--documents': Blob values must be a path to a file.

好的,将文件从s3复制到本地并尝试上传,

尝试使用本地文件和 cli:

aws cloudsearchdomain upload-documents --endpoint-url http://endpoint --content-type application/json --documents ./cs.json

在我们收到来自端点 URL 的有效响应之前,连接已关闭:“ http://endpoint/2013-01-01/documents/batch?format=sdk ”。

无论如何让 CloudSearch 工作?

标签: amazon-web-servicesamazon-s3amazon-cloudsearch

解决方案


据我了解,这与问题标题中 Cloudsearch 的可扩展性无关,而是关于上传的限制,以及如何将大文件上传到 Amazon Cloudsearch。

最好和最优的解决方案是通过分块来上传数据。将您的文档分批并分批上传数据。(但请记住相关的限制)

这样做的好处是,如果您要提交多个文档,请在一次调用中将它们全部提交,而不是总是提交大小为 1 的批次。AWS 建议分组(最大 5 mb)并在一次调用中发送。我认为,每 1,000 个批量调用要花费您 0.10 美元,因此分组还可以为您节省一些钱。

这对我有用。下面给出了一些指导方针,以帮助更好地解决问题。


将数据上传到 Amazon Cloudsearch 时要遵循的准则。

  1. 在上传之前将文档分组。持续上传仅包含一个文档的批次会对 Amazon CloudSearch 处理更新的速度产生巨大的负面影响。相反,创建尽可能接近限制的批次并减少上传它们的频率。(限制在下面解释)

  2. 要将数据上传到您的域,必须将其格式化为有效的JSONXML批处理


现在,让我解释一下与文件上传相关的 Amazon Cloud 搜索的相关限制。

1) 批量:

最大批处理大小为 5 MB

2) 文件大小

最大文档大小为 1 MB

3) 文档字段

文档不能超过 200 个字段

4) 数据加载量

您可以每 10 秒加载一个文档批次(每 24 小时大约 10,000 个批次),每个批次大小最大为 5 MB。

但如果您希望增加限制,您可以联系 Amazon CloudSearch。目前,亚马逊不允许增加上传大小限制。

如果您需要增加搜索域的最大分区数,您可以提交请求。有关增加其他限制(例如最大搜索域数)的信息,请联系 Amazon CloudSearch


推荐阅读