3

我正在研究与 Amazon elasticsearch 服务相关的东西。为此,我需要从 Amazon Redshift 获取数据。要传输的数据很大,即 100 GB。有没有办法直接从 Redshift 获取它,或者是两个像 Redshift->s3->elasticsearch 这样的步骤过程?

4

3 回答 3

3

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

  1. Logstash,使用JDBC 输入插件
  2. elasticsearch-jdbc
于 2015-11-17T15:18:38.417 回答
1
  1. 不要 gzip 卸载的数据。
  2. 在弹性上使用散装负载
  3. 在批量加载中使用大量记录 (>5000) - 更少的大批量加载比更多的小批量加载更好。
  4. 使用 AWS 弹性搜索时,存在达到批量队列大小限制的风险。
  5. 处理 lambda 中的单个文件,然后使用事件递归调​​用 lambda 函数
  6. 在递归之前等待几秒钟-> setTimeout。等待时确保您没有闲置 30 秒,因为您的 lambda 将停止。
  7. 不要使用 s3 对象创建来触发您的 lambda — 您最终会同时调用多个 lambda 函数。
  8. 不要试图将 kinesis 放在中间——将数据卸载到 kinesis 几乎肯定会达到 kinesis 的负载限制。
  9. 使用以下内容监控您的弹性搜索批量队列大小:
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 回答