首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >有可能在S3和红移之间的移动消防软管?

有可能在S3和红移之间的移动消防软管?
EN

Stack Overflow用户
提问于 2016-03-29 21:40:48
回答 1查看 2.8K关注 0票数 1

我的团队正在尝试使用Redshift来整合来自几个不同数据库的信息。在实现此解决方案的第一次尝试中,我们使用Kinesis将帖子记录写入API到S3中,然后发出一个COPY命令将插入的数据写入Redshift中的正确表。但是,这只允许我们插入新数据,并且不允许我们转换数据、更改时更新行或删除行。

在Redshift中不使用批处理转换维护更新的数据仓库的最佳方法是什么?理想情况下,当本地数据库中的数据被更改时,我们希望“自动”(< 5分钟)发生更新。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-03-30 01:14:50

  1. “消防水龙”或“红移”没有触发器,但是您可能会使用使用Lambda和Firehose的方法在插入数据之前对其进行预处理,如下所述:https://blogs.aws.amazon.com/bigdata/post/Tx2MUQB5PRWU36K/Persist-Streaming-Data-to-Amazon-S3-using-Amazon-Kinesis-Firehose-and-AWS-Lambda 在您的示例中,您可以将其扩展到在S3上使用Lambda,因为Firehose正在创建新文件,然后执行COPY/SQL。
  2. 另一种选择是编写自己的KCL客户端来实现Firehose的功能,然后在微批(500-1000行)复制后执行所需的更新。 我已经完成了这样的实现(我们需要基于新记录来更新旧记录),从一致性的角度来看,它可以正常工作,不过由于更新方面的红移性能不好,我建议总体上不要使用这种架构。根据我的经验,关键规则是Redshift数据是仅附加的,使用筛选器删除不必要的行(可选的定期剪枝,比如每天)通常比实时删除/更新这些行更快。
  3. 另一个本机警报是将Firehose数据转储到暂存表中,然后让计划好的作业接收该表中的任何内容,进行处理、移动数据和旋转表。

作为实时插入红移的通用参考体系结构,请查看以下内容:https://blogs.aws.amazon.com/bigdata/post/Tx2ANLN1PGELDJU/Best-Practices-for-Micro-Batch-Loading-on-Amazon-Redshift

这已经实现了多次,并且运行良好。

票数 6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/36295614

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档