Replicar datos de SQL Server en BigQuery


En este tutorial se explica cómo crear e implementar un trabajo que replica continuamente los datos modificados de una base de datos de Microsoft SQL Server en una tabla de BigQuery.

Objetivos

En este tutorial, aprenderás a hacer lo siguiente:

  1. Habilita la captura de datos de cambios (CDC) en tu base de datos de SQL Server.
  2. Crea y ejecuta una tarea de replicación de Cloud Data Fusion.
  3. 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.

Los usuarios nuevos Google Cloud pueden disfrutar de una prueba gratuita.

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, le recomendamos que utilice las tarifas fijas de BigQuery.

Antes de empezar

  1. 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 the resourcemanager.projects.create permission. Learn how to grant roles.

    Go to project selector

  2. Verify that billing is enabled for your Google Cloud project.

  3. 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 the serviceusage.services.enable permission. Learn how to grant roles.

    Enable the APIs

  4. 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.
  5. Para obtener más información sobre las redes, consulta el artículo Usar HAProxy con Cloud Data Fusion para desplazarse por topologías de red complejas.

    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.

    Opcional: Configurar una instancia de VM de SQL Server

    1. Crea una instancia de SQL Server.

    2. Descarga la base de datos AdventureWorks2017 (OLTP) y carga los datos en tu instancia de SQL Server.

    Habilitar CDC en tu base de datos de SQL Server

    Para la replicación, habilita la captura de datos de cambios (CDC) en la base de datos y en la tabla que quieras replicar.

    Crear y ejecutar un trabajo de replicación de Cloud Data Fusion

    Subir el controlador JDBC

    1. Descarga el controlador JDBC de SQL Server en tu máquina local.

    2. 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 sqlserver.
      • En el campo Nombre de clase, introduce com.microsoft.sqlserver.jdbc.SQLServerDriver.
      • En el campo Versión, deja el valor predeterminado.

    Crea la tarea.

    1. En la interfaz web de Cloud Data Fusion, haga clic en Replicación.

    2. Haz clic en Crear un trabajo de replicación.

    3. 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).

    4. Configura la fuente:

      1. Selecciona Microsoft SQL Server como origen.
      2. En Host (Host), introduce el nombre de host del servidor SQL del que quieras leer.
      3. En Puerto, introduce el puerto que se va a usar para conectarse a SQL Server: 1433.
      4. En JDBC Plugin Name (Nombre del complemento JDBC), selecciona sqlserver o el nombre que hayas especificado al configurar el controlador JDBC.
      5. En Nombre de la base de datos, escribe AdventureWorks2017.
      6. En la sección Credenciales, introduce tu nombre de usuario y tu contraseña para acceder a SQL Server.
    5. Haz clic en Siguiente.

    6. Configura el objetivo:

      1. Selecciona el destino de BigQuery.
      2. El ID de proyecto y la clave de cuenta de servicio se detectan automáticamente. No cambies los valores predeterminados.
      3. Opcional: En la sección Advanced (Avanzado), puede configurar el nombre y la ubicación del segmento de Cloud Storage, el intervalo de carga, el prefijo de la tabla de almacenamiento temporal y el comportamiento cuando se eliminan tablas o bases de datos.
    7. Haz clic en Siguiente.

    8. Si la conexión se realiza correctamente, se mostrará una lista de AdventureWorks2017tablas. En este tutorial, seleccione algunas tablas y eventos, como Insert, Update y Delete.

    9. Opcional: Configura las propiedades avanzadas. En este tutorial, puedes aceptar la configuración predeterminada.

    10. Haz clic en Siguiente.

    11. 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. Los problemas deben resolverse para poder continuar. En este tutorial, si alguna de las tablas tiene problemas, vuelve al paso en el que seleccionaste las tablas y elige una tabla o un evento que no tenga 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.

    12. Haz clic en Back (Atrás).

    13. Haz clic en Siguiente.

    14. Revise los detalles del trabajo de replicación de resumen y haga clic en Implementar trabajo de replicación.

    Empezar el trabajo

    • En la página Detalles del trabajo de replicación, haga clic en Iniciar.

    La tarea de replicación pasa del estado Provisioning (Aprovisionando) al estado Starting (Iniciando) y, después, al estado Running (En ejecución). Cuando está en estado de ejecución, la tarea de replicación carga una instantánea inicial de los datos de la tabla que has seleccionado (por ejemplo, la tabla Personas) en BigQuery. En este estado, el estado de la tabla Personas es Creando copia. Una vez que se haya cargado la primera copia en BigQuery, los cambios que se hagan en la tabla Personas se replicarán en BigQuery. El estado de la tabla es 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.

    1. En la página Replicación, haga clic en el Nombre del trabajo de replicación.

    2. Haz clic en Monitorizació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 SQL Server correspondientes.

    1. Abre BigQuery en la consola deGoogle Cloud .

    2. En el panel de la izquierda, haz clic en el nombre del proyecto para desplegar una lista de conjuntos de datos.

    3. Selecciona el conjunto de datos adventureworks2017 y, a continuación, selecciona una tabla para verla.

    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 hayas creado enGoogle Cloud.

    Eliminar la instancia de VM

    1. In the Google Cloud console, go to the VM instances page.

      Go to VM instances

    2. Select the checkbox for the instance that you want to delete.
    3. To delete the instance, click More actions, click Delete, and then follow the instructions.

    Eliminar la instancia de Cloud Data Fusion

    Sigue las instrucciones para eliminar tu instancia de Cloud Data Fusion.

    Eliminar el proyecto

    1. In the Google Cloud console, go to the Manage resources page.

      Go to Manage resources

    2. In the project list, select the project that you want to delete, and then click Delete.
    3. In the dialog, type the project ID, and then click Shut down to delete the project.

    Siguientes pasos