Descripción general de la migración

En este documento, se describe el proceso de migración de tu base de datos a Spanner Describimos las etapas de la migración y las herramientas para cada etapa, según tu base de datos de origen y otros factores. Las herramientas recomendadas incluyen productos de Google Cloud y herramientas en herramientas comerciales y de código abierto. En conjunto, estas herramientas te ayudan a acelerar las migraciones y reducir el riesgo.

Cualquier migración de Spanner implica las siguientes etapas principales:

  1. Evalúa la complejidad de tu migración.
  2. Migra tu esquema.
  3. Carga datos de muestra.
  4. Migra tu aplicación.
  5. Prueba y ajusta tu rendimiento.
  6. Migrar los datos
  7. Valida la migración.
  8. Configurar mecanismos de migración de sistemas y de conmutación por error

Dentro de estas etapas, tu plan de migración puede variar ampliamente en función de factores como la fuente y el tamaño de la base de datos, los requisitos de tiempo de inactividad, la complejidad del código de la aplicación, el esquema de fragmentación, las funciones o transformaciones personalizadas, la conmutación por error y la estrategia de replicación.

Herramientas de migración

Te recomendamos que uses las siguientes herramientas para asistirte en las distintas etapas de tu en función de la base de datos de origen y otros factores. Solo algunas herramientas no admiten ciertas bases de datos de origen. Para algunos pasos del proceso, no se disponibles, así que completas esos pasos de forma manual.

  • Herramienta de migración de Spanner (SMT) Es una herramienta de código abierto capaz de realizar evaluaciones básicas, convertir esquemas, y las migraciones de datos.

  • Evaluación de migración de bases de datos (DMA) ofrece una evaluación básica para migrar PostgreSQL a Spanner.

  • Datastream es un servicio de Google Cloud que permite leer eventos de captura de datos modificados (CDC) y datos masivos de un y escribir en un destino especificado.

  • Dataflow es un servicio de Google Cloud que te ayuda a escribir una gran cantidad de datos en Spanner con eficiencia usando plantillas.

  • Migración de datos masiva es una plantilla de Dataflow que permite migrar grandes conjuntos de datos directamente a Spanner.

  • La migración con tiempo de inactividad mínimo usa Datastream y Dataflow para migrar lo siguiente:

    • Datos existentes en tu base de datos de origen
    • Flujo de cambios que se realizan en tu base de datos de origen durante la migración.
  • Herramienta de validación de datos (DVT) es un método de validación de datos estandarizado, creado por Google y respaldado por a la comunidad de código abierto. Puede integrar la DVT en en todos los productos de Google Cloud.

Herramientas de migración para bases de datos de origen de MySQL

Si tu base de datos de origen es MySQL, puedes realizar parte de la migración inicial. con archivos de volcado de MySQL. Debes conectarte directamente a tu base de datos MySQL de origen en ejecución para completar una migración de producción.

En la siguiente tabla, se recomiendan herramientas de migración según la etapa de migración ya sea que uses un archivo de volcado o conectes directamente tu archivo fuente base de datos:

Etapa de migración Archivo de volcado Conexión directa a la base de datos de origen
Evaluación Usa SMT con mysqldump. Usa SMT con mysqldump.
Conversión de esquemas Usa SMT con mysqldump. Usa SMT para configurar y convertir el esquema.
Carga de datos de muestra Realiza una migración masiva.
Migración de datos No aplicable Realiza una migración masiva y, luego, una migración con un tiempo de inactividad mínimo.
Validación de datos No aplicable Usa DVT.
Configuración de la conmutación por error No aplicable Usa SMT para la replicación inversa.

Herramientas de migración para bases de datos de origen de PostgreSQL

Si tu base de datos de origen usa PostgreSQL, puedes realizar algunas de las etapas de la migración con un archivo de volcado de PostgreSQL. Debes conectarte directamente a tu base de datos PostgreSQL de origen en ejecución para completar la migración.

En la siguiente tabla, se recomiendan herramientas de migración según la etapa de migración ya sea que trabajes con un archivo de volcado o te conectes directamente desde tu fuente base de datos:

Etapa de migración Archivo de volcado Conexión directa a la base de datos de origen
Evaluación Usa SMT con pg_dump. Usa DMA.
Conversión de esquemas Usa SMT con pg_dump. Usa SMT para configurar y convertir el esquema.
Carga de datos de muestra Realiza una migración con un tiempo de inactividad mínimo.
Migración de datos No aplicable Realiza una migración con un tiempo de inactividad mínimo.
Validación de datos No aplicable Usa DVT.
Conmutación por error No aplicable No aplicable

Evalúa la complejidad de tu migración

Para evaluar el alcance y la complejidad de tu migración y planificar el enfoque, puedes necesitas recopilar datos sobre tu base de datos de origen, incluidos los siguientes:

  • Patrones de consulta
  • La cantidad de lógica de la aplicación que depende de las funciones de la base de datos, como como procedimientos almacenados y activadores
  • Requisitos de hardware
  • Costo total de propiedad (TCO)

Migra tu esquema

Antes de migrar un esquema a uno de Spanner, evalúa la entre los esquemas y optimizar tu esquema para Spanner Por ejemplo, podrías querer cambiar las claves, soltar o agregar índices, o agregar o quitar columnas de tablas existentes. Para optimizar tu esquema para Spanner, consulta Prácticas recomendadas para el diseño de esquemas y Estrategias de migración de claves primarias recomendadas.

Herramienta de migración de Spanner, una herramienta de código abierto mantenida por la comunidad creada por desarrolladores de Google, crea automáticamente un esquema de Spanner a partir de tu base de datos de origen. . Puedes personalizar el esquema con el asistente de esquema de la herramienta de migración de Spanner.

La herramienta de migración de Spanner transfiere el esquema y los datos de una de las siguientes ubicaciones:

  • Un archivo de volcado de una ubicación local o Cloud Storage (MySQL, PostgreSQL, CSV)
  • Directamente desde la base de datos de origen (MySQL, PostgreSQL)

La herramienta de migración de Spanner realiza las siguientes funciones para la evaluación de esquemas: recomendaciones y migraciones:

  • Evaluación y recomendaciones de compatibilidad de los tipos de datos
  • Recomendaciones y edición de clave primaria
  • Edición del índice secundario y recomendaciones
  • Cómo intercalar la edición y las recomendaciones de la tabla
  • Recomendaciones generales para el diseño de esquemas de Spanner
  • Control de versiones de esquemas
  • Modificación del esquema colaborativo

Para obtener más información sobre las migraciones de esquemas con la herramienta de migración de Spanner, consulta el Archivo README.md de la herramienta de migración de Spanner.

También puedes usar la herramienta de migración de Spanner para la migración de datos.

Carga datos de muestra

Después de crear un esquema compatible con Spanner, puedes preparar tu base de datos que se probará con datos de muestra. Puedes usar la Flujo de trabajo de ETL inverso de BigQuery para cargar los datos de muestra. Para obtener más información, consulta Carga datos de muestra.

Migra tu aplicación

Una migración de base de datos requiere diferentes controladores y bibliotecas, además de por las funciones que no admite Spanner. Para optimizar según las fortalezas de Spanner, quizás debas cambiar tu código, los flujos de la aplicación y la arquitectura.

Estos son algunos de los cambios necesarios para migrar tu aplicación a Spanner:

También es posible que debas realizar cambios en el control de transacciones. No hay herramientas. disponible para ayudarte, por lo que debes completar este paso de forma manual. Conservar lo siguiente:

  • El límite de mutaciones por confirmación es de 40,000. Cada índice secundario en una tabla es una mutación adicional por fila. Para modificar datos mediante mutaciones, consulta Inserta, actualiza y borra datos mediante mutaciones. Para modificar una gran cantidad de datos, usa DML particionado.
  • Para el nivel de aislamiento de transacción, no se requiere control debido a que Las transacciones de Spanner están más aisladas.
  • Debido a que Spanner es linealizable, controla la coherencia y el bloqueo de forma predeterminada.

Prueba y ajusta el esquema y el rendimiento de la aplicación

El ajuste de rendimiento es un proceso iterativo en el que evalúas métricas como el uso de CPU y la latencia según un subconjunto de tus datos, ajusta tu esquema y aplicación para mejorar el rendimiento, y volver a realizar pruebas.

Por ejemplo, en tu esquema, puedes agregar o cambiar un índice, o cambiar una clave primaria. En tu aplicación, puedes realizar escrituras por lotes, o bien combinar o modificar tus consultas.

En particular, para el tráfico de producción, el ajuste del rendimiento es importante para evitar sorpresas. El ajuste del rendimiento es más eficaz cuanto más cerca esté la configuración de la producción en vivo en cuanto a la capacidad de procesamiento y los tamaños de datos del tráfico.

Para probar y ajustar el esquema y el rendimiento de la aplicación, sigue estos pasos:

  1. Subir un subconjunto de tus datos a una base de datos de Spanner Para Para obtener más información, consulta Cómo migrar tus datos.
  2. Apuntar la aplicación a Spanner
  3. Verifica la precisión revisando los flujos básicos.
  4. Realiza pruebas de carga para verificar que el rendimiento cumpla con tus expectativas en tu aplicación. Si necesita ayuda para identificar y optimizar sus consultas costosas, consulta Detecta problemas de rendimiento de las consultas con las estadísticas de consultas. En particular, los siguientes factores pueden contribuir a que las consultas sean deficientes rendimiento:
    1. Consultas ineficientes: para obtener información sobre cómo escribir consultas eficientes, consulta Prácticas recomendadas sobre SQL.
    2. Alto uso de CPU. Para obtener más información, consulta Investiga el alto uso de CPU.
    3. Bloqueo: Para reducir los cuellos de botella causados por el bloqueo de transacciones, ver Identifica las transacciones que podrían causar latencias altas.
    4. Diseño de esquema ineficiente: si el esquema no está bien diseñado, consulta la optimización no es muy útil.
    5. Hotspotting: Los hotspots en Spanner limitan la capacidad de procesamiento de escritura. especialmente para aplicaciones con un alto valor de QPS. Para identificar puntos de acceso antipatrones, marca el encabezado Elementos visuales estadísticas de la consola de Google Cloud. Para obtener más información evitar hotspots, consulta Elige una clave primaria para evitar los hotspots.
  5. Si modificas el esquema o los índices, repite la corrección y el rendimiento. hasta que obtengas resultados satisfactorios.

Para obtener más información sobre cómo ajustar el rendimiento de tu base de datos, comunícate con Compatibilidad con Spanner.

Migre sus datos

Después de optimizar el esquema de Spanner y migrar traslada tus datos a un contenedor vacío de tamaño Spanner y, luego, pasamos al Base de datos de Spanner.

Según la base de datos de origen, es posible que puedas migrar tu base de datos con un tiempo de inactividad mínimo o que necesites un tiempo de inactividad prolongado.

Tanto para migraciones con tiempo de inactividad mínimo como para las migraciones con tiempo de inactividad prolongado recomendamos usar Dataflow y la herramienta de migración de Spanner.

En la siguiente tabla, se muestran las diferencias entre las migraciones con tiempo de inactividad mínimo y migraciones con más tiempo de inactividad, incluidas las fuentes, los formatos, el tamaño y capacidad de procesamiento.

Migración con tiempo de inactividad mínimo Migración con tiempo de inactividad
Fuentes admitidas MySQL, PostgreSQL Cualquier base de datos que pueda exportar a CSV o Avro.
Formatos de datos compatibles Conéctate directamente. Consulta Directamente conectarte a una base de datos MySQL. MySQL, PostgreSQL, CSV y Avro
Tamaños de bases de datos compatibles Sin límite Sin límite
Capacidad de procesamiento máxima 45 GB por hora 200 GB por hora

Migración con tiempo de inactividad mínimo

Spanner admite migraciones con tiempo de inactividad mínimo desde MySQL, PostgreSQL y Oracle Database. Una migración con tiempo de inactividad mínimo consta de dos componentes:

  • Una instantánea coherente de todos los datos de la base de datos
  • El flujo de cambios (inserciones y actualizaciones) desde esa instantánea conocida como captura de datos modificados (CDC)

Si bien las migraciones con tiempo de inactividad mínimo ayudan a proteger los datos, el proceso implica desafíos, como los siguientes:

  • Almacenar datos de CDC mientras se migra la instantánea
  • Escribe los datos de CDC en Spanner mientras se capturan los datos entrantes transmisión de CDC.
  • Garantizar que la migración de los datos de CDC a Spanner sea más rápida que la transmisión de CDC entrante.

Para administrar una migración con tiempo de inactividad mínimo, la herramienta de migración de Spanner organiza lo siguiente procesos por ti:

  1. Configura un bucket de Cloud Storage para almacenar eventos de CDC en la base de datos de origen mientras avanza la migración de instantáneas.
  2. Configura un trabajo de Datastream que mueve la masa carga de datos de CDC y transmite continuamente datos incrementales de CDC al bucket de Cloud Storage. Configura el perfil de conexión fuente en la herramienta de migración de Spanner.
  3. Configura el trabajo de Dataflow para migrar la CDC eventos a Spanner.

Cuando Dataflow copia la mayoría de los datos, deja de escribir la base de datos de origen y espera a que los datos terminen de migrar. Esto da como resultado en poco tiempo de inactividad, mientras Spanner se pone al día con la fuente en la base de datos. Luego, la aplicación puede migrar a Spanner.

En el diagrama a continuación, se muestra este proceso.

En el diagrama, se muestra el proceso de una migración con un tiempo de inactividad mínimo.

Migración con tiempo de inactividad

En el caso de las bases de datos que no sean MySQL, Oracle o PostgreSQL, si la base de datos exportar a CSV o Avro, y luego migrar a Spanner tiempo de inactividad. Te recomendamos usar Dataflow o Herramienta de migración de Spanner.

Las migraciones con tiempo de inactividad solo se recomiendan para los entornos de pruebas o aplicaciones que pueden soportar unas horas de tiempo de inactividad. En una base de datos activa, un una migración con tiempo de inactividad puede provocar la pérdida de datos.

Para realizar una migración de tiempo de inactividad, sigue estos pasos de alto nivel:

  1. Genera un archivo de volcado de los datos de la base de datos de origen.
  2. Sube el archivo de volcado a Cloud Storage en formato de volcado de MySQL, PostgreSQL, Avro o CSV.
  3. Cargar el archivo de volcado en Spanner con Dataflow o la herramienta de migración de Spanner.

La generación de varios archivos de volcado pequeños acelera el proceso de escritura en Spanner, ya que puede leer varios archivos de volcado en paralelo.

Cuando se genera un archivo de volcado desde la base de datos de origen, para generar una o instantánea de los datos, ten en cuenta lo siguiente:

  • Para evitar que los datos cambien durante la generación del archivo de volcado, haz lo siguiente: antes de realizar el volcado, aplica un bloqueo de lectura en la base de datos de origen.
  • Genera el archivo de volcado mediante una réplica de lectura de la base de datos de origen con replicación inhabilitada.

Avro es el formato preferido para una migración masiva a Spanner. Si Si usas Avro, ten en cuenta lo siguiente:

Si usas CSV, ten en cuenta lo siguiente:

  • Para generar un volcado de los datos de CSV, usa la generación de CSV compatible con la fuente. Si los datos contienen líneas nuevas, usa un separador de línea personalizado.
  • Para importar datos de CSV, usa un trabajo de importación de Dataflow. Puedes crear tu propia plantilla de importación de Dataflow o usar una Importar plantilla. Para obtener más información, consulta Plantillas de canalización de datos de Dataflow.

Si usas MySQL o PostgreSQL, puedes usar la herramienta de migración de Spanner.

Si quieres obtener información sobre el uso de secuencias de comandos personalizadas para cargar datos en Spanner, consulta Lineamientos de rendimiento para la carga masiva

Valida la migración de tus datos

La validación de datos es el proceso de comparar los datos de las tablas de origen y de destino para garantizar que coincidan.

Herramienta de validación de datos (DVT) es una herramienta de código abierto que puede conectarse a almacenes de datos y realizar verificaciones entre la fuente y Spanner. Te recomendamos usarlo para realizar validaciones básicas como parte de tu migración, como las siguientes:

  • Verifica que se hayan creado todas las tablas y que todas las asignaciones de esquemas estén correcto .
  • Haz coincidir el recuento de filas de cada tabla.
  • Extraer filas aleatorias para verificar la precisión
  • Valida tus columnas (count, sum, avg, min, max, group by).
  • Compara las verificaciones de redundancia cíclica o las funciones hash a nivel de fila.

Para realizar validaciones más específicas, crea verificaciones personalizadas durante la migración.

Configura mecanismos de transición y conmutación por error

Las migraciones suelen consumir mucho tiempo y ser complejas. Crea resguardos que se deben evitar un impacto significativo en caso de un error durante la migración, lo que te permite cambiar de regreso a la base de datos de origen con un tiempo de inactividad mínimo.

La recomendación actual es consumir transmisiones de cambios para realizar la replicación inversa, y volver a escribir en la base de datos de origen a través de un flujo, Pub/Sub o Cloud Storage.

En el diagrama, se muestra el proceso de migración de sistemas.

La replicación inversa debe realizar las siguientes acciones:

  • Controla los cambios en los tipos de datos o el contenido.
  • Revierte las transformaciones realizadas durante la migración.
  • Enviar los datos al destino adecuado teniendo en cuenta fragmentando esquemas en la fuente.

¿Qué sigue?