He escrito una extensa publicación de blog sobre las diferentes formas de replicar su MySQL a Amazon Redshift.
Hay 3 enfoques comunes que difieren en complejidad. El enfoque a elegir depende de su caso de uso específico, principalmente qué tan grande es su base de datos, con qué frecuencia cambia y qué tan rápido la necesita en su Redshift.
Aquí están los 3 enfoques comunes:
- Un gran cliente solicita una configuración de inquilino único para utilizar nuestro producto SaaS. ¿Hay que decir que no?
- ¿Cuáles son las mejores opciones de servidor para SaaS?
- ¿En qué medida las publicaciones y respuestas del blog de Jason M. Lemkin son genéricas en toda la industria versus específicas de su experiencia con Echosign?
- ¿Cuál es el mejor servicio o plataforma de procesamiento de pagos recurrentes para la facturación mensual en SaaS o sitios web que cobran suscripciones?
- ¿Cuál es el mejor servicio de votación en línea estándar?
- Descarga y carga completas : ejecute periódicamente un trabajo que descargue toda su base de datos, cargue sus datos en Redshift y elimine sus datos anteriores. Es la opción más sencilla de implementar, pero solo funciona si tiene una escala pequeña.
- Volcado y carga incrementales : en este enfoque, la tabla MySQL se consulta periódicamente para obtener actualizaciones desde la última consulta. Las actualizaciones se cargan en Amazon Redshift y una consulta de consolidación reconstruye la tabla original. Es un poco más complejo, pero también funciona si tiene una gran base de datos, siempre que sus tablas no cambien con demasiada frecuencia.
- Replicación de binlog : este enfoque (a veces denominado captura de datos de cambio – CDC) hace que el binlog se transmita y cargue continuamente en Amazon Redshift. Esta es la solución más compleja, pero funciona a cualquier escala, con la latencia más baja.
Si está considerando la solución completa de volcado y carga, puede crear un script simple y ejecutarlo con un trabajo cron. Amazon tiene una guía relativamente buena sobre cómo convertir tipos de datos MySQL a tipos Redshift. Una vez que establezca los tipos de datos correctos en su tabla de Redshift, Redshift convertirá la mayoría de los tipos por usted en carga. Si aún necesita limpiar / truncar sus datos, puede ejecutar un script de Python intermedio para transformar su volcado.
Si bien parece bastante sencillo al principio, hay muchas trampas para evitar (¿qué sucede cuando se altera la estructura de su tabla MySQL?). Si está abierto a probar una solución SaaS, puede consultar Alooma: en cuestión de minutos tendrá una solución de replicación binlog en funcionamiento que se encargará de toda su tubería, incluida la conversión del tipo de datos.