BigQuery: o serviço de armazenamento de dados do Google Cloud Platform

Se você está em busca de uma ferramenta de armazenamento e análise de dados em nuvem, certamente já deve ter ouvido falar do BigQuery, o serviço de armazenamento de dados oferecido pelo Google Cloud Platform. Se ainda não conhece ou está em busca de mais informações, continue lendo para descobrir o que você precisa saber sobre o essa ferramenta.

O que é o BigQuery?

Ele é um Modern Data Warehouse da Google, em que possui uma estrutura de armazenamento com a capacidade e infraestrutura do Cloud da Google, em que as consultas são feitas via SQL. Você pode fazer as chamadas na plataforma, mas também pode ser feito através da linha de comando, em chamadas REST ou usando as bibliotecas como .NET, Java ou Python. Ele foi feito para lidar com grande volume de dados, na casa dos Petabytes. Ele não tem servidor, portanto não tem necessidade de uma infraestrutura para gerenciar o ambiente.

Além disso ele é rápido por conta da forma com que os dados são armazenados, utilizando a forma colunar. Essa estrutura visa diminuir o processo de I/O de disco ao mínimo, lendo a menor quantidade de dados durante a consulta. Além disso, diferente do relacional, em que é usado em aplicativos transacionais, no colunar ele é otimizado para uma recuperação rápida de dados, normalmente usados em aplicações analíticas.

Por conta da otimização na leitura dos dados em disco, e na forma em que a estrutura foi pensada, ela é ideal para soluções como Data Warehouse e Processamento de Big Data.

Por essas características, ela é uma excelente opção para empresas que precisam armazenar e analisar grandes volumes de dados em tempo real. A plataforma oferece um ambiente seguro e escalável para armazenamento de dados, além de permitir o acesso a dados em tempo real e a execução de consultas complexas em segundos. O BigQuery também é altamente integrado com outras soluções do Google Cloud Platform, como o Google Analytics e o Google Data Studio.

Quais são suas vantagens?

  • Análise em tempo real: Com a performance dela podemos fazer inclusões de streaming, além de permitir capturar e analisar os dados praticamente online para gerar insights rápidos. Os dados novos ficam disponíveis imediatamente.

  • Acessível a grandes e pequenas companhias: Por conta da forma de cobrança, ela é flexível no orçamento para qualquer tamanho de empresa. Para pequenas empresas por exemplo, temos as cotas mensais gratuitas (até 1Tb/mês de dados analisados e 10Gb de dados armazenados), e para as grandes é costume optar pela escala, com contrato focado na disponibilidade e suporte.

  • Dispensa servidor: Como ela se beneficia da infraestrutura da Google, ele pode focar somente nos insights gerados através das consultas.

  • SQL padrão: Ele utiliza o padrão ANSI:2011, o que reduz a necessidade de reescritas e novos aprendizados. Além disso disponibiliza drivers (ex.: ODBC e JDBC) sem custo.

  • Separação de armazenamento e computação: Ele possui uma estrutura escalonada, facilitando a capacidade de armazenar os dados, e que por consequência resulta em custos menores. Além disso, o armazenamento pode ser cobrado separadamente das consultas. De acordo com o Google, o BigQuery viabiliza a redução de custos em 56% a 88%.

  • Modelo de preços flexíveis: Você escolhe a opção de pagar somente armazenamento e recursos utilizados. Em outros modelos, como fixo, pode escolher um custo mensavel escalável, de acordo com seu volume de dados.

  • Compartilhamento otimizado: Você pode compartilhar o acesso a sua base para usuários internos ou externos, tendo segurança de autenticação e papéis, além de saber o custo gerados nas consultas a partir de cada usuário.

  • Descontos automáticos: Se você tem utilizado e armazenado os dados com grande frequência, nos primeiros 90 dias o Google automaticamente aplica descontos.

  • Importação de dados: é possível fazer a importação dos dados a partir de arquivos como CSV, JSON, Avro ou Parquet.

  • Machine Learning: Com o BigQuery ML você pode criar, testar e utilizar modelos de Machine Learning nos dados em escala global, usando SQL simples.

Criando sua conta no GCP

Para criar uma assinatura no Google Cloud, você pode utilizar alguma conta Google que utiliza os recursos do Workspace por exemplo (Gmail, Google Docs, etc). Nos primeiros 90 dias você ganha um crédito de $300 para gastar nos serviços. Clique em "Comece agora gratuitamente"

Feito isso ele vai fazer algumas perguntas em 3 etapas.

Etapa 1

Etapa 2
Nesse caso esse usuário já preencheu algumas informações, que caso seja acessado pela primeira vez, pode ser solicitado como:

  • Tipo de Conta

  • CPF ou CNPJ

  • Endereço

  • Data de Nascimento (em PF)

  • Dados de pagamento

Sobre os dados de pagamento o Google solicita, mas não quer dizer que será cobrado, isso é feito para fins de evitar criação de contas por robôs. Você só será cobrado se alterar isso manualmente na sua conta. Lembrando que se passar dos 90 dias, você precisa atualizar para uma conta paga.

Etapa 3
Com tudo isso feito, você será redirecionado para um dashboard principal do Google Cloud.

Na primeira vez é provavel que o conteúdo dele esteja em branco, mas no caso da imagem acima eu criei um novo projeto para trabalhar em cima. Ele traz algumas informações relacionados a ela.

Criando um novo projeto

Para o GCP um projeto é um escopo que você aloca um conjunto de recursos a ela, então pode no Cloud vários projetos. Para isso você vai na barra superior (ao lado do "Google Cloud Platform") e selecione o campo. Vai aparecer uma modal com a lista de projetos cadastrado, e opção de incluir um novo.

Ao solicitar a criação de um novo projeto você vai preencher os seguintes dados:

  • Nome do projeto

  • ID do projeto (opcional porque ele é gerado automaticamente)

  • Qual organização deseja que esse projeto esteja vinculado

  • Local (pode ser uma pasta ou organização pai)

Depois de criado você pode selecionar e vincular os recursos do GCP que deseja nele.

Criando sua primeira consulta

Vamos fazer a nossa primeira consulta, e para precisa ter uma conta criada e logada, além de ter criado um projeto. Para acessar a ferramenta, vamos no menu lateral e ir na seção Big Data.

Clicando na opção, vamos ser redirecionados ao Espaço de trabalho SQL em que teremos acesso ao editor de texto, em que iremos executar as nossas consultas.

Um detalhe importante é que no topo do editor, é exibido um alerta sobre o Sandbox. Ele é preparado para você experimentar a ferramenta e fazer as consultas e armazenamentos, mas com determinados limites. Acesse a documentação para entender mais. Agora vamos fazer a primeira consulta, usando uma base de dados pública que o BigQuery disponibiliza.

SELECT gender, tripduration FROM `bigquery-public-data.new_york_citibike.citibike_trips` LIMIT 5

Aqui estamos trazendo duas colunas, de um dataset público, que são os dados sobre o uso de bicicletas na cidade de Nova York. A consulta é simples, mas existe uma peculiaridade. Podemos ler a query da seguinte forma:

Busque as colunas gender e tripduration que está na tabela citibike_trips, do dataset new_york_citibike, do projeto bigquery-public-data.

Atenção!

Como estamos acessando algo fora do nosso dataset e projeto, essa sintaxe é necessária. Mas no caso da nossa própria base, podemos definir o nome da tabela somente. Além disso, é importante explicar que:

  • No nosso projeto podemos ter vários datasets

  • No nosso dataset podemos ter várias tabelas

Nesse exemplo vemos o quão semelhante uma query no BigQuery é semelhante ao que conhecemos do SQL em bancos relacionais.