【问题标题】:Is it possible to transfer data from Redshift to Elasticsearch?是否可以将数据从 Redshift 传输到 Elasticsearch?
【发布时间】:2016-02-07 04:17:03
【问题描述】:
我正在研究与 Amazon elasticsearch 服务相关的东西。为此,我需要从 Amazon Redshift 获取数据。要传输的数据很大,即 100 GB。有什么方法可以直接从 Redshift 获取数据,或者是它是一个像 Redshift->s3->elasticsearch 这样的两步过程?
【问题讨论】:
标签:
amazon-web-services
elasticsearch
amazon-s3
amazon-redshift
amazon-elasticsearch
【解决方案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’
【解决方案3】:
看起来没有用于将数据从 Redshift 推送到 elasticsearch 的直接数据传输管道。另一种方法是先将数据转储到 S3 中,然后推送到 elasticsearch。