Usa la migración administrada para migrar un almacén de metadatos de MySQL autoadministrado a Dataproc Metastore

La migración administrada es una función automatizada que te ayuda a migrar datos de un almacén de metadatos de Hive autoadministrado a un servicio de Dataproc Metastore, sin ningún tiempo de inactividad considerable (también conocido como día de marca).

Cómo funciona la migración administrada

Para completar una migración administrada, tu servicio debe ejecutarse a través de dos procesos de migración: iniciar la migración y completar la migración. Puedes cancelar una migración en cualquier momento con el proceso de cancelar migración. También hay una serie de comandos operativos que puedes ejecutar, que no son necesarios para completar una migración. Por ejemplo, enumerar migración o borrar migración.

A medida que tu servicio avanza en este proceso, también pasa entre varios estados de migración y fases de migración. Estos estados y fases representan los procesos que ocurren en segundo plano. Por ejemplo, el estado MIGRATING indica que tu servicio está transfiriendo datos de manera activa desde tu base de datos de Cloud SQL hacia Dataproc Metastore.

La migración administrada requiere tres subredes para ejecutar una migración: proxy_subnet, nat_subnet y reverse_proxy_subnet. Para evitar problemas de latencia, configura lo siguiente:

  • proxy_subnet y nat_subnet en la misma región que Cloud SQL.
  • reverse_proxy_subnet está en la misma región del servicio de Dataproc Metastore.

Para obtener más información sobre los diferentes tipos de subredes, consulta Propósitos de las subredes.

Flujo de migración administrado

Iniciar la migración

  1. Debes ejecutar un proceso de inicio de migración en un servicio de Dataproc Metastore.
  2. El servicio de Dataproc Metastore se conecta a tu base de datos de Cloud SQL, que actúa como la base de datos de backend para tu almacén de metadatos de Hive autoadministrado. En este paso, la base de datos de Cloud SQL sigue siendo la fuente de información de tus datos.

  3. Dataproc Metastore ejecuta una transmisión de captura de datos modificados (CDC) que copia datos de la base de datos de Cloud SQL a la base de datos de Dataproc Metastore (Cloud Spanner).

    Una vez que la migración se inicie de forma correcta, podrás comenzar a enrutar las cargas de trabajo a Dataproc Metastore. En este punto, Cloud SQL sigue siendo la fuente de información para tus datos.

Completar migración

Una vez que termines de mover tus cargas de trabajo a Dataproc Metastore, puedes completar la migración. Cuando se llama a un proceso de migración completa, ocurre lo siguiente:

  • Dataproc Metastore pasa a un modo de solo lectura hasta que finaliza el proceso de migración completo.
  • La transmisión de CDC transfiere todos los datos en tránsito a Dataproc Metastore.
  • Dataproc Metastore se conecta a Spanner y se desconecta de Cloud SQL. Dataproc Metastore ahora actúa como la fuente de información confiable para tus datos.

Antes de comenzar

Para iniciar una migración, debes configurar los siguientes servicios o tener acceso a ellos:

  • Un Dataproc Metastore configurado con el tipo de base de datos de Spanner
  • Una instancia de base de datos de Cloud SQL para MySQL configurada con una IP privada

    • La red de VPC de la instancia de Cloud SQL tiene las subredes necesarias.

    • Cloud SQL usa una base de datos con un esquema que es compatible con la versión del almacén de metadatos de Hive que se ejecuta en el servicio de Dataproc Metastore en el que se copian los datos.

    • Configura Cloud SQL para usarlo como fuente de Datastream. Crea un nombre de usuario y una contraseña para conectar Datastream a Cloud SQL.

Funciones requeridas

A fin de obtener los permisos que necesitas para crear un Dataproc Metastore y comenzar una migración administrada, pídele a tu administrador que te otorgue los siguientes roles de IAM:

Si quieres obtener más información para otorgar roles, consulta Administra el acceso.

Es posible que también puedas obtener los permisos necesarios a través de los roles personalizados o de otros roles predefinidos.

Configura una migración administrada

Puedes configurar una migración con las APIs de Dataproc Metastore.

Un servicio de Dataproc Metastore solo puede ejecutar una migración a la vez.

Iniciar migración

Cuando inicias una migración, Dataproc Metastore se conecta a Cloud SQL y usa Cloud SQL como su base de datos de backend. Durante este proceso, Dataproc Metastore ejecuta una canalización que copia datos de Cloud SQL a su propia base de datos (Spanner).

Dataproc Metastore continúa usando Cloud SQL como backend y replica los datos hasta que se llama al proceso de migración completo.

Consideraciones

  • Las migraciones permanecerán activas hasta que completes el proceso correspondiente. No hay una fecha límite para completar la migración, por ejemplo, esta puede tardar 1 día, 30 días o un año.

  • Las copias de seguridad programadas no se restringen durante una migración. Sin embargo, es posible que la copia de seguridad esté incompleta. Para evitar problemas, inhabilita las copias de seguridad programadas mientras la migración está en curso.

Una migración inicial activa los siguientes cambios de estado:

  • Dataproc Metastore pasa al estado MIGRATING.
  • El estado de ejecución de la migración pasa a RUNNING.
  • La fase de ejecución de la migración se mueve a REPLICATION.

Console

Comenzar ahora

  1. En la consola de Google Cloud, abre la página de Dataproc Metastore:

    Abrir Dataproc Metastore

  2. En la página Dataproc Metastore, haz clic en el nombre del servicio al que deseas migrar.

    Se abrirá la página Detalles del servicio.

  3. En la parte superior de la página, haz clic en Migrar datos.

    En la página Crear migración, se abrirá la pestaña Conectividad y se mostrará la configuración de la configuración de la base de datos de Cloud SQL para Dataproc Metastore.

Configuración de la base de datos de Cloud SQL para DPMS

  1. En Nombre de la conexión con la instancia, ingresa el nombre de la conexión de la instancia de la base de datos de Cloud SQL en el siguiente formato: PROJECT_ID/LOCATION/CLOUDSQL_INSTANCE_ID.

  2. En el campo Dirección IP, ingresa la dirección IP necesaria para conectarte a la instancia de Cloud SQL.

  3. En el campo Puerto, ingresa 3306.

  4. En el campo Nombre de la base de datos de Hive, ingresa el nombre de la base de datos que se usa como backend del almacén de metadatos de Hive autoadministrado.

  5. En el campo Nombre de usuario, ingresa el nombre de usuario que usas para conectar Cloud SQL al almacén de metadatos de Hive.

  6. En el campo Contraseña, ingresa la contraseña que usas para conectar Cloud SQL al almacén de metadatos de Hive.

Servicio de proxy de SOCKS5

  1. En el campo Subred del proxy, ingresa la subred que se usa en la red de VPC de Cloud SQL. Esta subred se usa para implementar el proxy SOCKS5 intermedio.

  2. En el campo Subred de NAT, ingresa la subred de Private Service Connect que proporciona una conexión desde el servicio de Dataproc Metastore para acceder al proxy intermedio. El tamaño de subred debe tener una longitud de prefijo de al menos /29.

  3. Haz clic en Continuar.

    Se abrirá la pestaña Captura de datos modificados (CDC) y se mostrará la configuración de la base de datos de Cloud SQL para Datastream.

Configuración de la base de datos de Cloud SQL para el flujo de datos

  1. En el campo Nombre de usuario, ingresa el nombre de usuario que usas para acceder a la CDC de Cloud SQL que usa Datastream.

  2. En el campo Contraseña, ingresa la contraseña que usas para acceder a la CDC de Cloud SQL que usa Datastream.

  3. En el campo Red de VPC, ingresa la red en la misma red de VPC que la instancia de Cloud SQL que usa Datastream para establecer una conexión privada a la CDC.

  4. En el campo Rango de IP de la subred, ingresa un rango de IP de subred de al menos /29. Datastream usa esta IP para establecer el intercambio de tráfico con la red de VPC.

  5. En el campo Subred de proxy inversa, ingresa la subred que creaste en la misma red de VPC que Cloud SQL. Datastream usa esta subred. La subred se usa con el objetivo de alojar una conexión de proxy inversa para la CDC de Datastream. La subred debe configurarse en la misma región que el servicio de Dataproc Metastore.

Configuración de GCS

  1. En ID de bucket, selecciona la ruta de acceso de Cloud Storage para almacenar datos de CDC durante la migración.

  2. En el campo Ruta de acceso raíz, ingresa la ruta raíz dentro del bucket de Cloud Storage. Los datos del evento de transmisión se escriben en esta ruta de acceso.

  3. Haz clic en Crear.

REST

curl -H "Authorization: Bearer $(gcloud auth print-access-token)" \
  -H "Content-Type:application/json" \
  -X POST -d \
  '{
    "migration_execution": {
      "cloud_sql_migration_config": {
        "cloud_sql_connection_config": {
          "instance_connection_name": INSTANCE_CONNECTION_NAME,
          "hive_database_name": "HIVE_DATABASE_NAME",
          "ip_address": "IP_ADDRESS",
          "port": 3306,
          "username": "CONNECTION_USERNAME",
          "password": "CONNECTION_PASSWORD",
          "proxy_subnet": "PROXY_SUBNET",
          "nat_subnet": "NAT_SUBNET"
        },
        "cdc_config": {
          "username": "CDC_USENAME",
          "password": "CDC_PASSWORD",
          "vpc_network": "VPC_NETWORK",
          "subnet_ip_range": "SUBNET_IP_RANGE",
          "reverse_proxy_subnet": "REVERSE_PROXY_SUBNET_ID",
          "bucket": "BUCKET_NAME",
          "root_path": "ROOT_PATH",
        }
      }
    }
}' \
  https://metastore.googleapis.com/v1alpha/projects/PROJECT_ID/locations/LOCATION/services/SERVICE:startMigration

Reemplaza lo siguiente:

  • SERVICE: Es el nombre o el ID de tu servicio de Dataproc Metastore.
  • PROJECT_ID: Es el ID del proyecto de Google Cloud en el que reside tu servicio de Dataproc Metastore.
  • LOCATION: Es la región de Google Cloud en la que reside el servicio de Dataproc Metastore.

Configuración de la migración de Cloud SQL

  • INSTANCE_CONNECTION_NAME: Es el nombre de conexión de la instancia para la base de datos de Cloud SQL, en el siguiente formato: PROJECT_ID/LOCATION/CLOUDSQL_INSTANCE_ID.
  • HIVE_DATABASE_NAME: Es el nombre de la base de datos autoadministrada de Hive conectada a Cloud SQL.
  • IP_ADDRESS: Es la dirección IP necesaria para conectarse a la instancia de Cloud SQL.
  • CONNECTION_USERNAME: Es el nombre de usuario que usas para conectar Cloud SQL al almacén de metadatos de Hive.
  • CONNECTION_PASSWORD es la contraseña que usas para conectar Cloud SQL al almacén de metadatos de Hive.
  • PROXY_SUBNET: Es la subred que se usa en la red de VPC de Cloud SQL. Esta subred aloja un proxy intermedio para proporcionar conectividad entre las redes transitivas.
  • NAT_SUBNET: Es una subred de Private Service Connect que proporciona una conexión desde el servicio de Dataproc Metastore para acceder al proxy intermedio. El tamaño de subred debe tener una longitud de prefijo de al menos /29 y en el rango de IPv4.

Configuración de CDC

  • CDC_USERNAME: Es el nombre de usuario que usa el servicio de Datastream para acceder a Cloud SQL.
  • CDC_PASSWORD: Es la contraseña que usa el servicio de Datastream para acceder a Cloud SQL.
  • VPC_NETWORK: Es una red en la misma red de VPC que la instancia de Cloud SQL que usa Datastream para establecer una conexión privada a la CDC.
  • SUBNET_IP_RANGE: Un rango de IP de subred de al menos /29 que usa Datastream para establecer el intercambio de tráfico con la red de VPC.
  • REVERSE_PROXY_SUBNET_ID: Es una subred en la misma red de VPC que la instancia de Cloud SQL que usa Datastream. La subred se usa para alojar una conexión de proxy inversa para la CDC de Datastream. La subred debe configurarse en la misma región que el servicio de Dataproc Metastore.
  • BUCKET_NAME: Es la ruta de acceso de Cloud Storage para almacenar datos de CDC durante la migración.
  • ROOT_PATH: Es la ruta raíz dentro del bucket de Cloud Storage. Los datos del evento de transmisión se escriben en esta ruta de acceso.

Completar migración

Cuando completas una migración, Dataproc Metastore se conecta a Spanner y comienza a usar Spanner como su base de datos de backend.

Una migración completa activa los siguientes cambios de estado:

  • Dataproc Metastore vuelve al estado ACTIVE.
  • El estado de ejecución de la migración pasa a SUCCEEDED.

Console

  1. En la consola de Google Cloud, abre la página Dataproc Metastore.

  2. En la parte superior de la página, haz clic en Migrar datos.

    Se abrirá la página Migrar datos, en la que se mostrarán las migraciones administradas que completaste.

REST

curl -H "Authorization: Bearer $(gcloud auth print-access-token)" \
  -H "Content-Type:application/json" \
  -X POST -d '' \
  https://metastore.googleapis.com/v1alpha/projects/PROJECT_ID/locations/LOCATION/services/SERVICE:completeMigration

Reemplaza lo siguiente:

  • SERVICE: Es el nombre o el ID de tu servicio de Dataproc Metastore.
  • PROJECT_ID: Es el ID del proyecto de Google Cloud en el que reside tu servicio de Dataproc Metastore.
  • LOCATION: Es la región de Google Cloud en la que reside el servicio de Dataproc Metastore.

Cancelar migración

Cuando cancelas una migración, Dataproc Metastore revierte los cambios y comienza a usar el tipo de base de datos de Spanner como la base de datos de backend. Se borrarán todos los datos que se transfirieron durante la migración.

La cancelación de una migración activa los siguientes cambios de estado:

  • Dataproc Metastore vuelve al estado ACTIVE.
  • El estado de ejecución de la migración pasa a CANCELLED.

Console

  1. En la consola de Google Cloud, abre la página Dataproc Metastore.

  2. En la parte superior de la página, haz clic en Migrar datos.

    Se abrirá la página Migrar datos, en la que se mostrarán las migraciones administradas canceladas.

REST

curl -H "Authorization: Bearer $(gcloud auth print-access-token)" \
  -H "Content-Type:application/json" \
   -X POST -d '' \
   https://metastore.googleapis.com/v1alpha/projects/PROJECT_ID/locations/LOCATION/services/SERVICE:cancelMigration

Reemplaza lo siguiente:

  • SERVICE_NAME: Es el nombre o el ID de tu servicio de Dataproc Metastore.
  • PROJECT_ID: Es el ID del proyecto de Google Cloud en el que reside tu servicio de Dataproc Metastore.
  • LOCATION: Es la región de Google Cloud en la que reside el servicio de Dataproc Metastore.

Obtener detalles de la migración

Obtén detalles sobre una sola migración administrada.

Console

  1. En la consola de Google Cloud, abre la página Dataproc Metastore.

  2. En la parte superior de la página, haz clic en Migrar datos.

    Se abrirá la página Migrar datos, en la que se mostrarán tus migraciones administradas.

    Para obtener más detalles sobre la migración, haz clic en el nombre de una migración administrada.

REST

curl -H "Authorization: Bearer $(gcloud auth print-access-token)" \
  -X GET \
  https://metastore.googleapis.com/v1alpha/projects/PROJECT_ID/locations/LOCATION/services/SERVICE/migrationExecutions/MIGRATION_ID

Reemplaza lo siguiente:

  • SERVICE: Es el nombre o el ID de tu servicio de Dataproc Metastore.
  • PROJECT_ID: Es el ID del proyecto de Google Cloud en el que reside tu servicio de Dataproc Metastore.
  • LOCATION: Es la región de Google Cloud en la que reside el servicio de Dataproc Metastore.
  • MIGRATION_ID: Es el nombre o el ID de la migración de Dataproc Metastore.

Enumera migraciones

Enumera migraciones administradas.

Console

  1. En la consola de Google Cloud, abre la página Dataproc Metastore.

  2. En la parte superior de la página, haz clic en Migrar datos.

    Se abrirá la página Migrar datos, en la que se mostrarán tus migraciones administradas.

  3. Verifica que el comando muestre las migraciones.

REST

curl -H "Authorization: Bearer $(gcloud auth print-access-token)" \
  -X GET \
  https://metastore.googleapis.com/v1alpha/projects/PROJECT_ID/locations/LOCATION/services/SERVICE/migrationExecutions/MIGRATION_ID

Reemplaza lo siguiente:

  • SERVICE: Es el nombre o el ID de tu servicio de Dataproc Metastore.
  • PROJECT_ID: Es el ID del proyecto de Google Cloud en el que reside tu servicio de Dataproc Metastore.
  • LOCATION: Es la región de Google Cloud en la que reside el servicio de Dataproc Metastore.

Borrar migraciones

Borra las migraciones administradas.

REST

curl -H "Authorization: Bearer $(gcloud auth print-access-token)" \
  -X DELETE \
   https://metastore.googleapis.com/v1alpha/projects/PROJECT_ID/locations/LOCATION/services/SERVICE/migrationExecutions/MIGRATION_ID

Reemplaza lo siguiente:

  • SERVICE: Es el nombre o el ID de tu servicio de Dataproc Metastore.
  • PROJECT_ID: Es el ID del proyecto de Google Cloud en el que reside tu servicio de Dataproc Metastore.
  • LOCATION: Es la región de Google Cloud en la que reside el servicio de Dataproc Metastore.
  • MIGRATION_ID: Es el nombre o el ID de la migración de Dataproc Metastore.

¿Qué sigue?