En esta página, se ofrece una descripción general para migrar tu base de datos de procesamiento de transacciones en línea (OLTP) de MySQL a Spanner. El proceso de migración a Spanner puede variar según factores como el tamaño de los datos, los requisitos de tiempo de inactividad, la complejidad del código de la aplicación, el esquema de fragmentación, las funciones personalizadas y las estrategias de conmutación por error y replicación.
La migración de Spanner se divide en los siguientes pasos:
- Evalúa la migración.
- Migra tu esquema y traduce las consultas de SQL.
- Migra tu aplicación para usar Spanner además de MySQL.
- Carga datos de muestra y optimiza tu rendimiento.
- Migra tus datos.
- Valida la migración.
Evalúa la migración
Para evaluar una migración de tu base de datos de origen de MySQL a Spanner, debes evaluar tus necesidades comerciales, técnicas, operativas y financieras. Para obtener más información, consulta Evalúa la migración.
Migra tu esquema
Convierte tu esquema existente en un esquema de Spanner con la herramienta de migración de Spanner.
Para obtener más información, consulta Migra un esquema de MySQL.
Migra tu aplicación para usar Spanner
Spanner proporciona un conjunto de bibliotecas cliente para varios lenguajes y la capacidad de leer y escribir datos con llamadas a la API específicas de Spanner, así como con el uso de consultas en SQL y sentencias DML (lenguaje de modificación de datos). El uso de llamadas a la API puede ser más rápido para algunas consultas, como las lecturas directas de filas por clave, ya que no es necesario traducir la instrucción de SQL.
Spanner proporciona un controlador JDBC para aplicaciones de Java.
Como parte del proceso de migración, las funciones que no están disponibles en Spanner, como se mencionó anteriormente, se deben implementar en la aplicación. Por ejemplo, se debería implementar un activador para verificar los valores de los datos y actualizar una tabla relacionada en la aplicación con una transacción de lectura o escritura para leer la fila existente, verificar la restricción y, luego, escribir las filas actualizadas en ambas tablas.
El nivel de aislamiento predeterminado de las transacciones en Spanner es el aislamiento serializable, que garantiza la coherencia externa de tus datos. Spanner también ofrece aislamiento de lectura repetible. Te recomendamos que establezcas el nivel de aislamiento en lectura repetible y el control de simultaneidad en simultaneidad pesimista como parte del proceso de migración de la aplicación para que la semántica de transacción de Spanner coincida con la semántica de transacción predeterminada de MySQL. Para obtener instrucciones sobre cómo establecer el nivel de aislamiento y el control de simultaneidad en tu aplicación, consulta Usa el nivel de aislamiento de lectura repetible y Configura el control de simultaneidad.
Spanner ofrece transacciones de lectura o escritura y de solo lectura. Además, las transacciones de lectura pueden tener límites de marca de tiempo aplicados, en los que lees una versión coherente de los datos de una de las siguientes maneras:
- En un momento exacto del pasado (hasta hace 1 hora)
- En el futuro (en cuyo caso la lectura se bloquea hasta que llegue ese momento)
- Con una cantidad aceptable de obsolescencia limitada; en este caso, se mostrará una vista coherente hasta algún tiempo en el pasado sin necesidad de verificar que los datos posteriores estén disponibles en otra réplica Esto puede ser beneficioso en términos de rendimiento, pero tiene la desventaja de que los datos podrían estar obsoletos
Carga datos de muestra en Spanner
Puedes cargar datos de muestra en Spanner antes de realizar una migración de datos completa para probar esquemas, consultas y tu aplicación.
Puedes usar el flujo de trabajo de ETL inversa de BigQuery y la Google Cloud CLI para cargar una pequeña cantidad de datos en formato de archivo CSV en Spanner.
Para obtener más información, consulta Carga datos de muestra.
Para transferir tus datos de MySQL a Spanner, también puedes exportar tu base de datos de MySQL a un formato de archivo portátil, por ejemplo, XML, y, luego, importar esos datos a Spanner con Dataflow.
Migra datos a Spanner
Después de optimizar tu esquema de Spanner y cargar datos de muestra, puedes mover tus datos a una base de datos de Spanner vacía del tamaño de producción.
Para obtener más información, consulta Migra tus datos de MySQL.
Valida la migración de datos
A medida que los datos se transmiten a la base de datos de Spanner, puedes ejecutar una comparación de forma periódica entre los datos de Spanner y MySQL para asegurarte de que sean coherentes. Para validar la coherencia, puedes consultar ambas fuentes de datos y comparar los resultados.
Puedes usar Dataflow para realizar una comparación detallada en conjuntos de datos grandes con la transformación de unión. Esta transformación toma 2 conjuntos de datos con clave y hace coincidir los valores por clave. Luego, los valores pueden compararse para determinar si son iguales. Puedes ejecutar esta verificación con regularidad hasta que el nivel de coherencia coincida con tus requisitos empresariales.
Para obtener más información, consulta Valida la migración de datos.
Configura la reversión y el cambio
Puedes configurar la reversión y el cambio para MySQL con la replicación inversa. Configurar el resguardo ayuda a garantizar que tengas un plan de contingencia para revertir a tu base de datos de origen de MySQL si surgen problemas después de cambiar a Spanner.
La replicación inversa es útil cuando encuentras problemas inesperados con Spanner y necesitas revertir a la base de datos de MySQL original con una interrupción mínima del servicio. La replicación inversa permite la reversión mediante la replicación de los datos escritos en Spanner en tu base de datos de origen de MySQL.
El flujo de replicación inversa implica los siguientes pasos, que realiza la plantilla de Dataflow
spanner-to-sourcedb:
Lee los cambios de Spanner con los flujos de cambios de Spanner.
Filtra los cambios migrados hacia adelante.
Transforma los datos de Spanner para que sean compatibles con el esquema de tu base de datos de origen.
Verifica si la base de datos de origen ya contiene datos más recientes para la clave primaria especificada.
Escribe datos en tu base de datos de origen.
¿Qué sigue?
- Recomendaciones sobre el diseño del esquema.
- Optimiza tu esquema de Spanner.
- Configura el resguardo a MySQL.
- Realiza la migración de sistemas desde MySQL.
- Realiza la reversión a MySQL.
- Aprende a usar Dataflow para situaciones más complejas.