Carregar dados em tabelas particionadas
Neste documento, descrevemos como carregar dados em tabelas particionadas.
Gravar dados em uma partição específica
É possível carregar dados em uma partição específica usando o comando bq load
com um decorador de partição. O exemplo a seguir adiciona dados na partição
20160501
(1 de maio de 2016) de uma tabela atual, supondo que a tabela já esteja particionada por data:
bq load --source_format=CSV 'my_dataset.my_table$20160501' data.csv
Você também pode gravar os resultados de uma consulta em uma 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 o particionamento de tempo de ingestão, é possível usar essa técnica para carregar dados mais antigos na partição que corresponde ao horário em que os dados foram criados originalmente.
Você também pode usar essa técnica para ajustar os fusos horários. Por padrão, as partições de tempo de processamento são baseadas no horário UTC. Se você quiser que o horário da partição corresponda a um fuso horário específico, use os decoradores de partição para compensar o horário de ingestão UTC. Por exemplo, se você está no Horário padrão do Pacífico
(PST, na sigla em inglês), é possível carregar dados gerados em 1 de maio de 2016 PST na
partição dessa data usando o decorador de partição correspondente,
$20160501
.
Para colunas particionadas por unidade de tempo e intervalo de números inteiros, o ID da partição
especificado no decorador precisa corresponder aos dados que estão sendo gravados. Por exemplo, se
a tabela for particionada em uma coluna DATE
, o decorador precisará corresponder ao valor
nela. Caso contrário, ocorrerá um erro. No entanto, se você souber de antemão que
seus dados estão em uma única partição, especificar o decorador de partição poderá
melhorar o desempenho de gravação.
O exemplo anterior anexa dados a uma partição. Para substituir dados em uma
partição, é preciso incluir sinalizações diferentes para cada comando, ou seja,
bq load --replace=true ...
e bq query --append_table=false ...
.
Para mais informações sobre as sinalizações nesses comandos, consulte bq load
e bq query
.
Para mais informações sobre como carregar dados, consulte Introdução ao carregamento de dados no BigQuery.
Transmitir dados para tabelas particionadas.
Para informações sobre streaming de dados para uma tabela particionada com a API BigQuery Storage Write, consulte Particionamento de colunas de unidade de tempo.
A seguir
Para saber mais sobre como trabalhar com tabelas particionadas, consulte:
- Como criar tabelas particionadas
- Como gerenciar tabelas particionadas
- Como consultar tabelas particionadas