Replicar dados do SQL Server para o BigQuery


Este tutorial mostra como criar e implementar uma tarefa que replica continuamente os dados alterados de uma base de dados do Microsoft SQL Server para uma tabela do BigQuery.

Objetivos

Neste tutorial:

  1. Ative a captura de dados de alterações (CDC) na sua base de dados do SQL Server.
  2. Criar e executar uma tarefa de replicação do Cloud Data Fusion.
  3. Veja os resultados no BigQuery.

Custos

Neste documento, usa os seguintes componentes faturáveis do Google Cloud:

Para gerar uma estimativa de custos com base na sua utilização projetada, use a calculadora de preços.

Os novos Google Cloud utilizadores podem ser elegíveis para uma avaliação gratuita.

Quando a replicação é executada, é cobrado o cluster do Dataproc e incorre em custos de processamento do BigQuery. Para otimizar estes custos, recomendamos vivamente que use os preços de taxa fixa do BigQuery.

Antes de começar

  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. Crie uma instância pública do Cloud Data Fusion na versão 6.3.0 ou posterior. Se criar uma instância privada, configure o peering de rede VPC.
    • Quando criar a instância, ative a replicação clicando em Adicionar aceleradores e selecionando a caixa de verificação Replicação.
    • Para a ativar numa instância existente, consulte o artigo Ative a replicação.
  5. Para mais informações sobre redes, consulte o artigo Usar o HAProxy com o Cloud Data Fusion para navegar em topologias de rede complexas.

    Funções necessárias

    Para obter as autorizações de que precisa para este tutorial, consulte os artigos Controlo de acesso com o IAM e Conceda autorização de utilizador à conta de serviço.

    Opcional: configure uma instância de VM do SQL Server

    1. Crie uma instância do SQL Server.

    2. Transfira a base de dados AdventureWorks2017 (OLTP) e carregue os dados na sua instância do SQL Server.

    Ative a CDC na sua base de dados do SQL Server

    Para a replicação, ative a captura de dados de alterações (CDC) na base de dados e na tabela que quer replicar.

    Crie e execute uma tarefa de replicação do Cloud Data Fusion

    Carregue o controlador JDBC

    1. Transfira o controlador JDBC do SQL Server para a sua máquina local.

    2. Na interface Web do Cloud Data Fusion, carregue o controlador JDBC. Use estes valores para configurar o controlador JDBC:

      • No campo Nome, introduza sqlserver.
      • No campo Nome da turma, introduza com.microsoft.sqlserver.jdbc.SQLServerDriver.
      • No campo Versão, mantenha a predefinição.

    Crie o trabalho

    1. Na interface Web do Cloud Data Fusion, clique em Replicação.

    2. Clique em Criar tarefa de replicação.

    3. Na página Criar nova tarefa de replicação, especifique um Nome para a tarefa de replicação e clique em Seguinte.

    4. Configure a origem:

      1. Selecione Microsoft SQL Server como origem.
      2. Para Anfitrião, introduza o nome do anfitrião do SQL Server a partir do qual quer ler.
      3. Para Porta, introduza a porta a usar para estabelecer ligação ao SQL Server: 1433.
      4. Para Nome do plug-in JDBC, selecione sqlserverou o nome que especificou quando configurou o controlador JDBC.
      5. Em Nome da base de dados, introduza AdventureWorks2017.
      6. Na secção Credenciais, introduza o seu nome de utilizador e palavra-passe para aceder ao SQL Server.
    5. Clicar em Seguinte.

    6. Configure o alvo:

      1. Selecione o destino do BigQuery.
      2. O ID do projeto e a chave da conta de serviço são detetados automaticamente. Mantenha os valores predefinidos.
      3. Opcional: na secção Avançadas, pode configurar o nome e a localização do contentor do Google Cloud Storage, o intervalo de carregamento, o prefixo da tabela de preparação e o comportamento quando as tabelas ou as bases de dados são eliminadas.
    7. Clicar em Seguinte.

    8. Se a associação for bem-sucedida, é apresentada uma lista de tabelas AdventureWorks2017. Para este tutorial, selecione algumas tabelas e eventos, como os eventos Insert, Update e Delete.

    9. Opcional: configure as propriedades avançadas. Para este tutorial, pode aceitar as predefinições.

    10. Clicar em Seguinte.

    11. Na página Rever avaliação, clique em Ver mapeamentos em qualquer uma das tabelas para ver uma avaliação dos problemas de esquema, das funcionalidades em falta ou dos problemas de conetividade que possam ocorrer durante a replicação. Os problemas têm de ser resolvidos antes de poder continuar. Para este tutorial, se alguma das tabelas tiver problemas, volte ao passo em que selecionou tabelas e selecione uma tabela ou um evento sem problemas.

      Para mais informações acerca das conversões de tipos de dados da base de dados de origem para o destino do BigQuery, consulte o artigo Tipos de dados de replicação.

    12. Clique em Anterior.

    13. Clicar em Seguinte.

    14. Reveja os detalhes do trabalho de replicação do resumo e, de seguida, clique em Implementar trabalho de replicação.

    Inicie a tarefa

    • Na página Detalhes da tarefa de replicação, clique em Iniciar.

    A tarefa de replicação transita do estado Aprovisionamento para o estado Início e, de seguida, para o estado Em execução. No estado de execução, a tarefa de replicação carrega uma captura inicial dos dados da tabela que selecionou (por exemplo, a tabela People) para o BigQuery. Neste estado, o estado da tabela People é apresentado como Snapshotting. Depois de o instantâneo inicial ser carregado no BigQuery, todas as alterações feitas à tabela People são replicadas no BigQuery. O estado da tabela é apresentado como A replicar.

    Monitorize o trabalho

    Pode iniciar e parar a tarefa de replicação, rever a respetiva configuração e registos, e monitorizar a tarefa de replicação.

    Pode monitorizar as atividades das tarefas de replicação na página Detalhes da tarefa de replicação.

    1. Na página Replicação, clique no Nome da tarefa de replicação.

    2. Clique em Monitorização.

    Veja os resultados no BigQuery

    A tarefa de replicação cria um conjunto de dados e uma tabela replicados no BigQuery, com nomes herdados da base de dados e dos nomes das tabelas correspondentes do SQL Server.

    1. Abra o BigQuery na Google Cloud consola.

    2. No painel do lado esquerdo, clique no nome do projeto para expandir uma lista de conjuntos de dados.

    3. Selecione o conjunto de dados adventureworks2017 e, de seguida, selecione uma tabela para ver.

    Para mais informações, consulte a documentação do BigQuery.

    Limpar

    Para evitar incorrer em custos na sua conta do Google Cloud pelos recursos usados neste tutorial, elimine o projeto que contém os recursos ou mantenha o projeto e elimine os recursos individuais.

    Depois de concluir o tutorial, elimine os recursos que criou no Google Cloud.

    Elimine a instância 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.

    Elimine a instância do Cloud Data Fusion

    Siga as instruções para eliminar a sua instância do Cloud Data Fusion.

    Elimine o projeto

    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.

    O que se segue?