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
- 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.
- Aguarde alguns minutos para garantir que o fluxo de dados concluiu o processamento de todos os eventos da tabela.
- 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.
- Copie os dados da tabela original para a nova tabela particionada.
- Eliminar ou mudar o nome da tabela original.
- Altere o nome temporário da nova tabela para o nome da tabela original.
- Adicione a tabela de origem à configuração da sua stream.
Opção 2: a tabela não existe no BigQuery
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)
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 de0
. Deixar este valor em0
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çãomax_staleness
.Opcionalmente, se tiver definido o preenchimento manual para a stream, inicie o preenchimento para a tabela.