Carregue dados em tabelas particionadas
Este documento descreve como carregar dados em tabelas particionadas.
Escreva dados numa partição específica
Pode carregar dados para uma partição específica através do comando
bq load
com um decorador de partição. O exemplo seguinte anexa dados à partição 20160501
(1 de maio de 2016) de uma tabela existente, partindo do princípio de que a tabela já está particionada por data:
bq load --source_format=CSV 'my_dataset.my_table$20160501' data.csv
Também pode escrever os resultados de uma consulta numa partição específica:
bq query \ --use_legacy_sql=false \ --destination_table='my_table$20160501' \ --append_table=true \ 'SELECT * FROM my_dataset.another_table'
Com a partição por tempo de carregamento, pode usar esta técnica para carregar dados mais antigos na partição que corresponde à hora em que os dados foram originalmente criados.
Também pode usar esta técnica para ajustar os fusos horários. Por predefinição, as partições de tempo de carregamento baseiam-se na hora UTC. Se quiser que a hora da partição corresponda a um fuso horário específico, pode usar decoradores de partição para compensar a hora de carregamento UTC. Por exemplo, se estiver na Hora Padrão do Pacífico (PST), pode
carregar dados gerados a 1 de maio de 2016 às 23:30 PST na partição para
essa data usando o decorador de partição explícito correspondente,
$2016050123
. Se não usasse este decorador explícito, o valor seria carregado em $2016050207
(2 de maio às 07:00 UTC).
Para tabelas particionadas por intervalo de números inteiros e colunas de unidades de tempo, o ID da partição especificado no decorador tem de corresponder aos dados que estão a ser escritos. Por exemplo, se a tabela for particionada numa coluna DATE
, o decorador tem de corresponder ao valor nessa coluna. Caso contrário, ocorre um erro. No entanto, se souber antecipadamente que os seus dados estão numa única partição, a especificação do decorador de partição pode melhorar o desempenho de escrita.
A app de exemplo anterior anexa dados a uma partição. Em alternativa, para substituir dados numa partição, tem de incluir flags diferentes para cada comando, nomeadamente bq load --replace=true ...
e bq query --append_table=false ...
.
Para mais informações sobre as flags nestes comandos, consulte bq load
e bq query
.
Para mais informações sobre o carregamento de dados, consulte o artigo Introdução ao carregamento de dados no BigQuery.
Transmita dados para tabelas particionadas
Para obter informações sobre como fazer stream de dados para uma tabela particionada com a API Storage Write do BigQuery, consulte o artigo Fazer stream para tabelas particionadas.
O que se segue?
Para saber mais sobre como trabalhar com tabelas particionadas, consulte: