Migra 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 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 desglosa en los siguientes pasos:

  1. Evalúa tu migración.
  2. Migrar tu esquema y traducir cualquier consulta de SQL
  3. Migrar tu aplicación para usar Spanner, además de MySQL
  4. Carga datos de muestra y optimiza tu rendimiento.
  5. Migra tus datos.
  6. Valida la migración.
  7. Configurar mecanismos de corte y de resguardo

Evalúa la migración

Para evaluar una migración de tu base de datos fuente de MySQL a Spanner, debes analizar tus necesidades comerciales, técnicas, operativas y financieras. Para obtener más información, consulta Evalúa tu migración.

Migra tu esquema

Debes convertir 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ó antes, 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 a fin de leer la fila existente, verificar la restricción y 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 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 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 Cómo cargar 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 transferir 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 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 tu migración de datos.

Configura mecanismos de corte y resguardo

Puedes configurar la migración y la reversión para MySQL con la replicación inversa. El corte y la reversión significan que tienes un plan de contingencia para revertir a tu base de datos de MySQL de origen si tienes problemas con Spanner.

La replicación inversa es útil cuando surgen problemas imprevistos con Spanner y necesitas volver a la base de datos MySQL original con la menor interrupción posible del servicio. La replicación inversa permite la recuperación replicando los datos escritos en Spanner en tu base de datos de MySQL de origen.

El flujo de replicación inversa implica los siguientes pasos, que realiza la plantilla de Dataflow Spanner to SourceDB:

  1. Leer los cambios de Spanner con los flujos de cambios de Spanner

  2. Filtra los cambios migrados hacia adelante.

  3. Transforma los datos de Spanner para que sean compatibles con el esquema de tu base de datos de origen.

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

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

¿Qué sigue?