gpt4 book ai didi

amazon-web-services - 如何重播从 AWS Firehose 推送到 S3 的流数据?

转载 作者:行者123 更新时间:2023-12-03 23:14:24 24 4
gpt4 key购买 nike

pipeline
有很多示例如何将数据由 AWS Firehose 存储到 S3 存储桶并并行传递到某些处理应用程序(如上图所示)。

但是我找不到任何关于从 s3 存储桶重放这些数据的良好做法,以防处理应用程序被粉碎。我们需要向它提供历史数据,我们在 s3 中有这些数据,但 Firehose 中已经没有了。

我可以考虑用 Firehose 或 Lambda 重放它,但是:

  • Kinesis Firehose 无法从存储桶中消耗
  • Lambda 需要反序列化 .parquet 文件以将其发送到 Firehose 或 Kinesis Data Stream。我对这种隐式反序列化感到困惑,因为 Firehose 明确地对其进行了序列化。

  • 或者也许有其他方法可以将数据从 s3 放回我完全想念的流?

    编辑:更多的是,如果我们将运行 lambda 来将记录推送到流中,它可能需要朗姆酒超过 15 分钟。因此,另一种选择是运行一个脚本,该脚本在单独的 EC2 实例上运行。但是这种从 s3 中提取数据的方法看起来比用 Firehose 存储要复杂得多,这让我觉得应该有一些更简单的方法

    最佳答案

    困扰我的问题实际上是我期望一些更高级的序列化,而不仅仅是转换为 JSON(例如 Kafka 支持 AVRO)。

    关于从 s3 存储桶重放记录:这部分解决方案似乎比归档记录所需的要复杂得多。因此,如果我们可以使用 Firehose 的开箱即用功能存档流,那么为了重放它,我们将需要两个 lambda 函数和两个流。

  • Lambda 1(将文件名推送到流)
  • Lambda 2(为第一个流中的每个文件名激活,将记录从文件推送到第二个流)

  • 第一个 lambda 手动触发,扫​​描所有 s3 存储桶文件并将它们的名称写入第一个流。第二个 lambda 函数由每个带有文件名的事件触发,读取文件中的所有记录并将它们发送到最终流。除了 Kinesis Data Analytics 或其他 Lambda 之外,还可以使用它。

    本方案期望每天生成多个文件,每个文件有多个记录。

    类似于 this solution,但在我的情况下,目的地是 Kinesis 而不是文章中的 Dynamo。

    关于amazon-web-services - 如何重播从 AWS Firehose 推送到 S3 的流数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53745384/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com