Amazon web services AWS消防软管至S3前缀(按内容)

Amazon web services AWS消防软管至S3前缀(按内容),amazon-web-services,amazon-kinesis-firehose,Amazon Web Services,Amazon Kinesis Firehose,我有一个Kinesis Firehose流,其中生成了不同模式的JSON。 由于这些数据最终应该被依赖于模式的其他工具(Glue,Athena)访问,所以我想通过模式将它们分离到一些S3 bucket中的不同前缀 我不想对不同的模式使用不同的流 例如,如果将以下JSON发送到流中 {'a': 1, 'b': 2} # JSON 1 {'a': 8, 'b': 5} # JSON 2 {'c': 9} # JSON 3 我希望它们最终存储在S3存储桶中,如下所示 /mybucket/YYY

我有一个Kinesis Firehose流,其中生成了不同模式的JSON。 由于这些数据最终应该被依赖于模式的其他工具(Glue,Athena)访问,所以我想通过模式将它们分离到一些S3 bucket中的不同前缀

我不想对不同的模式使用不同的流

例如,如果将以下JSON发送到流中

{'a': 1, 'b': 2}  # JSON 1
{'a': 8, 'b': 5}  # JSON 2
{'c': 9}  # JSON 3
我希望它们最终存储在S3存储桶中,如下所示

/mybucket/YYYY/MM/DD/HH/schema1/json1.json  # JSON 1
/mybucket/YYYY/MM/DD/HH/schema1/json2.json  # JSON 2
/mybucket/YYYY/MM/DD/HH/schema2/json3.json  # JSON 3
我确实预先知道所有可能的模式


我该怎么做呢?

遗憾的是,你不能这样做。S3前缀是流级别设置,而不是记录设置。如果您不想拥有不同的数据流,那么您必须将firehose更改为常规运动数据流,它将所有记录定向到lambda函数。lambda函数将获取这些记录,并将它们放在s3存储桶中的不同前缀下