亚马逊Redshift增量管道

时间:2014-12-18 10:19:55

标签: mysql amazon-redshift

我们计划转向amazon-redshift用于我们的数据仓库解决方案,我们需要设置一个从mysql到redshift的增量管道,它也处理更新,最有效的方法是什么?

6 个答案:

答案 0 :(得分:0)

对于从MySQL到RedShift的数据同步,您可以尝试使用AWS Data Pipeline。

答案 1 :(得分:0)

您可以使用市场上现有的解决方案,例如http://www.bryte.com.au/solutions/amazon-redshift-integration/。否则,您将需要实现触发器和AWS Data Pipeline。

答案 2 :(得分:0)

选项1:定期背景从MySQL表读取并写入Redshift。每当定期读取时,您将在MySQL DB上创建尖峰加载。那时MySQL DB对其他在线用户来说会变慢。

选项2:使用选项1但更好的方法是,修改额外标志和列的MySQL模式表,并让MySQL桌面上的多线程后台程序以更有效的方式从MySQL表中读取。

选项3:经济有效的方式,使用S3作为临时区域,修改写入MySQL的程序,让该程序也写入S3位置。您可以在背景中运行自定义Java程序,该程序将定期从S3同步到Redshift。 随着MySQL数据库的峰值负载,使用数据管道将是代价高昂的选择。

选项4:Attunity Cloud Beam

选项5:AWS Data管道

选项6:AWS lambda函数

答案 3 :(得分:0)

我建议尽量保持简单。如果您的MySQL数据库的大小很小,那么您可以运行mysqldump,将每个表的转储加载到临时表,然后针对最终表执行INSERT / UPDATE / DELETE过程。如果您的MySQL数据库对于常规完全转储而言太大,那么您将需要对已更改数据进行选择性提取。

我们对这两种方法(来自SQL Server)进行了混合:对仅附加的大型表进行选择性提取,并对更新数据的较小表进行完全转储。我们每小时执行此操作,并且每天可以处理数百GB而不会出现问题。

或者,您可以尝试一些商业ETL工具,声称可以将数据库与Redshift“同步”(从Informatica Cloud和Attunity Cloudbeam开始)。我们发现这些工具无法支持live和Redshift之间我们需要的一些转换。

答案 4 :(得分:0)

您可以使用以下解决方案之一:

  1. AWS Data Pipeline
  2. Attunity CloudBeam
  3. FlyData

答案 5 :(得分:0)

您可以使用AWS Data Pipeline或使用ironBeast。一种服务,可以帮助您将数据传输到Redshift,并在数据进入内部时保存数据(设置到期,吸尘,修复stl_load_errors等)

http://www.ironsrc.com/ironbeast

披露:我正在领导一个开发此解决方案的团队。