在将数据存储在Redshift中之前,我应该使用哪些AWS技术来实时进行轻量级处理?

时间:2015-10-08 00:50:04

标签: amazon-web-services amazon-s3 amazon-redshift aws-lambda amazon-kinesis

我想在移动客户端,服务器和移动设备上创建一些HTTP点。物联网设备将发布数据。我可能需要预处理事件和采取行动。最终我想要访问所有原始数据和使用Domo,Cloud Business Intelligence进行查询Chartio或Tableau。

我需要了解有什么区别&以下架构的优点:

  1. AWS API Management + Lambda + Redshift:我可以创建一个HTTP端点&一个lambda函数,它将解析数据,计算和放大存储在Redshift
  2. Kinesis Firehose + Redshift(我如何通过HTTP流式传输数据?)
  3. S3 + Kinesis + Redshift(我可以使用将数据写入S3的HTTP端点)
  4. S3 + Kinesis Firehose + Redshift
  5. S3 + Lambda + Redshift
  6. 我觉得3,4和4 5由于S3而产生冗余。 与使用Kinesis相比,Lambda函数的执行是否会产生显着的成本开销?

2 个答案:

答案 0 :(得分:0)

广泛提出问题的方法,但我认为#1是您提供的最佳选择。

我个人会转而使用DynamoDB接收来自Lamba的数据 - 然后我会直接从那里查询数据,或者如果您的使用模式需要它,可以将其用作Redshift的源。

答案 1 :(得分:0)

下面怎么样?

  1. 如果要求不是实时的,则直接写入S3将有所帮助,并且可以轻松地无限扩展。
  2. 在S3文件上配置了事件处理程序,该事件处理程序会触发Lambda处理您的逻辑。
  3. 将其推送到Kinesis或Redshift进行进一步处理。 Redshift可以直接从S3以开放数据格式查询。