Bigquery O particionamento é uma maneira eficaz de otimizar o desempenho de suas consultas no BigQuery do Google. Mas o que é exatamente o BigQuery e como o particionamento pode acelerar a análise de dados?
O BigQuery é um data warehouse empresarial totalmente gerenciado e sem servidor oferecido como parte do Google Cloud Platform. Ele permite que você execute consultas SQL rápidas usando o poder de processamento da infraestrutura do Google.
No entanto, à medida que os dados aumentam com o tempo, o desempenho da consulta pode ficar mais lento. É aí que entra o particionamento. Como ele divide suas tabelas grandes em partições menores, o particionamento pode organizar seus dados e acelerar as consultas.
Confira este guia passo a passo sobre o particionamento do BigQuery para entender como ele funciona e como você pode criar tabelas particionadas para otimizar sua análise de dados.
Como funciona o particionamento do BigQuery
No BigQuery, você pode dividir tabelas grandes em pedaços de dados menores e mais gerenciáveis, chamados de partições. O objetivo é armazenar dados relacionados juntos em partições, separados de dados não relacionados em outras partições. Quando você consulta uma tabela, o BigQuery verifica apenas as partições relacionadas a essa consulta, em vez de toda a tabela.
Por exemplo, digamos que você tenha uma tabela de dados financeiros que abrange 10 anos, com 10 milhões de linhas no total. Com o particionamento do BigQuery, você poderia dividir essa tabela por ano em 10 partições, uma para cada ano.
Quando você consultar dados de um ano específico, o BigQuery recuperará dados de apenas uma partição, reduzindo a quantidade de varredura necessária para as consultas.
Como resultado, o BigQuery retornará resultados mais rapidamente do que seria necessário para verificar a tabela inteira. Como você é cobrado pelo número de bytes processados por cada consulta, você também poderá economizar dinheiro ao não verificar dados irrelevantes.
Como criar tabelas particionadas no BigQuery
Para demonstrar como podemos criar tabelas particionadas, usaremos um conjunto de dados que contém informações sobre termos de pesquisa em alta no Google Trends.
Vou escrever uma consulta SQL para filtrar os dados de a tabela “rising_terms” e retornar colunas específicas com base nestes critérios: a pontuação é superior a 99 e a data está entre 2018-01-01 e 2019-01-01.
Observação: se você quiser saber como escrever consultas SQL básicas, consulte este artigo sobre Sintaxe do BigQuery.
Esta é a aparência da consulta:
SELECT termo, pontuação, semana, classificação, nome_do_país
FROM `bigquery-dataset-396013.Google_trends.rising_terms`
WHERE week BETWEEN ‘2018-01-01’ AND ‘2019-01-01’
E pontuação > 99
LIMITE 1000;
Vamos detalhar isso:
SELECT termo, pontuação, semana, classificação, nome_do_país - essas são as colunas que desejo que o BigQuery retorne.
FROM `bigquery-dataset-396013.Google_trends.rising_terms` - essa é a tabela a partir da qual os dados serão consultados.
WHERE week BETWEEN ‘2018-01-01’ AND ‘2019-01-01’ - essa cláusula filtra as linhas apenas para aquelas em que a semana está entre essas duas datas.
E pontuação > 99 - esse é um filtro adicional para incluir apenas as linhas em que a pontuação é maior que 99.
LIMITE 1000; - essa cláusula limita os resultados a um máximo de 1.000 linhas.
Depois de executar essa consulta, o BigQuery retorna as colunas e linhas que atendem a esses critérios. Quando executei a consulta, ela teve de verificar todas as linhas para retornar os dados que se enquadram nesses critérios.
É aqui que o particionamento do BigQuery é útil. Ao dividir a tabela em partições menores, o BigQuery pode verificar apenas os segmentos que correspondem aos critérios que estabeleci quando escrevi a consulta.
Para particionar a tabela, usarei a seguinte sintaxe:
CREATE TABLE nome_da_tabela
PARTITION BY expressão_de_partição
Vou escrever uma consulta para criar uma tabela particionada usando uma instrução SELECT para preenchê-la com dados de uma tabela existente. Essa consulta cria uma nova tabela chamada rising_terms_by_year no conjunto de dados especificado. Além disso, ela especifica que essa nova tabela deve ser particionada pela coluna week. Ela também seleciona as colunas especificadas da tabela rising_terms existente para extrair os dados.
CREATE TABLE `bigquery-dataset-396013.Google_trends.rising_terms_by_year`
PARTITION BY week AS
SELECT termo, pontuação, semana, classificação, nome_do_país
FROM `bigquery-dataset-396013.Google_trends.rising_terms`
Como você pode ver, o BigQuery criou uma tabela particionada chamada “rising_terms_by_year”.
Um guia passo a passo para o particionamento do BigQuery
É assim que você cria tabelas particionadas no BigQuery. Ao criar tabelas particionadas, você pode dividir tabelas grandes em pedaços de dados menores e mais gerenciáveis. Isso permite que o BigQuery retorne resultados de forma mais rápida e eficiente.
Se você quiser saber mais sobre o BigQuery, confira este artigo no Como usar as funções agregadas do BigQuery.
