我正在寻找有关架构的一些高级指导。我有一个供应商将“交易”写入 Kinesis 管道(大约 1MM/天)。我需要一次处理一个事务,验证数据,访问其他 SOAP 或 Rest 服务以获取更多信息,应用一些业务逻辑,并将结果写入 S3。
已经提出的一种方法是使用永远运行的 Spark 作业,在 Spark 环境中提取数据并对其进行处理。这些好处被列举为可共享的缓存数据、SQL 的可用性以及 Spark 的内部知识。
我的想法是拥有一系列处理数据的 Lambda 函数。据我了解,我可以让 Lambda 监视 Kinesis 管道以获取新数据。我想通过一堆小步骤(lambdas)运行提取的数据,每个步骤都在过程中执行一个步骤。这似乎是 Step Functions 的理想用途。关于缓存,如果需要的话,我认为可以使用 ElastiCache 上的 Redis。
这可以使用 Lambda 和 Step Functions 的组合(使用 lambdas)来完成吗?如果可以做到,这是最好的方法吗?我应该考虑哪些其他选择?