是否可以将数据从Redshift传输到Elasticsearch?

时间:2015-11-06 04:43:40

标签: amazon-web-services elasticsearch amazon-s3 amazon-redshift amazon-elasticsearch

我正在处理与亚马逊弹性搜索服务相关的事情。为此,我需要从Amazon Redshift获取数据。要传输的数据很大,即100 GB。有没有办法直接从Redshift获取数据或者是它是一个两步过程,如Redshift-> s3-> elasticsearch?

3 个答案:

答案 0 :(得分:2)

至少在理论上,我看到了将数据从Redshift传输到Elasticsearch的两种可能方法:

  1. 使用JDBC input plugin
  2. 进行Logstash
  3. elasticsearch-jdbc

答案 1 :(得分:0)

看起来没有用于将数据从Redshift推送到elasticsearch的直接数据传输管道。另一种方法是首先在S3中转储数据然后进入elasticsearch。

答案 2 :(得分:0)

  1. 不要gzip卸载数据。
  2. 使用弹性
  3. 上的批量加载
  4. 在批量加载(> 5000)中使用大量记录 -​​ 减少大量批量 负载比更小的负载更好。
  5. 使用AWS弹性搜索时,存在达到批量队列大小限制的风险。
  6. 处理lambda中的单个文件,然后使用事件递归调​​用lambda函数
  7. 在递归之前等待几秒钟 - > setTimeout的。等待时确保你没有闲置30秒,因为你的lambda会停止。
  8. 不要使用s3对象创建来触发你的lambda - 你最终会得到 同时调用多个lambda函数。
  9. 不要试图将kinesis放在中间 - 卸载数据 进入kinesis几乎肯定会达到kinesis的负载限制。
  10. 使用类似的方式监控弹性搜索批量队列大小 这个:
  11. curl https://%ES-SERVER:PORT%/_nodes/stats/thread_pool |jq
        ‘.nodes |to_entries[].value.thread_pool.bulk’