emr/redshift数据仓库

xv8emn3q  于 2021-05-27  发布在  Hadoop
关注(0)|答案(1)|浏览(587)

我们目前正在aws中使用sql server。我们正在研究从SQLServer中的数据创建数据仓库的方法。
似乎最简单的方法是使用awsdms工具,将数据发送到redshift,使其不断同步。红移是相当昂贵的,所以看看其他的方式做它。
我一直在和emr合作。目前我正在使用sqoop从sqlserver获取数据并将其放入配置单元。我目前正在使用hdfs卷来存储数据。我还没有用s3来做这个。
我们的数据库有许多表,每个表中有数百万行。
每天更新这些数据的最佳方法是什么?sqoop支持更新数据吗。如果不是的话,还有什么工具可以用来做这样的事情呢。
任何帮助都会很好。

holgip5t

holgip5t1#

我的建议是,如果处理过于复杂和耗时,可以使用hadoop集群(emr),或者最好使用红移。
选择正确的工具。如果是针对数据仓库,那么就使用红移。
为什么是dms?你要实时同步吗?你想要每日同步。所以不需要使用dms。

更好的解决方案:

确保有一个主键列和一个列,告诉我们行何时更新,如 updated_at 或者 modified_at .
运行bcp将数据从sql server批量导出到csv文件。
将csv上传到s3,然后导入redshift。
使用glue获取增量数据(基于主键列和update\u at列),然后将其导出到s3。
将文件从s3导入到红移暂存表。
运行upsert命令(update+insert)将临时表与主表合并。
如果您觉得运行胶水有点贵,那么使用ssis或powershell脚本执行步骤1到4。那么 psql 命令将文件从s3导入到redshift并执行步骤5和6。
这将处理sql server表中的插入和更新。但删除不会是其中的一部分。如果你需要所有的积垢操作,那就用dms或debezium的cdc方法。然后把它推到s3和红移。

相关问题