亚马逊网络服务:Spark Streaming或Lambda

时间:2017-05-08 18:39:21

标签: aws-lambda aws-step-functions

我正在寻找一些关于架构的高级指导。我有一个提供商将“交易”写入Kinesis管道(约1MM /天)。我需要关闭这些事务,一次一个,验证数据,访问其他SOAP或Rest服务以获取其他信息,应用一些业务逻辑,并将结果写入S3。

已经提出的一种方法是使用永久运行的Spark作业,在Spark环境中提取数据并对其进行处理。这些好处被列为可共享的缓存数据,SQL的可用性以及Spark的内部知识。

我的想法是拥有一系列处理数据的Lambda函数。据我了解,我可以让Lambda观看Kinesis管道以获取新数据。我想通过一堆小步骤(lambdas)来运行拉取的数据,每个步骤都在这个过程中执行一个步骤。这似乎是步骤函数的理想用法。关于缓存,如果需要,我认为可以使用ElastiCache上的Redis。

可以使用Lambda和Step Functions(使用lambdas)的组合来完成吗?如果可以做到,这是最好的方法吗?我应该考虑哪些其他选择?

1 个答案:

答案 0 :(得分:0)

这可以使用Lambda和Step Functions的组合来实现。如您所述,lambda将监视流并启动状态机的新执行,将事务数据作为输入传递给它。您可以在此处查看有关lambda的kinesis的更多文档:http://docs.aws.amazon.com/lambda/latest/dg/with-kinesis.html。 然后状态机将数据从一个Lambda函数传递到下一个数据将被处理并写入S3的数据。您需要联系AWS以增加默认的每秒2个StartExecution API限制,以支持1MM /天。

希望这有帮助!