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

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

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

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

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


0
投票

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

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

来自Amazon Kinesis Firehose FAQ:

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

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

© www.soinside.com 2019 - 2024. All rights reserved.