Configure um destino do BigQuery

Esta página descreve como configurar o fluxo de dados para poder escrever dados em conjuntos de dados do BigQuery.

Autorizações necessárias

O Datastream usa o suporte incorporado do BigQuery para atualizações de captura de dados de alterações (CDC). O Datastream atualiza as tabelas do BigQuery processando e aplicando alterações em stream através da API Storage Write do BigQuery.

As autorizações necessárias para usar a API e carregar dados para o BigQuery são concedidas à função Agente do serviço de fluxo de dados.

Configure o BigQuery como um destino

Para configurar o Datastream para streaming para o BigQuery, siga os passos seguintes:

  1. Certifique-se de que a API BigQuery está ativada no seu Google Cloud projeto.
  2. Se quiser usar a opção Um conjunto de dados para todos os esquemas, crie um conjunto de dados no BigQuery.
  3. Configure o conjunto de dados de destino para a sua stream.
  4. Configure o modo de gravação.
  5. Especifique o limite máximo de dados desatualizados para a sua stream.

Configure os conjuntos de dados de destino

Os conjuntos de dados são contentores de nível superior usados para organizar e controlar o acesso às tabelas do BigQuery.

Quando configura conjuntos de dados para o destino do BigQuery através do Datastream, pode selecionar uma das seguintes opções:

  • Conjunto de dados para cada esquema: o conjunto de dados é selecionado ou criado automaticamente pelo Datastream na localização do BigQuery especificada, com base no nome do esquema da origem. Como resultado, cada esquema na origem tem um conjunto de dados correspondente no BigQuery. Por exemplo, se tiver uma origem do MySQL e esta origem tiver uma mydbbase de dados e uma tabela employees na base de dados, o Datastream cria o conjunto de dados mydb e a tabela employees no BigQuery.

    Se selecionar esta opção, o Datastream cria conjuntos de dados no projeto que contém a stream. Embora não precise de criar os conjuntos de dados na mesma região que a sua stream, recomendamos que mantenha todos os recursos da stream, bem como os conjuntos de dados, na mesma região para otimizar os custos e o desempenho.

  • Conjunto de dados único para todos os esquemas: seleciona um conjunto de dados do BigQuery para a stream. A stream de dados transmite todos os dados para este conjunto de dados. Para o conjunto de dados que selecionar, o Datastream cria todas as tabelas como <schema>_<table>.

    Por exemplo, se tiver uma origem MySQL e esta origem tiver uma base de dados e uma tabela employees na base de dados, a stream de dados cria a tabela mydb_employees no conjunto de dados que selecionar.mydb

Configure o modo de gravação

Existem dois modos que pode usar para definir como quer que os seus dados sejam escritos no BigQuery:

  • Unir: este é o modo de escrita predefinido. Quando selecionada, o BigQuery reflete a forma como os seus dados são armazenados na base de dados de origem. Isto significa que o Datastream escreve todas as alterações aos seus dados no BigQuery e, em seguida, o BigQuery consolida as alterações com os dados existentes, criando assim tabelas finais que são réplicas das tabelas de origem. Com o modo de união, não é mantido nenhum registo do histórico dos eventos de alteração. Por exemplo, se inserir e, em seguida, atualizar uma linha, o BigQuery apenas mantém os dados atualizados. Se, em seguida, eliminar a linha da tabela de origem, o BigQuery deixa de manter qualquer registo dessa linha.

  • Apenas anexar: o modo de escrita apenas anexar permite-lhe adicionar dados ao BigQuery como um fluxo de alterações (eventos INSERT, UPDATE-INSERT, UPDATE-DELETE e DELETE). Use este modo quando precisar de reter o estado do histórico dos seus dados. Para compreender melhor o modo de escrita apenas de anexação, considere os seguintes cenários:

    • Preenchimento inicial: após o preenchimento inicial, todos os eventos são escritos no BigQuery como eventos do tipo INSERT, com a mesma data/hora, identificador único universal (UUID) e número de sequência de alterações.
    • Atualização da chave primária: quando uma chave primária é alterada, são escritas duas linhas no BigQuery:
      • Uma linha UPDATE-DELETE com a chave principal original
      • Uma linha UPDATE-INSERT com a nova chave principal
    • Atualização de linhas: quando atualiza uma linha, é escrita uma única linha UPDATE-INSERT no BigQuery
    • Eliminação de linhas: quando elimina uma linha, é escrita uma única linha DELETE no BigQuery

Especifique o limite de dados desatualizados

O BigQuery aplica modificações de origem em segundo plano de forma contínua ou no tempo de execução da consulta, de acordo com o limite de desatualização de dados configurado. Quando a stream de dados cria uma nova tabela no BigQuery, a opção max_staleness da tabela é definida de acordo com o valor atual do limite de dados desatualizados para a stream.

Para mais informações sobre a utilização de tabelas do BigQuery com a opção max_staleness, consulte o artigo Obsolecência das tabelas.