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 às 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 um fluxo

  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 de todos os eventos da tabela.
  3. Crie a 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. Mude o nome temporário da nova tabela para o nome da tabela original.
  7. Adicione a tabela de origem à configuração do 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 está 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 stream.

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