首页 > 解决方案 > 每 3 小时到每分钟在 AWS 上报告一次

问题描述

我需要一点帮助,指向正确的方向。

我的任务是将客户订单数据(用于销售服装)从本地传输到云中以用于报告目的(只读)。我们与 AWS 合作。数据源是 Oracle DB 和 mysql。我打算使用胶水作业,抓取数据源,然后通过步进函数/lambdas 将数据移动到 Dynamo db(NoSQl,快速)中,其中数据将被链接起来(假设每个都有一个 ID 字段链接数据)。以前报告此数据的时间大约为 2-3 小时。我打算每 2-3 小时设置一次胶水作业的时间表。现在这已经改变了。我现在想让数据尽可能接近实时(同事们开始要求它)。一两分钟(或更好)的数据就足够了。

我正在考虑做的事情是否是我想要实现的正确方法(仅增加抓取源数据的频率)?还是我应该看看别的?

注意:我还没有制作系统(我只玩过 Dynamo、胶水作业和步进功能)。

所以,在 AWS 中是否有更好的方法,我想听听我的选择是什么(优点/缺点等)。

提前致谢

标签: amazon-web-servicesaws-lambdaamazon-dynamodbamazon-redshift

解决方案


可以编写 Lambda 函数来获取数据源并更新 DynamoDB 表。您可以使用 AWS 开发工具包编写 Lambda 函数来执行 AWS 服务操作;例如,更新 DynamoDB 表。如果您编写了多个 Lambda 函数,那么您是正确的 - 您可以通过 AWS Step Functions 一起使用它们来创建工作流程。

这里的好处是,如果您确实创建了一个需要按计划运行的 AWS Step Functions 工作流,您可以创建另一个使用 AWS Step Functions API 的 Lambda 函数,通过使用startExecution操作来动态执行工作流。

总的来说,你的想法是正确的。我会推荐在 AWS Step Functions 工作流程中使用的 Lambda 函数,这些函数可以由另一个根据 CRON 触发的 Lambda 函数经常调用,它会调用startExecution操作。


推荐阅读