Hadoop 电子病历/红移数据仓库

Hadoop 电子病历/红移数据仓库,hadoop,hive,amazon-redshift,sqoop,amazon-emr,Hadoop,Hive,Amazon Redshift,Sqoop,Amazon Emr,我们目前正在AWS中使用SQL Server。我们正在寻找从SQL Server中的数据创建数据仓库的方法 看起来最简单的方法是使用AWS DMS工具,将数据发送到redshift,让其不断同步。红移是相当昂贵的,所以正在寻找其他的方法 我一直在EMR工作。目前,我正在使用sqoop从SQL Server获取数据并将其放入配置单元。我目前正在使用HDFS卷存储数据。我还没有为此使用S3 我们的数据库有许多表,每个表中有数百万行 每天更新这些数据的最佳方式是什么?sqoop支持更新数据吗。如果不是

我们目前正在AWS中使用SQL Server。我们正在寻找从SQL Server中的数据创建数据仓库的方法

看起来最简单的方法是使用AWS DMS工具,将数据发送到redshift,让其不断同步。红移是相当昂贵的,所以正在寻找其他的方法

我一直在EMR工作。目前,我正在使用sqoop从SQL Server获取数据并将其放入配置单元。我目前正在使用HDFS卷存储数据。我还没有为此使用S3

我们的数据库有许多表,每个表中有数百万行

每天更新这些数据的最佳方式是什么?sqoop支持更新数据吗。如果不是的话,还有什么其他的工具可以用来做这样的事情呢


任何帮助都会很好。

我的建议是,如果处理过于复杂和耗时,您可以使用Hadoop群集(EMR),或者使用红移效果更好

选择正确的工具。如果是针对数据仓库,则使用红移

为什么是DMS?你要实时同步吗?您需要每日同步。所以不需要使用DMS

更好的解决方案:
  • 确保您有一个主键列和一列,告诉我们行何时更新,如
    updated\u at
    modified\u at
  • 运行BCP将数据从SQL Server批量导出到CSV文件
  • 将CSV上载到S3,然后导入到红移
  • 使用glue获取增量数据(基于主键列和update_at列),然后将其导出到S3
  • 将文件从S3导入到红移暂存表
  • 运行upsert命令(update+insert)将临时表与主表合并
  • 如果您觉得运行glue有点贵,请使用SSIS或Powershell脚本执行步骤1到4。然后使用
    psql
    命令将文件从S3导入到红移,并执行步骤5和6

    这将处理SQL server表中的插入和更新。但删除将不在其中。如果您需要所有CRUD操作,则使用带有DMS或Debezium的CDC方法。然后将其推到S3并红移