Talvez seja necessário particionar as tabelas do BigQuery em segmentos menores para melhorar o desempenho das consultas e controlar os custos. Como o Datastream não oferece suporte a tabelas de particionamento no BigQuery, é necessário adicionar manualmente as partições antes de iniciar o stream. Para informações gerais sobre o particionamento no BigQuery, consulte Introdução às tabelas particionadas.
Particionar tabelas no BigQuery
Para particionar suas 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
- Exclua a tabela da configuração de origem do stream. 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 de 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ê a ela um nome temporário diferente.
- Copie os dados da tabela original para a nova tabela particionada.
- Exclua ou renomeie a tabela original.
- Mude 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 BigQuery Migration Toolkit.
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_stalenessdela está definido de acordo com seus requisitos. Se você não definir o valor, o padrão0será usado. Deixar esse valor em0garante os dados mais recentes, mas gera um custo significativo. Para informações sobre como encontrar o valor ideal para sua tabela, consulte Usar tabelas do BigQuery com a opçãomax_staleness.Opcionalmente, se você tiver definido o preenchimento manual para o stream, inicie o preenchimento da tabela.