Microbatch加载到Redshift - 一些实际问题

时间:2016-03-09 12:20:16

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

我们正在设计我们的工作流程,用于将数据微量加载到redshift中。基本上我们通过API获得一系列请求。 API将队列中的那些泵送到稍后处理的队列中,每个项目都是ETLd,最后保存到S3中的准备加载文件中。所以步骤是:

  1. 客户端向API发送请求。
  2. API选择并转换为JSON
  3. API队列中的JSON队列
  4. 消费者从队列
  5. 中选择
  6. 根据内容在相关文件中写入请求(表示要加载内容的表)
  7. 我的问题围绕着这个流程的协调。我们在什么时候将复制命令从S3激活到Redshift?我的意思是这是一个持续的数据流,每个数据批处理都是一分钟。是否有任何AWS工具可以为我们做这件事,或者我们应该自己写这个。

    由于

2 个答案:

答案 0 :(得分:0)

AWS Lambda是针对此用例而制作的。

或者,如果您的队列是Kafka队列,您可能会发现secor(https://github.com/pinterest/secor)很有用。它将队列数据转储到s3,然后可以将其复制到Redshirt。

Spotify的Luigi或AWS Data Pipeline都是编制复制命令的好选择,如果你选择了secor路线。

答案 1 :(得分:0)

过去,我曾多次写过类似的逻辑,这不是一件容易的事。那里有很多复杂性。您可以将这些文章用作architecture的参考。

现在,您可能希望查看Amazon Kinesis Firehose,而不是实现自己。它将处理S3逻辑并为您写入Redshift。