Usar o Datastream para ingerir dados em tabelas particionadas no BigQuery

Talvez seja necessário particionar as tabelas do BigQuery em segmentos menores para melhorar a performance da consulta e controlar os custos. Como o Datastream não oferece suporte a tabelas de particionamento no BigQuery, é necessário adicionar as partições manualmente antes de iniciar o fluxo. Para informações gerais sobre particionamento no BigQuery, consulte Introdução a tabelas particionadas.

Particionar tabelas no BigQuery

Para particionar as tabelas no BigQuery, use uma das opções descritas nas seções a seguir, dependendo do seu caso de uso.

Opção 1: a tabela já existe no BigQuery e está incluída em uma transmissão

  1. Exclua a tabela da configuração de origem do fluxo. Para mais informações sobre como incluir e excluir objetos da configuração de origem, consulte Configurar bancos de dados de origem.
  2. Aguarde alguns minutos para garantir que o Datastream tenha concluído o processamento todos os eventos da tabela.
  3. Crie sua tabela particionada no BigQuery. Se você quiser manter os dados que já estavam na tabela original do BigQuery, dê um nome temporário diferente a ela.
  4. Copie os dados da tabela original para a nova tabela particionada.
  5. Exclua ou renomeie a tabela original.
  6. Altere o nome temporário da nova tabela para o nome da tabela original.
  7. Adicione a tabela de origem à configuração do seu fluxo.

Opção 2: a tabela não existe no BigQuery

  1. Crie a tabela no BigQuery usando uma das seguintes abordagens:

    • Use o Kit de ferramentas de migração do BigQuery.
    • Crie manualmente uma tabela do BigQuery compatível com o Datastream. Por exemplo, se você quiser criar uma tabela e particionar os dados com base na coluna TIMESTAMP, use uma consulta semelhante a esta:

      CREATE TABLE dataset.partitioned_table (
      'id' INT64,
      'name' STRING
      'update_date' DATETIME,
      'datastream_metadata' STRUCT<'uuid' STRING, 'source_timestamp' INT64>,
      PRIMARY KEY ('id') NOT ENFORCED
      )
      PARTITION BY TIMESTAMP(update_date)
      
  2. Depois de criar a tabela particionada, verifique se o valor max_staleness é definido de acordo com seus requisitos. Se você não definir o valor, o valor padrão de 0 será definido. Para mais informações, consulte Usar tabelas do BigQuery com a opção max_staleness.

  3. Adicione a tabela de origem à configuração do seu fluxo.

  4. Opcionalmente, se você tiver definido o preenchimento manual para o fluxo, inicie o preenchimento para a tabela.