在自定义目录名称下将Firehose传输文件存储在S3中

Sri*_*m V 6 amazon-kinesis amazon-kinesis-firehose

我们主要通过Kinesis Firehose服务批量传输传入的点击流数据.我们的系统是一个多租户SaaS平台.传入的点击流数据通过Firehose存储在S3中.默认情况下,所有文件都存储在按给定日期格式命名的目录下.我想在Firehose planel\through API中指定数据文件的目录路径,以便隔离客户数据.

例如,我想在S3中为客户A,B和C提供的目录结构:

/ A/2017/10/12 /

/ B/2017/10/12 /

/ C/2017/10/12 /

我该怎么做?

提前致谢

dev*_*rus 0

您可以通过配置 S3 前缀来分隔目录。在控制台中,这是在设置期间设置 S3 存储桶名称时完成的。

使用 CPI,您可以设置前缀,如下--s3-destination-configuration所示:

http://docs.aws.amazon.com/cli/latest/reference/firehose/create-delivery-stream.html

但请注意,您只能为每个 Firehose Delivery Stream 设置一个前缀,因此,如果您通过一个 Firehose Delivery Stream 传递所有点击流数据,您将无法将记录发送到不同的前缀。

  • 我想使用“前缀”作为变量,并根据传入的点击数据[例如 click.customer_id] 配置它。不过,谢谢你的回答。 (5认同)
  • 理解,但如果您使用单个 Firehose Delivery Stream,即使使用变量,您也将无法写入不同的前缀。就目前而言,无法将变量传递到传输流上的 S3 前缀配置。如果您希望在一个存储桶中使用单独的前缀,则必须使用从同一 Kinesis 流读取的多个传输流,并使用记录转换 Lambda 来筛选使用传输流配置的给定前缀。 (2认同)