En este tutorial se explica cómo crear y desplegar un trabajo que replica continuamente los datos modificados de una base de datos MySQL en una tabla de BigQuery.
Objetivos
En este tutorial, aprenderás a hacer lo siguiente:
- Despliega tu base de datos MySQL en Compute Engine.
- Configura tu base de datos MySQL para habilitar la replicación.
- Crea y ejecuta una tarea de replicación de Cloud Data Fusion.
- Consulta los resultados en BigQuery.
Costes
En este documento, se utilizan los siguientes componentes facturables de Google Cloud:
Para generar una estimación de costes basada en el uso previsto,
utiliza la calculadora de precios.
Cuando se ejecuta la replicación, se te cobra por el clúster de Dataproc y se te aplican costes de procesamiento de BigQuery. Para optimizar estos costes, te recomendamos que uses los precios de tarifa plana de BigQuery.
Antes de empezar
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
Roles required to select or create a project
- Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
-
Create a project: To create a project, you need the Project Creator
(
roles/resourcemanager.projectCreator
), which contains theresourcemanager.projects.create
permission. Learn how to grant roles.
-
Verify that billing is enabled for your Google Cloud project.
-
Enable the Cloud Data Fusion, BigQuery, and Cloud Storage APIs.
Roles required to enable APIs
To enable APIs, you need the Service Usage Admin IAM role (
roles/serviceusage.serviceUsageAdmin
), which contains theserviceusage.services.enable
permission. Learn how to grant roles. - Crea una instancia pública de Cloud Data Fusion con la versión 6.3.0 o una posterior. Si crea una instancia privada, configure el emparejamiento de redes VPC.
- Cuando crees la instancia, habilita la replicación haciendo clic en Añadir aceleradores y seleccionando la casilla Replicación.
- Para habilitarla en una instancia, consulta Habilitar la replicación.
Descarga una imagen Docker de MySQL Server.
Sube tu imagen de Docker a Artifact Registry.
Despliega tu imagen Docker en una nueva instancia de VM.
En la página Discos de Compute Engine, cambia el tamaño del disco a
500 GB
y reinicia la VM.Crea un cortafuegos para la instancia de VM.
Instala la base de datos de ejemplo Sakila.
Descarga el controlador JDBC de MySQL (versión 8 o posterior) en tu máquina local.
En la interfaz web de Cloud Data Fusion, sube el controlador JDBC.
Usa estos valores para configurar el controlador JDBC:
- En el campo Name (Nombre), introduce
mysql
. - En el campo Versión, deja el valor predeterminado.
- En el campo Nombre de clase, introduce
com.mysql.jdbc.Driver
.
- En el campo Name (Nombre), introduce
En la interfaz web de Cloud Data Fusion, haga clic en Replicación.
Haz clic en
Crear un trabajo de replicación.En la página Create new replication job (Crear trabajo de replicación), especifica un Name (Nombre) para el trabajo de replicación y haz clic en Next (Siguiente).
Configura la fuente:
- Selecciona MySQL como fuente.
- En Host, introduce el nombre de host del servidor MySQL desde el que se leerán los datos.
- En Puerto, introduce el puerto que quieras usar para conectarte al servidor MySQL:
3306
. - En JDBC Plugin Name (Nombre del complemento JDBC), selecciona
mysql
o el nombre que especificaste al configurar el controlador JDBC. - En Nombre de la base de datos, escribe
sakila
. - En la sección Credenciales, introduce tu nombre de usuario y tu contraseña para acceder al servidor MySQL.
Haz clic en Siguiente.
Configura el objetivo:
- Selecciona el destino de BigQuery.
- El ID de proyecto y la clave de cuenta de servicio se detectan automáticamente. No cambies los valores predeterminados.
- Opcional: En la sección Avanzado, configure el nombre, la ubicación, el intervalo de carga, el prefijo de la tabla de almacenamiento temporal y el comportamiento del bucket de almacenamiento temporal cuando se eliminen tablas o bases de datos.
Haz clic en Siguiente.
Si la conexión se realiza correctamente, se muestra una lista de tablas de la base de datos de ejemplo Sakila. En este tutorial, seleccione algunas tablas y eventos para replicar, como los eventos Insert, Update y Delete.
Opcional: Configura las propiedades avanzadas. En este tutorial, puedes usar la configuración predeterminada.
Haz clic en Siguiente.
En la página Revisar evaluación, haga clic en Ver asignaciones en cualquiera de las tablas para ver una evaluación de los problemas de esquema, las funciones que faltan o los problemas de conectividad que puedan producirse durante la replicación. Si se producen problemas, debes solucionarlos para poder continuar. En este tutorial, si alguna de las tablas tiene problemas, vuelve al paso en el que seleccionaste las tablas y elige tablas o eventos (inserciones, actualizaciones o eliminaciones) que no tengan problemas.
Para obtener más información sobre las conversiones de tipos de datos de la base de datos de origen al destino de BigQuery, consulta Tipos de datos de replicación.
Haz clic en Siguiente.
Revise los detalles del trabajo de replicación de resumen y haga clic en Implementar trabajo de replicación.
- En la página Detalles del trabajo de replicación, haga clic en Iniciar.
En la página Replicación, haga clic en el Nombre del trabajo de replicación.
Haz clic en Monitorización.
En la Google Cloud consola, ve a la página BigQuery.
En el panel de la izquierda, selecciona el nombre de tu proyecto para desplegar una lista de conjuntos de datos.
Para ver los resultados, selecciona el conjunto de datos
sakila
y, a continuación, una tabla.- In the Google Cloud console, go to the Manage resources page.
- In the project list, select the project that you want to delete, and then click Delete.
- In the dialog, type the project ID, and then click Shut down to delete the project.
- Consulta más información sobre la replicación en Cloud Data Fusion.
- Consulta la referencia de la API Replication.
- Sigue el tutorial para replicar datos de SQL Server en BigQuery.
- Sigue el tutorial Replicar datos de Oracle en BigQuery.
Roles obligatorios
Para obtener los permisos que necesitas para este tutorial, consulta Control de acceso con IAM y Conceder permiso de usuario a una cuenta de servicio.
Instalar MySQL en Compute Engine
Habilitar la replicación en tu base de datos MySQL
Para habilitar la replicación, configura la captura de datos de cambios (CDC) en MySQL.
Crear y ejecutar un trabajo de replicación de Cloud Data Fusion
Subir el controlador JDBC
Crea la tarea.
Empezar el trabajo
La tarea de replicación pasa del estado Provisioning (Aprovisionando) al estado Starting (Iniciando) y, después, al estado Running (En ejecución). En el estado de ejecución, la tarea de replicación carga una instantánea inicial de los datos de la tabla que has seleccionado en BigQuery. En este estado, el estado de la tabla se indica como Creando una copia. Una vez que se haya cargado la primera copia en BigQuery, cualquier cambio que se haga en la tabla se replicará en BigQuery y el estado de la tabla será Replicando.
Monitorizar la tarea
Puedes iniciar y detener la tarea de replicación, revisar su configuración y sus registros, y monitorizarla.
Puedes monitorizar las actividades de las tareas de replicación desde la página Detalles de la tarea de replicación.
Ver los resultados en BigQuery
La tarea de replicación crea un conjunto de datos y una tabla replicados en BigQuery, con nombres heredados de los nombres de la base de datos y la tabla de MySQL correspondientes.
Para obtener más información, consulta la documentación de BigQuery.
Limpieza
Para evitar que los recursos utilizados en este tutorial se cobren en tu cuenta de Google Cloud, elimina el proyecto que contiene los recursos o conserva el proyecto y elimina los recursos.
Cuando hayas terminado el tutorial, elimina los recursos que has creado enGoogle Cloud para que no ocupen cuota y no se te facturen en el futuro. En las siguientes secciones se explica cómo eliminar o desactivar dichos recursos.
Eliminar la instancia de Cloud Data Fusion
Sigue las instrucciones para eliminar tu instancia de Cloud Data Fusion.