我将使用 Athena 针对 S3 中的可用数据生成报告。其中很多是来自物联网设备的时间序列数据。
用户可以请求多年来的数据报告,但大多数是每周、每月或每年的报告。
我正在考虑每 15 分钟保存一次聚合,例如:12:00、12:15、12:30、12:45、1:00 等。计算出的聚合应该始终是完整的 15 分钟,并且不能是12:03 和 12:18 等等。 Kinesis 数据分析可以吗?如果是,怎么办?
如果不是,安排每 5-10 分钟触发一次 lambda 并让 athena 计算这些聚合听起来像是一个合理的方法吗?我应该考虑什么替代方案?
最佳答案
Kinesis Data Analytics 运行支持滚动窗口的 Apache Flink。默认情况下,通过将窗口时间设置为 15 分钟,从 00:00、00:15 等开始的间隔应有效。
https://nightlies.apache.org/flink/flink-docs-release-1.15/docs/dev/datastream/operators/windows/#tumbling-windows
由于 15 分钟相当慢,您还可以考虑编写 AWS Glue 作业 (Apache Spark) 并使用内置 Glue 触发器定期触发它。
或者您可以使用当前的解决方案(Lambda/Athena)。
这里的主要决定之一是您需要投入多少资金来学习 Spark 或 Flink 与已知的(我假设)Athena 查询。在选择一种方法之前,我会为每种方法预留一些有限的时间来测试它们。这样您就可以快速发现事情变得复杂的地方。
关于amazon-web-services - 每 15 分钟运行一次 Athena 与 Kinesis Data Analytics,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/73380412/