Replicar dados do MySQL para o BigQuery


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

Objetivos

Neste tutorial:

  1. Implemente a sua base de dados MySQL no Compute Engine.
  2. Configure a base de dados do MySQL para ativar a replicação.
  3. Criar e executar uma tarefa de replicação do Cloud Data Fusion.
  4. 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. Funções necessárias

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

    Instale o MySQL no Compute Engine

    1. Transfira uma imagem Docker do servidor MySQL.

    2. Carregue a sua imagem do Docker para o Artifact Registry.

    3. Implemente a sua imagem de Docker numa nova instância de VM.

    4. Na página Discos do Compute Engine, altere o tamanho do disco para 500 GB e reinicie a VM.

      Aceda a Discos

    5. Crie uma firewall para a instância de VM.

    6. Instale a base de dados de exemplo Sakila.

    Ative a replicação na sua base de dados MySQL

    Para ativar a replicação, configure a captura de dados de alterações (CDC) no MySQL.

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

    Carregue o controlador JDBC

    1. Transfira o controlador JDBC do MySQL (versão 8 ou superior) 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 mysql.
      • No campo Versão, mantenha a predefinição.
      • No campo Nome da turma, introduza com.mysql.jdbc.Driver.

    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 MySQL como origem.
      2. Em Anfitrião, introduza o nome do anfitrião do servidor MySQL a partir do qual quer ler.
      3. Para Porta, introduza a porta a usar para estabelecer ligação ao servidor MySQL: 3306.
      4. Para Nome do plug-in JDBC , selecione mysql ou o nome que especificou quando configurou o controlador JDBC.
      5. Em Nome da base de dados, introduza sakila.
      6. Na secção Credenciais, introduza o seu nome de utilizador e palavra-passe para aceder ao servidor MySQL.
    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, configure o nome, a localização, o intervalo de carregamento, o prefixo da tabela de preparação e o comportamento do contentor quando as tabelas ou as bases de dados são eliminadas.
    7. Clicar em Seguinte.

    8. Se a ligação for bem-sucedida, é apresentada uma lista de tabelas da base de dados de exemplo Sakila. Para este tutorial, selecione algumas tabelas e eventos para replicar, como eventos de inserção, atualização e eliminação.

    9. Opcional: configure as propriedades avançadas. Para este tutorial, pode usar 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. Se ocorrerem 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 escolha tabelas ou eventos (inserções, atualizações ou eliminações) 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. Clicar em Seguinte.

    13. 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 instantânea inicial dos dados da tabela que selecionou para o BigQuery. Neste estado, o estado da tabela é apresentado como Snapshotting. Depois de o instantâneo inicial ser carregado no BigQuery, todas as alterações feitas à tabela são replicadas no BigQuery, e 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 MySQL.

    1. Na Google Cloud consola, aceda à página do BigQuery.

      Aceda ao BigQuery

    2. No painel esquerdo, selecione o nome do projeto para expandir uma lista de conjuntos de dados.

    3. Para ver os resultados, selecione o conjunto de dados sakila e selecione uma tabela.

    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, limpe os recursos que criou no Google Cloud para que não ocupem quota e não lhe sejam cobrados no futuro. As secções seguintes descrevem como eliminar ou desativar estes recursos.

    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?