AWS Firehose中间S3存储桶和传输流依赖关系出现问题
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了AWS Firehose中间S3存储桶和传输流依赖关系出现问题相关的知识,希望对你有一定的参考价值。
- 为多个传输流设置一个s3存储桶是个好主意吗? (例如:考虑两个具有不同流吞吐量的传输流,s3缓冲区大小/缓冲区间...)
- 如果两个传输流(S1,S2)将数据路由到红移。 S1将数据传送到T1,S2传送到T2。在T2中,T1上存在外键约束。是否可以保证当S2将数据(D2)传送到T2时,D2引用的T1中的所有记录都已由S1传送? (即交付流中存在依赖关系)
顺便说一句,我正在使用firehose将我的应用程序日志推送到redshift进行分析。
答案
- S3存储桶旨在存储几乎无限的数据,所以回答你的问题是肯定的。
- 即使您可以定义外键,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