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

Is it possible to transfer data from Redshift to Elasticsearch?

我正在研究与 Amazon elasticsearch service.For 有关的东西,我需要从 Amazon 获取数据 Redshift.The 要传输的数据很大,即 100 GB.Is 无论如何直接从 Redshift 获取它还是像 Redshift->s3->elasticsearch 这样的两步过程?

看起来没有直接的数据传输管道可以将数据从 Redshift 推送到 elasticsearch。一种替代方法是先将数据转储到 S3 中,然后推送到 elasticsearch。

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

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