Use o Datastream para ingerir dados em tabelas particionadas no BigQuery

Pode ter de criar partições nas suas tabelas do BigQuery em segmentos mais pequenos para melhorar o desempenho das consultas e controlar os custos. Uma vez que o Datastream não suporta tabelas de partição no BigQuery, tem de adicionar manualmente as partições antes de iniciar a stream. Para ver informações gerais sobre a partição no BigQuery, consulte o artigo Introdução às tabelas particionadas.

Particione tabelas no BigQuery

Para particionar as tabelas no BigQuery, use uma das opções descritas nas secções seguintes, consoante o seu exemplo de utilização.

Opção 1: a tabela já existe no BigQuery e está incluída numa stream

  1. Exclua a tabela da configuração de origem da sua stream. Para mais informações sobre como incluir e excluir objetos da configuração de origem, consulte o artigo Configure bases de dados de origem.
  2. Aguarde alguns minutos para garantir que o fluxo de dados concluiu o processamento de todos os eventos da tabela.
  3. Crie a tabela particionada no BigQuery. Se quiser manter os dados que já estavam na tabela original do BigQuery, atribua à tabela um nome temporário diferente.
  4. Copie os dados da tabela original para a nova tabela particionada.
  5. Eliminar ou mudar o nome da 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 da sua stream.

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

  1. Crie a tabela no BigQuery através de uma das seguintes abordagens:

    • Use o BigQuery Migration Toolkit.
    • Crie manualmente uma tabela do BigQuery compatível com o Datastream. Por exemplo, se quiser criar uma tabela e particionar os dados com base na coluna TIMESTAMP, pode usar uma consulta semelhante à seguinte:

      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, certifique-se de que o valor de max_staleness está definido de acordo com os seus requisitos. Se não definir o valor, é definido o valor predefinido de 0. Deixar este valor em 0 garante os dados mais recentes, mas incorre num custo significativo. Para obter informações sobre como encontrar o valor ideal para a sua tabela, consulte o artigo Use tabelas do BigQuery com a opção max_staleness.

  3. Adicione a tabela de origem à configuração da sua stream.

  4. Opcionalmente, se tiver definido o preenchimento manual para a stream, inicie o preenchimento para a tabela.