我们目前正计划将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中的哪些不同组件?
答案 0 :(得分:2)
您最好的起点可能是AWS数据库迁移服务(https://aws.amazon.com/dms/)。在转换模式和突出显示您必须手动迁移的区域方面,这可以为您做很多工作。
您应该将S3视为主要的临时区域。在加载到Redshift之前,您需要在S3中放置所有(或几乎所有)数据。仔细考虑数据的布局方式。特别是,我建议您使用分区前缀(s3://my_bucket/YYYYMMDDHHMI/files
或s3://my_bucket/year=YYYY/month=MM/day=DD/hour=HH/minute=MI/files
)。
您的PL / SQL逻辑无法移植到Redshift。您需要将非SQL部分转换为bash
或Python
,并使用外部工具在Redshift中运行SQL部件。我建议您从Apache Airflow(Python
)或Azkaban(bash
)开始。如果您想保持纯粹的AWS,那么您可以尝试使用Data Pipeline(不推荐)或等待AWS Glue发布(看起来很有希望 - 未经测试)。
您可以将Amazon Kinesis Firehose用于JMS目前所做的工作,但Kinesis的理想用途与JMS(AFAICT)的典型用法完全不同。
祝你好运