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 para migrar 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
- Configura los mecanismos de corte y resguardo
Evalúa la migración
Para evaluar una migración desde 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 Descripción general de la migración de esquemas desde 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 mediante llamadas a la API específicas de Spanner, así como mediante el uso de consultas de SQL y declaraciones de lenguaje de modificación de datos (DML). El uso de llamadas a la API puede ser más rápido para algunas consultas, como las lecturas de filas directas por clave, ya que no es necesario traducir la instrucción de SQL.
Spanner proporciona un controlador JDBC para aplicaciones Java.
Como parte del proceso de migración, las funciones que no están disponibles en Spanner, como se mencionó anteriormente, deben implementarse en la aplicación. Por ejemplo, si usas un activador para verificar los valores de datos y actualizar una tabla relacionada, tendrás que implementarlo en la aplicación mediante una transacción de lectura o escritura para leer la fila existente, verificar las restricciones y 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 los 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 estrechamente 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 solo lectura y de lectura o escritura. Además, se pueden aplicar límites de marca de tiempo a las transacciones de lectura, en cuyo caso se lee una versión coherente de los datos 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 el formato de archivo CSV en Spanner.
Para obtener más información, consulta Carga datos de muestra.
Para transferir los datos de MySQL a Spanner, también puedes exportar la base de datos de MySQL a un formato de archivo portátil (por ejemplo, XML) y, luego, importar esos datos a Spanner mediante 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 Migración de datos en vivo desde 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 mediante 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 los mecanismos de corte y resguardo
Puedes configurar la migración de sistemas y el resguardo para MySQL con la replicación inversa. La migración de sistemas y el resguardo significan que tienes un plan de contingencia para revertir a tu base de datos de origen de MySQL si tienes problemas con Spanner.
La replicación inversa es útil cuando tienes problemas imprevistos 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 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 los datos en tu base de datos de origen.
¿Qué sigue?
- Prácticas recomendadas en el diseño del esquema.
- Optimiza tu esquema de Spanner.
- Obtén información sobre cómo usar Dataflow en situaciones más complejas.