amazon-web-services - 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 工作?
解决方案
据我了解,这与问题标题中 Cloudsearch 的可扩展性无关,而是关于上传的限制,以及如何将大文件上传到 Amazon Cloudsearch。
最好和最优的解决方案是通过分块来上传数据。将您的文档分批并分批上传数据。(但请记住相关的限制)
这样做的好处是,如果您要提交多个文档,请在一次调用中将它们全部提交,而不是总是提交大小为 1 的批次。AWS 建议分组(最大 5 mb)并在一次调用中发送。我认为,每 1,000 个批量调用要花费您 0.10 美元,因此分组还可以为您节省一些钱。
这对我有用。下面给出了一些指导方针,以帮助更好地解决问题。
将数据上传到 Amazon Cloudsearch 时要遵循的准则。
在上传之前将文档分组。持续上传仅包含一个文档的批次会对 Amazon CloudSearch 处理更新的速度产生巨大的负面影响。相反,创建尽可能接近限制的批次并减少上传它们的频率。(限制在下面解释)
要将数据上传到您的域,必须将其格式化为有效的JSON或XML批处理
现在,让我解释一下与文件上传相关的 Amazon Cloud 搜索的相关限制。
1) 批量:
最大批处理大小为 5 MB
2) 文件大小
最大文档大小为 1 MB
3) 文档字段
文档不能超过 200 个字段
4) 数据加载量
您可以每 10 秒加载一个文档批次(每 24 小时大约 10,000 个批次),每个批次大小最大为 5 MB。
但如果您希望增加限制,您可以联系 Amazon CloudSearch。目前,亚马逊不允许增加上传大小限制。
如果您需要增加搜索域的最大分区数,您可以提交请求。有关增加其他限制(例如最大搜索域数)的信息,请联系 Amazon CloudSearch。
推荐阅读
- javascript - Repl.it 未处理的承诺拒绝
- amazon-web-services - 使用 ECS 更改 Docker CLI 上下文的 AWS 区域
- powershell - System.Windows.Forms.Timer 滴答间隔短于定义的间隔
- javascript - 自动完成:仅允许从建议列表中选择值
- mysql - MySQL存储过程执行需要很长时间
- stan - Stan:多元模型的初始化问题
- ios - 从服务器 Swift 解析 JSON 数据的问题
- javascript - 如何在本机反应中用新对象更新数组对象
- r - 更改在 plotly 中创建的雷达图中特定环的颜色
- spring-boot - Spring JPA:@ManyToMany 和 @JoinTable