Amazon Redshift 框架(Oracle 数据仓库迁移)
Posted
技术标签:
【中文标题】Amazon Redshift 框架(Oracle 数据仓库迁移)【英文标题】:Amazon Redshift Framework (Oracle Data Warehouse Migration) 【发布时间】:2017-03-13 15:58:27 【问题描述】:我们目前正计划将 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】:哇,听起来像是一件大事。这里有很多事情需要考虑。
您最好的起点可能是 AWS Database Migration Service (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) 的典型用途完全不同。
祝你好运
【讨论】:
以上是关于Amazon Redshift 框架(Oracle 数据仓库迁移)的主要内容,如果未能解决你的问题,请参考以下文章