Destino no BigQuery

O Datastream permite replicar dados de alteração das suas fontes diretamente em tabelas do BigQuery para análises quase em tempo real. Ao transmitir dados para o BigQuery, é possível selecionar o modo de gravação de mesclagem ou somente anexação e usar a coluna datastream_metadata para acompanhar eventos de alteração. Também é possível aplicar as práticas recomendadas de gerenciamento de custos, como reservas de slots e ajuste de desatualização de tabelas, e analisar as limitações conhecidas.

Comportamento de gravação

  • O tamanho máximo do evento ao fazer streaming de dados para o BigQuery é de 20 MB.

  • Ao configurar o stream, é possível selecionar como o Datastream grava os dados de alteração no BigQuery. Para mais informações, consulte Configurar o modo de gravação.

Metadados da tabela

O Datastream anexa uma coluna STRUCT chamada datastream_metadata a cada tabela gravada no destino do BigQuery.

Modo de gravação de mesclagem

Se uma tabela tiver uma chave primária na origem, a coluna vai conter os seguintes campos:

  • UUID: esse campo tem o tipo de dados STRING.
  • SOURCE_TIMESTAMP: esse campo tem o tipo de dados INTEGER.

Se uma tabela não tiver uma chave primária, a coluna vai conter um campo adicional: IS_DELETED. Esse campo tem o tipo de dados BOOLEAN e indica se os dados que o Datastream transmite para o destino estão associados a uma operação DELETE na origem. As tabelas sem chaves primárias são somente para anexação.

Modo de gravação somente anexação

A coluna datastream_metadata contém os mesmos campos para tabelas com e sem chaves primárias:

  • UUID: esse campo tem o tipo de dados STRING.
  • SOURCE_TIMESTAMP: esse campo tem o tipo de dados INTEGER.
  • CHANGE_SEQUENCE_NUMBER: esse campo tem o tipo de dados STRING. É um número de sequência interno usado pelo Datastream para cada evento de alteração.
  • CHANGE_TYPE: esse campo tem o tipo de dados STRING. Ele indica o tipo do evento de mudança: INSERT, UPDATE-INSERT, UPDATE-DELETE ou DELETE.
  • SORT_KEYS: esse campo contém uma matriz de valores STRING. É possível usar os valores para classificar os eventos de alteração.

Controlar custos do BigQuery

Os custos do BigQuery são cobrados separadamente do Datastream. Para saber como controlar os custos do BigQuery, consulte Preços do CDC do BigQuery.

Práticas recomendadas de gerenciamento de custos

Ao usar o Datastream com o BigQuery como destino, considere as seguintes práticas recomendadas de gerenciamento de custos:

  • Entenda os custos do CDC do BigQuery: ao usar o Datastream com o BigQuery como destino, a captura de dados alterados (CDC) envolve operações de mesclagem em segundo plano. Por padrão, os jobs em segundo plano de ingestão de CDC do BigQuery realizados sem uma atribuição de reserva do BigQuery BACKGROUND ou BACKGROUND_CHANGE_DATA_CAPTURE usam preços sob demanda.
  • Use as reservas do BigQuery: para gerenciar e limitar os custos associados aos jobs de mesclagem do CDC, recomendamos que você compre uma reserva de slot do BigQuery. Isso oferece uma capacidade fixa por um preço fixo, tornando seus custos mais previsíveis. Para mais informações, consulte Configurar uma reserva do BigQuery para uso com a ingestão de CDC.
  • Ajustar max_staleness: o parâmetro max_staleness no BigQuery é uma compensação direta entre a atualização de dados e o custo. Um valor menor significa operações de mesclagem mais frequentes e custos mais altos, mas dados mais recentes. Ajuste esse parâmetro para um nível que atenda aos requisitos da sua empresa para atualização de dados sem exceder seu orçamento. Para mais informações, consulte Gerenciar a desatualização de tabelas.

Limitações conhecidas

As limitações conhecidas para usar o BigQuery como destino incluem:

  • Por padrão, o Datastream não permite adicionar uma chave primária a uma tabela que já foi replicada para o BigQuery sem uma chave primária nem remover uma chave primária de uma tabela que foi replicada para o BigQuery com uma chave primária. Se você precisar fazer essas mudanças, entre em contato com o Suporte do Google. Para saber como mudar a definição da chave primária de uma tabela de origem que já tem uma chave primária, consulte Diagnosticar problemas.
  • As chaves primárias no BigQuery precisam ser dos seguintes tipos de dados:

    • DATE
    • BOOL
    • GEOGRAPHY
    • INT64
    • NUMERIC
    • BIGNUMERIC
    • STRING
    • TIMESTAMP
    • DATETIME

    As tabelas que contêm chaves primárias de tipos de dados não compatíveis não são replicadas pelo Datastream.

  • O BigQuery não é compatível com nomes de tabela com os caracteres ., $, /, @ ou +. O Datastream substitui esses caracteres por sublinhados ao criar tabelas de destino.

    Por exemplo, table.name no banco de dados de origem se torna table_name no BigQuery.

    Para mais informações sobre nomes de tabelas no BigQuery, consulte Nomenclatura de tabelas.

  • O BigQuery não aceita mais de quatro colunas de clustering. Ao replicar uma tabela com mais de quatro colunas de chave primária, o Datastream usa quatro colunas de chave primária como as colunas de clustering.

  • O Datastream mapeia literais de data e hora fora do intervalo, como tipos de data infinita do PostgreSQL, para os seguintes valores:

    • DATE positivo para o valor de 9999-12-31
    • DATE negativo para o valor de 0001-01-01
    • TIMESTAMP positivo para o valor de 9999-12-31 23:59:59.999000 UTC
    • TIMESTAMP negativo para o valor de 0001-01-01 00:00:00 UTC
  • O BigQuery não oferece suporte a tabelas de streaming que tenham chaves primárias dos tipos de dados FLOAT ou REAL. Essas tabelas não são replicadas. Para saber mais sobre os tipos e intervalos de datas do BigQuery, consulte Tipos de dados.

  • Se a origem for o Salesforce ou o Salesforce Marketing Cloud (pré-lançamento), a opção de configuração Conjunto de dados para cada esquema não será compatível.

A seguir