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
- 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.
- Aguarde alguns minutos para garantir que o Datastream tenha concluído o processamento todos os eventos da tabela.
- 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.
- Copie os dados da tabela original para a nova tabela particionada.
- Exclua ou renomeie a tabela original.
- Altere o nome temporário da nova tabela para o nome da tabela original.
- Adicione a tabela de origem à configuração do seu fluxo.
Opção 2: a tabela não existe no BigQuery
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)
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 de0
será definido. Para mais informações, consulte Usar tabelas do BigQuery com a opçãomax_staleness
.Opcionalmente, se você tiver definido o preenchimento manual para o fluxo, inicie o preenchimento para a tabela.