AWS Firehose中间S3存储桶和传输流依赖关系出现问题

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了AWS Firehose中间S3存储桶和传输流依赖关系出现问题相关的知识,希望对你有一定的参考价值。

  1. 为多个传输流设置一个s3存储桶是个好主意吗? (例如:考虑两个具有不同流吞吐量的传输流,s3缓冲区大小/缓冲区间...)
  2. 如果两个传输流(S1,S2)将数据路由到红移。 S1将数据传送到T1,S2传送到T2。在T2中,T1上存在外键约束。是否可以保证当S2将数据(D2)传送到T2时,D2引用的T1中的所有记录都已由S1传送? (即交付流中存在依赖关系)

顺便说一句,我正在使用firehose将我的应用程序日志推送到redshift进行分析。

答案
  1. S3存储桶旨在存储几乎无限的数据,所以回答你的问题是肯定的。
  2. 即使您可以定义外键,Redshift实际上也不会强制执行它们。从文档here

唯一性,主键和外键约束仅供参考;它们不是由Amazon Redshift强制执行的。尽管如此,主键和外键用作计划提示,如果您的ETL进程或应用程序中的某个其他进程强制执行其完整性,则应声明它们。

另一答案

假设:T1和T2是同一Redshift集群中的表。

您可以(虚拟地)拥有任意数量的S3存储桶。对两个传输流使用相同的S3存储桶并不是一个好主意,因为Redshift执行的将数据加载到集群中的COPY命令将查找两个传输流的相同Manifest文件夹。

来自Amazon Kinesis Firehose FAQ:

问:我的Amazon S3存储桶中的清单文件夹是什么?

对于Amazon Redshift目标,Amazon Kinesis Firehose会生成清单文件,以便批量加载Amazon S3对象到Redshift群集。 manifests文件夹存储Firehose生成的清单文件。

以上是关于AWS Firehose中间S3存储桶和传输流依赖关系出现问题的主要内容,如果未能解决你的问题,请参考以下文章

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

加载文件后如何清理 AWS Firehose 使用的 S3 文件?

使用 AWS kinesis-firehose 将数据写入文件

将镶木地板从 AWS Kinesis firehose 写入 AWS S3

AWS Typescript CDK,尝试将 kinesis 流作为来源添加到 firehose

如何在 aws s3 存储桶和云端执行从非 www 到 www 的 301 重定向