Actualmente estamos planeando migrar un almacén de datos de Oracle de 50 TB a Amazon Redshift.
Los datos de diferentes fuentes de datos OLTP se organizaron primero en una base de datos provisional de Oracle y luego se cargaron en el almacén de datos actualmente. Actualmente, los datos se han transformado utilizando toneladas de procedimientos almacenados PL/SQL dentro de la base de datos provisional, así como cargándolos en el almacén de datos.
Fuente de datos OLTP 1 --> JMS (MQ) en tiempo real --> Base de datos Oracle STG --> Oracle DW
Nota: el consumidor JMS MQ escribe datos en la base de datos provisional
Fuente de datos OLTP 2 --> Datos incrementales de CDC (una vez cada 10 minutos) --> Base de datos Oracle STG --> Oracle DW
Nota: Cambiar la captura de datos en el lado del origen Los datos se cargan en la base de datos provisional una vez cada 10 minutos.
¿Cuál sería el mejor marco para migrar esta pila por completo (resaltado) a Amazon Redshift? ¿Cuáles son los diferentes componentes dentro de AWS a los que podemos migrar?
Wow, suena como un gran trabajo. Hay bastantes cosas sucediendo aquí que deben ser consideradas.
Su mejor punto de partida es probablemente el Servicio de migración de bases de datos de AWS ( https://aws.amazon.com/dms/ ). Esto puede hacer mucho trabajo por usted en lo que respecta a convertir sus esquemas y resaltar áreas que tendrá que migrar manualmente.
Debe considerar S3 como su área de preparación principal. Debe colocar todos (o casi todos) los datos en S3 antes de cargarlos en Redshift. Preste mucha atención a cómo se presentan los datos. En particular, le recomiendo que use prefijos de partición ( s3://my_bucket/YYYYMMDDHHMI/files o s3://my_bucket/year=YYYY/month=MM/day=DD/hour=HH/minute=MI/files ).
Su lógica PL/SQL no será transferible a Redshift. Deberá convertir las partes que no son de SQL a bash o Python y usar una herramienta externa para ejecutar las partes de SQL en Redshift. Le sugiero que comience con Apache Airflow ( Python ) o Azkaban ( bash ). Si desea permanecer en AWS puro, puede probar Data Pipeline (no recomendado) o esperar a que se lance AWS Glue (parece prometedor, no probado).
Es posible que pueda usar Amazon Kinesis Firehose para el trabajo que actualmente realiza JMS, pero el uso ideal de Kinesis es bastante diferente del uso típico de JMS (AFAICT).
Buena suerte