O Datastream suporta o streaming de dados de bases de dados Oracle, MySQL e PostgreSQL diretamente para conjuntos de dados do BigQuery. No entanto, se precisar de mais controlo sobre a lógica de processamento de streams, como a transformação de dados ou a definição manual de chaves primárias lógicas, pode integrar o Datastream com modelos de tarefas do Dataflow.
Este tutorial mostra como o Datastream se integra com o Dataflow através da utilização de modelos de tarefas do Dataflow para fazer stream de visualizações materializadas atualizadas no BigQuery para análise.
Para organizações com muitas origens de dados isoladas, o acesso aos dados empresariais em toda a organização, especialmente em tempo real, pode ser limitado e lento. Isto restringe a capacidade de introspeção da organização.
A stream de dados oferece acesso quase em tempo real aos dados de alterações de várias origens de dados no local e baseadas na nuvem. A stream de dados oferece uma experiência de configuração em que não tem de fazer muita configuração para o streaming de dados. A stream de dados faz isto por si. O Datastream também tem uma API de consumo unificada que democratiza o acesso da sua organização aos dados empresariais mais recentes disponíveis para criar cenários integrados.
Um desses cenários é a transferência de dados de uma base de dados de origem para um serviço de armazenamento baseado na nuvem ou uma fila de mensagens. Depois de o fluxo de dados transmitir os dados, estes são transformados num formato que outras aplicações e serviços podem ler. Neste tutorial, o Dataflow é o serviço Web que comunica com o serviço de armazenamento ou a fila de mensagens para capturar e processar dados no Google Cloud.
Aprende a usar o Datastream para transmitir alterações (dados inseridos, atualizados ou eliminados) de uma base de dados MySQL de origem para uma pasta num contentor do Cloud Storage. Em seguida, configura o contentor do Cloud Storage para enviar notificações que o Dataflow usa para saber sobre novos ficheiros que contenham as alterações de dados que o Datastream transmite a partir da base de dados de origem. Em seguida, uma tarefa do Dataflow processa os ficheiros e transfere as alterações para o BigQuery.
Requisitos
O fluxo de dados oferece várias opções de origem, opções de destino e métodos de conetividade de rede.
Para este tutorial, vamos assumir que está a usar uma base de dados MySQL autónoma e um serviço de Cloud Storage de destino. Para a base de dados de origem, deve conseguir configurar a sua rede para adicionar uma regra de firewall de entrada. A base de dados de origem pode estar nas instalações ou num fornecedor de nuvem. Para o destino do Cloud Storage, não é necessária nenhuma configuração de conetividade.
Como não podemos saber os detalhes específicos do seu ambiente, não podemos fornecer passos detalhados no que diz respeito à configuração de rede.
Para este tutorial, selecione Lista de autorizações de IPs como o método de conetividade de rede. A lista de IPs permitidos é uma funcionalidade de segurança frequentemente usada para limitar e controlar o acesso aos dados na base de dados de origem a utilizadores fidedignos. Pode usar listas de autorizações de IPs para criar listas de endereços IP ou intervalos de IP fidedignos a partir dos quais os seus utilizadores e outros Google Cloud serviços, como o Datastream, podem aceder a estes dados. Para usar listas de autorização de IPs, tem de abrir a base de dados de origem ou a firewall a ligações recebidas do Datastream.
Crie um contentor no Cloud Storage
Crie um contentor de destino no Cloud Storage para o qual o Datastream transmite esquemas, tabelas e dados de uma base de dados MySQL de origem.
Na Google Cloud consola, aceda à página Navegador do Cloud Storage.
Clique em Criar contentor. É apresentada a página Criar um contentor.
No campo de texto da região Dê um nome ao seu contentor, introduza um nome exclusivo para o contentor e, de seguida, clique em Continuar.
Aceite as predefinições para cada região restante da página. No final de cada região, clique em Continuar.
Clique em Criar.
Ative as notificações do Pub/Sub para o contentor do Cloud Storage
Nesta secção, ativa as notificações do Pub/Sub para o contentor do Cloud Storage que criou. Ao fazê-lo, está a configurar o contentor para notificar o Dataflow de quaisquer novos ficheiros que o Datastream escreva no contentor. Estes ficheiros contêm alterações aos dados que o Datastream transmite de uma base de dados MySQL de origem para o contentor.
Aceda ao contentor do Cloud Storage que criou. É apresentada a página Detalhes do contentor.
Clique em
Ativar Cloud Shell.No comando, introduza o seguinte comando:
gcloud storage buckets notifications create gs://bucket-name --topic=my_integration_notifs --payload-format=json --object-prefix=integration/tutorial/
Opcional: se for apresentada uma janela Autorizar Cloud Shell, clique em Autorizar.
Verifique se vê as seguintes linhas de código:
.Created Cloud Pub/Sub topic projects/project-name/topics/my_integration_notifs Created notification config projects/_/buckets/bucket-name/notificationConfigs/1
Na Google Cloud consola, aceda à página Tópicos do Pub/Sub.
Clique no tópico my_integration_notifs que criou.
Na página my_integration_notifs, aceda à parte inferior da página. Verifique se o separador Subscrições está ativo e se é apresentada a mensagem Não existem subscrições para apresentar.
Clique em Criar subscrição.
No menu apresentado, selecione Criar subscrição.
Na página Adicionar subscrição ao tópico:
- No campo ID da subscrição, introduza
my_integration_notifs_sub
. - Defina o valor de Prazo de confirmação para
120
segundos. Isto permite que o Dataflow tenha tempo suficiente para confirmar os ficheiros que processou e ajuda a melhorar o desempenho geral da tarefa do Dataflow. Para mais informações sobre as propriedades de subscrição do Pub/Sub, consulte o artigo Propriedades de subscrição. - Deixe todos os outros valores predefinidos na página.
- Clique em Criar.
- No campo ID da subscrição, introduza
Mais adiante neste tutorial, cria um trabalho do Dataflow. Como parte da criação desta tarefa, atribui o Dataflow como subscritor da subscrição my_integration_notifs_sub. Ao fazê-lo, o Dataflow pode receber notificações sobre novos ficheiros que o Datastream escreve no Cloud Storage, processar os ficheiros e transferir as alterações de dados para o BigQuery.
Crie conjuntos de dados no BigQuery
Nesta secção, cria conjuntos de dados no BigQuery. O BigQuery usa conjuntos de dados para conter os dados que recebe do Dataflow. Estes dados representam as alterações na base de dados MySQL de origem que o Datastream transmite para o seu contentor do Cloud Storage.
Aceda à página do espaço de trabalho SQL do BigQuery na Google Cloud consola.
No painel Explorador, junto ao Google Cloud nome do projeto, clique em
Ver ações.No menu apresentado, selecione Criar conjunto de dados.
Na janela Criar conjunto de dados:
- No campo ID do conjunto de dados, introduza um ID para o conjunto de dados. Para este tutorial, introduza
My_integration_dataset_log
no campo. - Mantenha todos os outros valores predefinidos na janela.
- Clique em Criar conjunto de dados.
- No campo ID do conjunto de dados, introduza um ID para o conjunto de dados. Para este tutorial, introduza
No painel Explorador, junto ao Google Cloud nome do projeto, clique em
Expandir nó e, de seguida, verifique se vê o conjunto de dados que criou.Use os passos neste procedimento para criar um segundo conjunto de dados: My_integration_dataset_final.
Junto a cada conjunto de dados, expanda
Expandir nó.Verifique se cada conjunto de dados está vazio.
Depois de o Datastream transmitir alterações de dados da base de dados de origem para o seu contentor do Cloud Storage, uma tarefa do Dataflow processa os ficheiros que contêm as alterações e transfere-as para os conjuntos de dados do BigQuery.
Crie perfis de associação no Datastream
Nesta secção, cria perfis de associação no Datastream para uma base de dados de origem e um destino. Como parte da criação dos perfis de associação, seleciona MySQL como o tipo de perfil para o perfil de associação de origem e Cloud Storage como o tipo de perfil para o perfil de associação de destino.
O Datastream usa as informações definidas nos perfis de ligação para estabelecer ligação à origem e ao destino, de modo a poder transmitir dados da base de dados de origem para o seu contentor de destino no Cloud Storage.
Crie um perfil de associação de origem para a sua base de dados MySQL
Na Google Cloud consola, aceda à página Perfis de associação do Datastream.
Clique em Criar perfil.
Para criar um perfil de associação de origem para a sua base de dados MySQL, na página Crie um perfil de associação, clique no tipo de perfil MySQL.
Na secção Defina as definições de ligação da página Crie um perfil do MySQL, faculte as seguintes informações:
- No campo Nome do perfil de ligação, introduza
My Source Connection Profile
. - Mantenha o ID do perfil de associação gerado automaticamente.
Selecione a Região onde quer armazenar o perfil de ligação.
Introduza os Detalhes da ligação:
- No campo Nome de anfitrião ou IP, introduza um nome de anfitrião ou um endereço IP público que o Datastream possa usar para estabelecer ligação à base de dados de origem. Está a fornecer um endereço IP público porque usa a lista de autorizações de IPs como método de conetividade de rede para este tutorial.
- No campo Porta, introduza o número da porta reservado para a base de dados de origem. Para uma base de dados MySQL, a porta predefinida é normalmente
3306
. - Introduza um nome de utilizador e uma palavra-passe para fazer a autenticação na base de dados de origem.
- No campo Nome do perfil de ligação, introduza
Na secção Definir definições de associação, clique em Continuar. A secção Proteja a sua ligação à origem da página Crie um perfil do MySQL está ativa.
No menu Tipo de encriptação, selecione Nenhum. Para mais informações acerca deste menu, consulte o artigo Crie um perfil de associação para a base de dados MySQL.
Na secção Proteja a associação à sua origem, clique em Continuar. A secção Definir método de conetividade da página Criar perfil do MySQL está ativa.
No menu pendente Método de conetividade, escolha o método de rede que quer usar para estabelecer a conetividade entre o Datastream e a base de dados de origem. Para este tutorial, selecione Lista de autorizações de IPs como o método de conetividade.
Configure a base de dados de origem para permitir ligações recebidas dos endereços IP públicos do Datastream apresentados.
Na secção Definir método de conetividade, clique em Continuar. A secção Testar perfil de ligação da página Criar perfil do MySQL está ativa.
Clique em Executar teste para verificar se a base de dados de origem e o Datastream conseguem comunicar entre si.
Verifique se vê o estado Teste aprovado.
Clique em Criar.
Crie um perfil de associação de destino para o Cloud Storage
Na Google Cloud consola, aceda à página Perfis de associação do Datastream.
Clique em Criar perfil.
Para criar um perfil de ligação de destino para o Cloud Storage, na página Crie um perfil de ligação, clique no tipo de perfil Cloud Storage.
Na página Criar perfil do Cloud Storage, faculte as seguintes informações:
- No campo Nome do perfil de ligação, introduza
My Destination Connection Profile
. - Mantenha o ID do perfil de associação gerado automaticamente.
- Selecione a Região onde quer armazenar o perfil de ligação.
No painel Detalhes da ligação, clique em Procurar para selecionar o contentor do Cloud Storage que criou anteriormente neste tutorial. Este é o contentor para o qual o Datastream transfere dados da base de dados de origem. Depois de fazer a sua seleção, clique em Selecionar.
O seu contentor aparece no campo Nome do contentor do painel Detalhes da ligação.
No campo Prefixo do caminho do perfil de associação, indique um prefixo para o caminho que quer anexar ao nome do contentor quando a stream de dados transmite dados para o destino. Certifique-se de que o Datastream escreve dados num caminho dentro do contentor e não na pasta de raiz do contentor. Para este tutorial, use o caminho que definiu quando configurou a notificação do Pub/Sub. Introduza
/integration/tutorial
no campo.
- No campo Nome do perfil de ligação, introduza
Clique em Criar.
Depois de criar um perfil de associação de origem para a sua base de dados MySQL e um perfil de associação de destino para o Cloud Storage, pode usá-los para criar uma stream.
Crie uma stream no Datastream
Nesta secção, cria uma stream. Esta stream usa as informações nos perfis de ligação para transferir dados de uma base de dados MySQL de origem para um contentor de destino no Cloud Storage.
Defina as definições da stream
Na Google Cloud consola, aceda à página Streams para a stream de dados.
Clique em Criar stream.
Indique as seguintes informações no painel Definir detalhes da stream da página Criar stream:
- No campo Nome da stream, introduza
My Stream
. - Mantenha o ID da stream gerado automaticamente.
- No menu Região, selecione a região onde criou os perfis de ligação de origem e destino.
- No menu Tipo de origem, selecione o tipo de perfil MySQL.
- No menu Tipo de destino, selecione o tipo de perfil Cloud Storage.
- No campo Nome da stream, introduza
Reveja os pré-requisitos necessários gerados automaticamente para refletir a forma como o seu ambiente tem de ser preparado para uma stream. Estes pré-requisitos podem incluir a forma de configurar a base de dados de origem e de associar o Datastream ao contentor de destino no Cloud Storage.
Clique em Continuar. É apresentado o painel Definir perfil de ligação MySQL da página Criar stream.
Especifique informações sobre o perfil de associação de origem
Nesta secção, selecione o perfil de associação que criou para a base de dados de origem (o perfil de associação de origem). Para este tutorial, este é o Meu perfil de associação de origem.
No menu Perfil de associação de origem, selecione o perfil de associação de origem para a base de dados MySQL.
Clique em Executar teste para verificar se a base de dados de origem e o Datastream conseguem comunicar entre si.
Se o teste falhar, é apresentado o problema associado ao perfil de ligação. Consulte a página Diagnosticar problemas para ver os passos de resolução de problemas. Faça as alterações necessárias para corrigir o problema e, em seguida, volte a testar.
Clique em Continuar. É apresentado o painel Configurar origem da stream da página Criar stream.
Configure informações sobre a base de dados de origem da stream
Nesta secção, configura informações sobre a base de dados de origem para a stream especificando as tabelas e os esquemas na base de dados de origem que o Datastream:
- Pode transferir para o destino.
- Está restrito de ser transferido para o destino.
Também determina se a stream de dados preenche dados do histórico, bem como se transmite alterações contínuas para o destino ou apenas alterações aos dados.
Use o menu Objetos a incluir para especificar as tabelas e os esquemas na base de dados de origem que o Datastream pode transferir para uma pasta no contentor de destino no Cloud Storage. O menu só é carregado se a sua base de dados tiver até 5000 objetos.
Para este tutorial, quer que o Datastream transfira todas as tabelas e esquemas. Por conseguinte, selecione Todas as tabelas de todos os esquemas no menu.
Verifique se o painel Selecionar objetos a excluir está definido como Nenhum. Não quer restringir a transferência de tabelas e esquemas da base de dados de origem para o Cloud Storage pelo Datastream.
Verifique se o painel Escolha o modo de preenchimento para dados do histórico está definido como Automático. O stream de dados transmite todos os dados existentes, além das alterações aos dados, da origem para o destino.
Clique em Continuar. É apresentado o painel Definir perfil de associação do Google Cloud Storage da página Criar stream.
Selecione um perfil de ligação de destino
Nesta secção, seleciona o perfil de associação que criou para o Cloud Storage (o perfil de associação de destino). Para este tutorial, este é o Meu perfil de associação de destino.
No menu Perfil de associação de destino, selecione o seu perfil de associação de destino para o Cloud Storage.
Clique em Continuar. É apresentado o painel Configurar destino da stream da página Criar stream.
Configure informações sobre o destino da stream
Nesta secção, configura informações sobre o contentor de destino da stream. Estas informações incluem:
- O formato de saída dos ficheiros escritos no Cloud Storage.
- A pasta do contentor de destino para o qual o Datastream transfere esquemas, tabelas e dados da base de dados de origem.
No campo Formato de saída, selecione o formato dos ficheiros escritos no Cloud Storage. O fluxo de dados suporta dois formatos de saída: Avro e JSON. Para este tutorial, o Avro é o formato de ficheiro.
Clique em Continuar. É apresentado o painel Reveja os detalhes da stream e crie-a da página Criar stream.
Crie a stream
Valide os detalhes acerca da stream, bem como os perfis de ligação de origem e destino que a stream usa para transferir dados de uma base de dados MySQL de origem para um contentor de destino no Cloud Storage.
Para validar a stream, clique em Executar validação. Ao validar uma stream, o Datastream verifica se a origem está configurada corretamente, valida se a stream consegue estabelecer ligação à origem e ao destino, e verifica a configuração ponto a ponto da stream.
Depois de todas as verificações de validação serem aprovadas, clique em Criar.
Na caixa de diálogo Criar stream?, clique em Criar.
Inicie a stream
Para este tutorial, cria e inicia uma stream separadamente, caso o processo de criação de streams incorra num aumento da carga na base de dados de origem. Para evitar essa carga, cria a stream sem a iniciar e, em seguida, inicia-a quando a base de dados conseguir processar a carga.
Ao iniciar a stream, o Datastream pode transferir dados, esquemas e tabelas da base de dados de origem para o destino.
Na Google Cloud consola, aceda à página Streams para a stream de dados.
Selecione a caixa de verificação junto à stream que quer iniciar. Para este tutorial, o nome é A minha stream.
Clique em Iniciar.
Na caixa de diálogo, clique em Iniciar. O estado da stream muda de
Not started
paraStarting
e, em seguida, paraRunning
.
Depois de iniciar uma stream, pode verificar se o Datastream transferiu dados da base de dados de origem para o destino.
Valide a stream
Nesta secção, confirma que o Datastream transfere os dados de todas as tabelas de uma base de dados MySQL de origem para a pasta /integration/tutorial do contentor de destino do Cloud Storage.
Na Google Cloud consola, aceda à página Streams para a stream de dados.
Clique na stream que criou. Para este tutorial, o nome é A minha stream.
Na página Detalhes da stream, clique no link bucket-name/integration/tutorial, onde bucket-name é o nome que deu ao seu contentor do Cloud Storage. Este link aparece após o campo Caminho de gravação do destino. A página Detalhes do contentor do Cloud Storage é aberta num separador separado.
Confirme se vê pastas que representam tabelas da base de dados de origem.
Clique numa das pastas de tabelas e, de seguida, clique em cada subpasta até ver dados associados à tabela.
Crie uma tarefa do Dataflow
Nesta secção, cria uma tarefa no Dataflow. Depois de o Datastream transmitir alterações de dados de uma base de dados MySQL de origem para o seu contentor do Cloud Storage, o Pub/Sub envia notificações para o Dataflow acerca de novos ficheiros que contêm as alterações. A tarefa do Dataflow processa os ficheiros e transfere as alterações para o BigQuery.
Na Google Cloud consola, aceda à página Tarefas do Dataflow.
Clique em Criar tarefa a partir de modelo.
No campo Nome da tarefa da página Criar tarefa a partir de modelo, introduza um nome para a tarefa do Dataflow que está a criar. Para este tutorial, introduza
my-dataflow-integration-job
no campo.No menu Ponto final regional, selecione a região onde quer armazenar a tarefa. Esta é a mesma região que selecionou para o perfil de associação de origem, o perfil de associação de destino e a transmissão que criou.
No menu Modelo de fluxo de dados, selecione o modelo que está a usar para criar a tarefa. Para este tutorial, selecione Datastream para o BigQuery.
Depois de fazer esta seleção, são apresentados campos adicionais relacionados com este modelo.
No campo Localização do ficheiro para a saída do ficheiro do fluxo de dados no Cloud Storage, introduza o nome do seu contentor do Cloud Storage com o seguinte formato:
gs://bucket-name
.No campo Subscrição do Pub/Sub a ser usada numa política de notificação do Cloud Storage, introduza o caminho que contém o nome da sua subscrição do Pub/Sub. Para este tutorial, introduza
projects/project-name/subscriptions/my_integration_notifs_sub
.No campo Formato do ficheiro de saída do fluxo de dados (avro/json), introduza
avro
porque, para este tutorial, o formato de ficheiro dos ficheiros que o Datastream escreve no Cloud Storage é o Avro.No campo Nome ou modelo do conjunto de dados que vai conter tabelas de preparação, introduza
My_integration_dataset_log
, porque o Dataflow usa este conjunto de dados para preparar as alterações de dados que recebe do Datastream.No campo Modelo para o conjunto de dados que vai conter tabelas de réplica, introduza
My_integration_dataset_final
, uma vez que este é o conjunto de dados onde as alterações preparadas no conjunto de dados My_integration_dataset_log são unidas para criar uma réplica individual das tabelas na base de dados de origem.No campo Diretório da fila de mensagens rejeitadas, introduza o caminho que contém o nome do seu contentor do Cloud Storage e uma pasta para uma fila de mensagens rejeitadas. Certifique-se de que não usa um caminho na pasta raiz e que o caminho é diferente daquele para o qual o fluxo de dados escreve dados. Todas as alterações de dados que o Dataflow não conseguir transferir para o BigQuery são armazenadas na fila. Pode corrigir o conteúdo na fila para que o Dataflow o possa voltar a processar.
Para este tutorial, introduza
gs://bucket-name/dlq
no campo Diretório da fila de mensagens rejeitadas (onde bucket-name é o nome do seu contentor e dlq é a pasta da fila de mensagens rejeitadas).Clique em Executar tarefa.
Valide a integração
Na secção Validar a stream deste tutorial, confirmou que o Datastream transferiu os dados de todas as tabelas de uma base de dados MySQL de origem para a pasta /integration/tutorial do contentor de destino do Cloud Storage.
Nesta secção, verifica se o Dataflow processa os ficheiros que contêm alterações associadas a estes dados e transfere as alterações para o BigQuery. Como resultado, tem uma integração completa entre o Datastream e o BigQuery.
Na Google Cloud consola, aceda à página Espaço de trabalho SQL do BigQuery.
No painel Explorador, expanda o nó junto ao nome do seu Google Cloud projeto.
Expanda os nós junto aos conjuntos de dados My_integration_dataset_log e My_integration_dataset_final.
Verifique se cada conjunto de dados contém agora dados. Isto confirma que o Dataflow processou os ficheiros que contêm alterações associadas aos dados que o Datastream transmitiu para o Cloud Storage e transferiu estas alterações para o BigQuery.