【问题标题】:Delivering Files from AWS Kinesis Firehose to a Specific S3 Folder将文件从 AWS Kinesis Firehose 传送到特定的 S3 文件夹
【发布时间】:2021-06-15 07:54:44
【问题描述】:

问题背景
我有一个 AWS Kinesis Firehose 传输流设置。
我还有一个 S3 存储桶设置。
在我的 S3 存储桶中,我有一个文件夹,我们称之为:“folderX/”。

目前,它只是将其发送到标有“2021/”的预制文件夹,因为默认方案是发送到与当前日期/时间对应的文件夹。

问题: 我希望我的 Firehose 传输流将文件发送到 该特定文件夹。我该怎么做?

【问题讨论】:

    标签: amazon-web-services amazon-s3 aws-glue amazon-kinesis-firehose


    【解决方案1】:

    S3 目标配置中的Backup S3 bucket prefix 是设置前缀的位置。

    来自 Documentation 的备份 S3 存储桶前缀:

    要使用 Amazon S3 对象的默认前缀,请保留此选项 空白的。 Kinesis Data Firehose 自动在 交付的 Amazon S3 对象的“YYYY/MM/dd/HH”UTC 时间格式。你 可以添加到这个前缀的开头

    再举几个例子:

    要获取folderX/2021/3/17,我们可以使用folderX/!{timestamp:YYYY}/!{timestamp:MM}/!{timestamp:dd}/

    要获取folderX/year=2021/month=3/day=17/hour=5/,我们可以使用folderX/year=!{timestamp:YYYY}/month=!{timestamp:MM}/day=!{timestamp:dd}/hour=!{timestamp:HH}/

    【讨论】:

    • 嗯,我试过了,但它似乎不起作用。如果一个文件夹嵌套在另一个文件夹中,它会简单地遵循这种模式吗?例如。而不是 folderX/ 会是 "folderX/folderY/" 吗?
    • 对不起。我错过了问一些事情。您的消防软管的来源是什么,是 Kinesis 流还是其他什么?
    • 我的 firehose 传输流正在通过 AWS kafka-kinesis 连接器从 kafka 实例中摄取/使用数据
    • k.所以,你有一堆文件进入 firehose,你只想将它们传送到一个名为 folderX/ 的文件夹中,对吗?我使用了这个year=!{timestamp:YYYY}/month=!{timestamp:MM}/day=!{timestamp:dd}/hour=!{timestamp:HH}/,它基本上是所有s3对象的前缀,这将它们放在year=2021/month=3/day=17/hour=5/mydoc.json中。同样,如果您添加 folderX/ 它应该将所有文档放在该文件夹中。
    • 我明白了。那么完整的前缀字段会是什么样子呢?会不会是:folderX/year=!{timestamp:YYYY}/month=!{timestamp:MM}/day=!{timestamp:dd}/hour=!{timestamp:HH}/
    猜你喜欢
    • 2018-10-24
    • 1970-01-01
    • 1970-01-01
    • 2016-11-13
    • 1970-01-01
    • 2018-01-07
    • 2021-05-26
    • 2020-02-11
    • 1970-01-01
    相关资源
    最近更新 更多