amazon-web-services - 无法将数据从 AWS Kinesis 存档到 Glacier
问题描述
我正在开发一个在 EC2 上作为 Web 服务托管的数据处理应用程序,每秒生成一个 .csv 格式的小数据文件(小于 10KB)。
问题陈述: 将生成的所有数据文件存档到 Amazon Glacier。
我的方法: 因为数据文件非常小。我将文件存储在 AWS Kinesis 中,几个小时后,我将数据刷新到 S3(因为我找不到将数据从 Kinesis 放入 Glacier 的直接方法)并在一天结束时使用 S3 生命周期管理将所有对象存档到 Glacier .
我的问题:
有没有办法直接从 Kinesis 将数据传输到 Glacier?
是否可以将 Kinesis 配置为在一天结束时将数据刷新到 S3/Glacier?Kinesis 可以保存数据是否有任何时间或内存限制?
如果 Kinesis 无法直接将数据传输到 Glacier。有没有类似的解决方法 - 我可以编写一个 lambda 函数来从 Kinesis 获取数据并将其存档到 Glacier 吗?
是否可以在 Kinesis 或 S3 或 Glacier 级别合并所有 .csv 文件?
Kinesis 适合我的用例吗?还有什么我可以使用的吗?
如果有人能花时间回答我的问题并指出一些参考资料,我将不胜感激。请让我知道我的方法是否存在缺陷,或者是否有更好的方法。
谢谢。
解决方案
- 您不能直接将 Kinesis 中的数据放入 Glacier(除非您想将 10kb 文件直接放入 Glacier)
- 您可以将 Kinesis Data Firehose 视为 15 分钟刷新的一种方式。数据增量到 S3
- 你绝对可以做到这一点。Glacier 允许直接上传,因此无需先上传到 S3
- 您可以使用 Firehose 刷新到 S3,然后使用 Athena 转换和聚合,然后将该文件转换到 Glacier。或者您直接使用 Lambda 并直接上传到 Glacier。
- 也许将数据流式传输到 Firehose 会更有意义。根据您的确切需求,物联网分析也可能很有趣。
再次阅读您的问题,看到您使用 csv 文件,我强烈建议您使用 Kinesis > S3 > Athena > Transition to glacier 方法
推荐阅读
- mysql - 在 CakePHP 3 查询 where 子句中使用 MySql DATE 函数
- java - java.time.format.DateTimeParseException:无法在索引 0 处解析文本“2019 年 5 月 30 日星期四-下午 02:00”
- r - 在 rCharts 中删除 yAxis 上的小数点
- javascript - 通过 AJAX 向 Django 视图提交 JS 数组返回 TypeError
- arduino - 软件 PLL 在 arduino 中从 GPS 生成 3.2 Khz 采样频率锁定为 1pps
- asp.net - 在具有相同名称的不同名称空间中招摇不同的类不起作用
- javascript - 确定单击的组件是否具有 routerLink 属性的正确方法是什么?
- casting - F#:将 seq<'A> 转换为 seq<'B> 的最快方法
- javascript - 点击播放音频链接
- cors - 400 错误请求响应调用 web api localhost/token url 以生成令牌