我正在研究与 Amazon elasticsearch 服务相关的东西。为此,我需要从 Amazon Redshift 获取数据。要传输的数据很大,即 100 GB。有没有办法直接从 Redshift 获取它,或者是两个像 Redshift->s3->elasticsearch 这样的步骤过程?
问问题
4941 次
3 回答
3
我至少在理论上看到了将数据从 Redshift 传输到 Elasticsearch 的 2 种可能方法:
- Logstash,使用JDBC 输入插件
- elasticsearch-jdbc
于 2015-11-17T15:18:38.417 回答
1
- 不要 gzip 卸载的数据。
- 在弹性上使用散装负载
- 在批量加载中使用大量记录 (>5000) - 更少的大批量加载比更多的小批量加载更好。
- 使用 AWS 弹性搜索时,存在达到批量队列大小限制的风险。
- 处理 lambda 中的单个文件,然后使用事件递归调用 lambda 函数
- 在递归之前等待几秒钟-> setTimeout。等待时确保您没有闲置 30 秒,因为您的 lambda 将停止。
- 不要使用 s3 对象创建来触发您的 lambda — 您最终会同时调用多个 lambda 函数。
- 不要试图将 kinesis 放在中间——将数据卸载到 kinesis 几乎肯定会达到 kinesis 的负载限制。
- 使用以下内容监控您的弹性搜索批量队列大小:
curl https://%ES-SERVER:PORT%/_nodes/stats/thread_pool |jq ‘.nodes |to_entries[].value.thread_pool.bulk’
于 2017-07-24T18:53:24.243 回答
0
看起来没有直接的数据传输管道可以将数据从 Redshift 推送到 elasticsearch。另一种方法是首先将数据转储到 S3 中,然后推送到 elasticsearch。
于 2015-11-10T04:58:22.053 回答