Amazon Redshift框架(Oracle数据仓库迁移)

时间:2017-03-13 15:58:27

标签: amazon-web-services amazon-s3 amazon-redshift

我们目前正计划将50 TB的Oracle数据仓库迁移到Amazon Redshift。

来自不同OLTP数据源的数据首先在Oracle临时数据库中暂存,然后再加载到数据仓库中。目前,数据已在临时数据库中使用大量PL / SQL存储过程进行转换,并加载到数据仓库中。

OLTP数据源1 - > JMS(MQ)实时 - > Oracle STG数据库 - > Oracle DW

注意:JMS MQ使用者将数据写入临时数据库

OLTP数据源2 - > CDC增量数据(10分钟一次) - > Oracle STG数据库 - > Oracle DW

注意:源端数据上的更改数据捕获将在10分钟内加载到登台数据库中。

将此堆栈完全(突出显示)迁移到Amazon Redshift会有什么更好的框架?我们可以迁移到AWS中的哪些不同组件?

1 个答案:

答案 0 :(得分:2)

哇,听起来像是一件大事。这里有很多事情都需要考虑。

您最好的起点可能是AWS数据库迁移服务(https://aws.amazon.com/dms/)。在转换模式和突出显示您必须手动迁移的区域方面,这可以为您做很多工作。

您应该将S3视为主要的临时区域。在加载到Redshift之前,您需要在S3中放置所有(或几乎所有)数据。仔细考虑数据的布局方式。特别是,我建议您使用分区前缀(s3://my_bucket/YYYYMMDDHHMI/filess3://my_bucket/year=YYYY/month=MM/day=DD/hour=HH/minute=MI/files)。

您的PL / SQL逻辑无法移植到Redshift。您需要将非SQL部分转换为bashPython,并使用外部工具在Redshift中运行SQL部件。我建议您从Apache Airflow(Python)或Azkaban(bash)开始。如果您想保持纯粹的AWS,那么您可以尝试使用Data Pipeline(不推荐)或等待AWS Glue发布(看起来很有希望 - 未经测试)。

您可以将Amazon Kinesis Firehose用于JMS目前所做的工作,但Kinesis的理想用途与JMS(AFAICT)的典型用法完全不同。

祝你好运