为多个传输流设置一个s3存储桶是个好主意吗? (例如:考虑两个具有不同流式吞吐量的传输流,s3缓冲区大小/缓冲区间隔......)
如果两个传输流(S1,S2)将数据路由到红移。 S1将数据传送到T1,S2传送到T2。在T2中,T1上存在外键约束。是否可以保证当S2将数据(D2)传送到T2时,D2引用的T1中的所有记录都已由S1传送? (即交付流中存在依赖关系)
BTW我正在使用firehose将我的应用程序日志推送到redshift进行分析。
答案 0 :(得分:1)
唯一性,主键和外键约束是信息性的 只要; 它们不是由Amazon Redshift强制执行的。尽管如此,小学 密钥和外键用作计划提示,它们应该是 如果您的ETL过程或您的应用程序中的其他过程声明 强化他们的诚信。
答案 1 :(得分:0)
假设:T1和T2是同一个Redshift集群中的表。
您可以(虚拟地)拥有任意数量的S3存储桶。对两个传输流使用相同的S3存储桶并不是一个好主意,因为Redshift执行的将数据加载到集群中的COPY命令将查找两个传输流的相同Manifest文件夹。
来自Amazon Kinesis Firehose FAQ:
问:我的Amazon S3存储桶中的清单文件夹是什么?
对于Amazon Redshift目标,Amazon Kinesis Firehose会生成清单文件,以便批量加载Amazon S3对象到Redshift群集。 manifeststs文件夹存储Firehose生成的清单文件。