Migrar de MySQL a Spanner

En esta página se ofrece una descripción general de cómo migrar tu base de datos de procesamiento de transacciones online (OLTP) de MySQL a Spanner. El proceso de migración a Spanner puede variar en función de 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:

  1. Evalúa tu migración.
  2. Migra tu esquema y traduce las consultas de SQL.
  3. Migra tu aplicación para que use Spanner además de MySQL.
  4. Carga datos de ejemplo y optimiza el rendimiento.
  5. Migra tus datos.
  6. Valida la migración.
  7. Configura los mecanismos de cambio y de respaldo.

Evalúa tu migración

Para evaluar una migración de tu base de datos MySQL de origen a Spanner, debes analizar tus necesidades empresariales, técnicas, operativas y financieras. Para obtener más información, consulta Evaluar la migración.

Migrar el esquema

Convierte tu esquema en un esquema de Spanner con la herramienta de migración de Spanner.

Para obtener más información, consulta el artículo Migrar un esquema de MySQL.

Migrar una aplicación para usar Spanner

Spanner proporciona un conjunto de bibliotecas de cliente para varios lenguajes y la capacidad de leer y escribir datos mediante llamadas a APIs específicas de Spanner, así como mediante consultas de SQL y declaraciones del lenguaje de modificación de datos (DML). Usar llamadas a la API puede ser más rápido para algunas consultas, como las lecturas directas de filas por clave, porque no es necesario traducir la instrucción 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 ha mencionado anteriormente, deben implementarse en la aplicación. Por ejemplo, un activador para verificar los valores de los datos y actualizar una tabla relacionada se tendría que implementar en la aplicación mediante una transacción de lectura o escritura para leer la fila, verificar la restricción y, a continuación, escribir las filas actualizadas en ambas tablas.

Spanner ofrece transacciones de lectura o escritura y de solo lectura que garantizan la coherencia externa de tus datos. Además, se pueden aplicar límites de marca de tiempo a las transacciones de lectura, en las que se lee una versión coherente de los datos de una de estas dos formas:

  • en un momento exacto del pasado (hace hasta 1 hora).
  • en el futuro (donde la lectura se bloqueará hasta que llegue ese momento).
  • con una cantidad aceptable de obsolescencia limitada, que devolverá una vista coherente hasta hace un tiempo sin necesidad de comprobar que los datos posteriores estén disponibles en otra réplica. Esto puede mejorar el rendimiento, pero a costa de que los datos estén obsoletos.

Cargar 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 inverso de BigQuery y la CLI de Google Cloud para cargar una pequeña cantidad de datos en formato de archivo CSV en Spanner.

Para obtener más información, consulta Cargar datos de muestra.

Para transferir 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, a continuación, importar esos datos a Spanner con Dataflow.

Migrar datos a Spanner

Después de optimizar el esquema de Spanner y cargar datos de muestra, puede mover sus datos a una base de datos de Spanner de producción vacía.

Para obtener más información, consulta Migración de datos activos desde MySQL.

Validar la migración de datos

A medida que los datos se transmiten a tu base de datos de Spanner, puedes ejecutar periódicamente una comparación entre los datos de Spanner y los de MySQL para asegurarte de que los datos sean coherentes. Para validar la coherencia, puedes consultar ambas fuentes de datos y comparar los resultados.

Puedes usar Dataflow para hacer una comparación detallada de conjuntos de datos grandes mediante la transformación de unión. Esta transformación toma dos conjuntos de datos con claves y relaciona los valores por clave. Los valores coincidentes se pueden comparar para comprobar si son iguales. Puedes realizar esta verificación periódicamente hasta que el nivel de coherencia se ajuste a los requisitos de tu empresa.

Para obtener más información, consulta el artículo Validar la migración de datos.

Configurar mecanismos de cambio y de respaldo

Puedes configurar el cambio y la restauración para MySQL mediante la replicación inversa. El cambio y la restauración significa que tienes un plan de contingencia para volver a tu base de datos MySQL de origen si tienes problemas con Spanner.

La replicación inversa es útil cuando se producen problemas imprevistos con Spanner y necesitas volver a la base de datos MySQL original con la mínima interrupción del servicio. La replicación inversa permite restaurar los datos replicando los datos escritos en Spanner en la base de datos MySQL de origen.

El flujo de replicación inversa implica los siguientes pasos, que lleva a cabo la Spanner to SourceDBplantilla de Dataflow:

  1. Lee los cambios de Spanner mediante flujos de cambios de Spanner.

  2. Filtra los cambios migrados.

  3. Transformar los datos de Spanner para que sean compatibles con el esquema de la base de datos de origen.

  4. Verifica si la base de datos de origen ya contiene datos más recientes para la clave principal especificada.

  5. Escribe los datos en la base de datos de origen.

Siguientes pasos