无法将数据从AWS Kinesis存档到Glacier

时间:2018-06-27 17:36:52

标签: amazon-web-services amazon-s3 aws-sdk amazon-kinesis aws-sdk-java-2.0

我正在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是否适合我的用例?我还有什么可以使用的吗?

如果有人能抽出时间回答我的问题并为我提供一些参考,我将不胜感激。请让我知道我的方法是否存在缺陷,或者是否有更好的方法可以解决此问题。

谢谢。

1 个答案:

答案 0 :(得分:0)

  1. 您不能将来自Kinesis的数据直接放入Glacier(除非您想将10kb文件直接放入Glacier)
  2. 您可以考虑将Kinesis Data Firehose冲洗15分钟。数据增量到S3
  3. 您绝对可以做到。 Glacier允许直接上传,因此无需先上传到S3
  4. 您可以使用Firehose刷新到S3,然后使用Athena进行转换和聚合,然后将该文件转换为Glacier。或者,您直接使用Lambda并直接上传到Glacier。
  5. 也许将数据流传输到Firehose会更有意义。根据您的确切需求,IoT Analytics也可能很有趣。

再次阅读您的问题,看到您使用的是csv文件,我强烈建议您使用Kinesis> S3> Athena>向冰川方法过渡