每 3 小时到每分钟在 AWS 上报告一次

Posted

技术标签:

【中文标题】每 3 小时到每分钟在 AWS 上报告一次【英文标题】:Reports on AWS from every 3 hours to every minute 【发布时间】:2021-02-11 11:37:13 【问题描述】:

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

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

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

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

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

提前致谢

【问题讨论】:

【参考方案1】:

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

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

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

【讨论】:

好的,谢谢。我将开始在 AWS 上构建一个非常基本的结构,看看它是如何发挥作用的。对于报告,假设报告将在 powerbi 中构建。我想知道,当我从源系统中获取数据时,如果数据位于 dynamo db 中,那么 power bi 读取数据的速度会更快,而不是将数据转储到 s3 存储桶中。 (只是大声思考) 我建议编写一些可能的代码,然后进行一些测试/性能测试等。但是,您走在正确的轨道上。

以上是关于每 3 小时到每分钟在 AWS 上报告一次的主要内容,如果未能解决你的问题,请参考以下文章

大家好 在linux上运行一个java程序 程序是一个死循环每10分钟循环一次 大概20个小时左右程序就不再运行

将数据库缓存到每 5 分钟刷新一次的数组中

如何在服务器上的特定小时内每分钟运行一次cron作业

linux中,如何设置每隔2个小时就执行一次某个脚本?

我如何设置在流程开始后24小时触发一次AWS Lambda?

Google App Engine 中的 cron.yaml:如何在特定分钟每小时安排一次任务?