2

我正在开发一个在 EC2 上作为 Web 服务托管的数据处理应用程序,每秒生成一个 .csv 格式的小数据文件(小于 10KB)。

问题陈述: 将生成的所有数据文件存档到 Amazon Glacier。

我的方法: 因为数据文件非常小。我将文件存储在 AWS Kinesis 中,几个小时后,我将数据刷新到 S3(因为我找不到将数据从 Kinesis 放入 Glacier 的直接方法)并在一天结束时使用 S3 生命周期管理将所有对象存档到 Glacier .

我的问题:

  1. 有没有办法直接从 Kinesis 将数据传输到 Glacier?

  2. 是否可以将 Kinesis 配置为在一天结束时将数据刷新到 S3/Glacier?Kinesis 可以保存数据是否有任何时间或内存限制?

  3. 如果 Kinesis 无法直接将数据传输到 Glacier。有没有类似的解决方法 - 我可以编写一个 lambda 函数来从 Kinesis 获取数据并将其存档到 Glacier 吗?

  4. 是否可以在 Kinesis 或 S3 或 Glacier 级别合并所有 .csv 文件?

  5. Kinesis 适合我的用例吗?还有什么我可以使用的吗?

如果有人能花时间回答我的问题并指出一些参考资料,我将不胜感激。请让我知道我的方法是否存在缺陷,或者是否有更好的方法。

谢谢。

4

1 回答 1

1
  1. 您不能直接将 Kinesis 中的数据放入 Glacier(除非您想将 10kb 文件直接放入 Glacier)
  2. 您可以将 Kinesis Data Firehose 视为 15 分钟刷新的一种方式。数据增量到 S3
  3. 你绝对可以做到这一点。Glacier 允许直接上传,因此无需先上传到 S3
  4. 您可以使用 Firehose 刷新到 S3,然后使用 Athena 转换和聚合,然后将该文件转换到 Glacier。或者您直接使用 Lambda 并直接上传到 Glacier。
  5. 也许将数据流式传输到 Firehose 会更有意义。根据您的确切需求,物联网分析也可能很有趣。

再次阅读您的问题,看到您使用 csv 文件,我强烈建议您使用 Kinesis > S3 > Athena > Transition to glacier 方法

于 2018-06-29T20:05:25.377 回答