BigQuery: o banco de dados da Google para Big Data | Alura Cursos Online
Primeiras aulas do curso BigQuery: o banco de dados da Google para Big Data
BigQuery: o banco de dados da Google para Big Data
Entendendo o BigQuery - Apresentação
Oi, gente, tudo bem? Meu nome é Victorino Vila e eu vou ser o instrutor deste curso de BigQuery: O banco da dados da Google para Big Data.
O que é o BigQuery? O BigQuery é o banco de dados da Google. A Google oferece para os assinantes da nuvem Google, um banco de dados que ela considera como um banco de dados para Big Data, que é o BigQuery.
Como o próprio nome diz, "Big", ele é um banco feito para grandes volumes de dados, para dados na casa de penta bytes, e possui uma performance excelente porque ele não tem um recurso específico, reservado para o banco de dados, como, por exemplo, um banco de dados tradicional.
Quando você usa o banco de dados Oracle ou SQL, ele vai estar rodando em um hardware, e esse hardware vai ter uma limitação de memória, de disco e de processador. Mesmo na nuvem, você reserva esses recursos.
Quando falamos do BigQuery, não, o BigQuery vai estar utilizando toda a infraestrutura da Google para te oferecer como resposta o resultado o mais rápido possível, usando toda a infraestrutura de nuvem da Google.
Não há uma estrutura previamente reservada para o seu banco, então você não precisa ter DBA, não precisa ter alguém que administra o seu ambiente, nem um que tenha que melhorar as performances das consultas, porque a Google garante performance.
Essa performance tem um preço, e esse preço é a forma com que o BigQuery mensura o uso do seu recurso. Nós vamos ver isso, nós vamos ver como é essa mensuração, e vamos ver também, pela análise da Google, que o uso dessa nova forma de mensurar o custo de banco de dados acaba sendo mais barato se você estivesse usando o banco de dados tradicional.
Vamos começar conhecendo, então, o BigQuery e as suas vantagens. Além disso, aprender como conseguimos fazer uma assinatura na nuvem e trabalhar com o BigQuery.
Tendo o BigQuery, vamos utilizar uma base de dados que chamamos uma base de dados pública, que é uma base de dados relacionada com os aluguéis de bicicleta da cidade de Nova York. Em cima deles, vamos aprender um pouco as consultas SQL.
Se você já sabe SQL porque você já trabalha com SQL, com Oracle, com SQL Server, você não vai ter dificuldade em aprender o SQL do BigQuery. Ele é, praticamente, para não dizer igual. Respeita o padrão ANSI, que é o padrão que estipula as normas para se construir comandos SQL.
E mais, vamos rever como usamos, por exemplo, filtros Subquery, como fazemos o Order By, o Group By, o Having, vamos ver também o Distinct.
Vamos ver uma estrutura que, normalmente, não existe em banco de dados relacional, onde você também pode rodar comandos de SQL, que é o array e o struct, que já mostram um pouco da aparência do BigQuery quando ele começa a tratar de dados não estruturados.
Vamos ver algumas funções de manipulação de array, e depois vamos falar sobre joins, que é uma estrutura super importante em qualquer banco de dados. Vamos ver os tipos de joins que existem no BigQuery.
E, finalmente, no último capítulo, na última aula, vamos chamar assim, nós vamos fazer dois exemplos práticos, inclusive, construir consultas bem complexas.
Então, é isso aí. Isso aí é o resumo do que vai ser esse treinamento. Ele é o primeiro treinamento de BigQuery de uma carreira, de uma especificação de vários cursos que vamos colocar aqui na Alura em cima desse banco de dados da Google.
Então, é isso aí, gente. Muito obrigado, vamos seguir no curso e espero que vocês gostem. Tchau.
Entendendo o BigQuery - O que é o Google BigQuery
Vamos começar falando um pouco do Google BigQuery. O Google BigQuery é uma estrutura de armazenamento de dados oferecida pela Google que te entrega uma velocidade muito grande que diz respeito à consulta de dados, consultas SQLs super rápidas, porque utiliza toda a capacidade e infraestrutura da Google.
O acesso ao Google BigQuery é feito de diversas maneiras. Uma delas é através da nuvem Google, da Google Cloud, mas você também pode acessar dados do BigQuery através de linhas de comando ou então através de bibliotecas APIs, Web Services no padrão RESTfull, além de bibliotecas oferecidas em .NET, Java ou Python.
Quando falamos de Google BigQuery, estamos falando de dados na escala de penta bytes, ou seja, volumes muito grandes de informação. Esses bancos foram feitos para isso, para poderem suportar muita coisa.
Isso porque ele não tem um servidor, você não precisa ter uma infraestrutura para gerenciar um ambiente especial para esse banco de dados. Ele utiliza, implicitamente, toda a infraestrutura da Google para armazenar os seus dados.
Uma outra característica do Google BigQuery é a forma com que ele armazena seus dados. Ele armazena o dado através de um método que nós chamamos de armazenamento colunar.
O armazenamento colunar, entre várias vantagens, visa a, por exemplo, diminuir o I/O de disco, ou seja, o tempo que o disco fica lendo as informações quando você faz uma consulta. Isso, claro, melhora a performance.
Para entendermos melhor outras vantagens do armazenamento colunar, vamos ver esse exemplo aqui de cima.
Eu tenho uma tabela com três campos: campo A, campo B e campo C. Esses três campos têm seus valores representados aqui no slide. Quando falamos de armazenamento colunar, nós estamos falando de um armazenamento onde cada coluna da tabela tradicional vai ser representada através de uma tabela separada.
Então, vendo aqui, a minha tabela que tem a coluna A, B e C vai ser representada por três pequenas tabelas onde eu tenho somente a coluna isolada.
Claro que a tabela possui o conceito de uma linha, então eu preciso, de alguma maneira, ligar o A1 que está aqui com o B1 que está aqui e com o C1 que está aqui, já que na tabela original essas três informações fazem parte de uma linha da tabela.
Então, é claro, é preciso que criemos aqui um determinado campo ID para que eu possa fazer a ligação entre os campos de cada coluna que estão em estruturas agora separadas, para que eu possa formar a minha tabela de forma tradicional.
Uma das vantagens também de eu armazenar o dado de forma colunar é que eu posso comprimir esse dado, e um volume grande de informações pode estar armazenado em um espaço menor.
Por exemplo, vamos supor que eu tenho aqui, em uma determinada coluna, vários dados repetidos. Então, aqui nessa tabela que representa uma coluna eu tenho, da linha 1 à linha 6, o mesmo dado A1. Quando comprimimos o dado da coluna, podemos dizer o seguinte: precisa ter uma linha que tenha o A1 e depois você repete isso cinco vezes.
Essa segunda estrutura aqui, em termos de bytes e de armazenamento, ocupa, claro, muito menos espaço do que essa estrutura que está aqui à esquerda. Então, esse é um dos exemplos que mostram que, na representação colunar, eu consigo comprimir de forma mais fácil os dados.
Outra vantagem é quando eu faço uma consulta que vai exigir, por exemplo, uma agregação. Digamos que eu queira fazer aqui uma seleção para somar um determinado valor para todos os elementos da coluna A.
Quando eu faço isso daqui, eu só vou mexer sobre essa estrutura auxiliar, porque a coluna B e a coluna C não fazem parte dessa estrutura aqui.
Se eu estivesse rodando esse comando de consulta para agregar dados através da coluna A usando uma tabela tradicional, apesar de a coluna B e a coluna C não fazerem parte da minha seleção, elas vão estar envolvidas, porque, ao tentar agrupar essa coluna aqui, B e C estão unidas em uma única estrutura e eu tenho que manipular mais dados, mesmo que eu não precise.
Na estrutura colunar, essa forma de agregação fica muito mais eficiente. Então, podemos também falar sobre algumas outras vantagens da estrutura colunar como, por exemplo, o particionamento. Como eu tenho estruturas separadas das colunas, eu posso particionar essas colunas e gravar parte dos dados em lugares diferentes.
A outra coisa é a indexação. Novamente, como eu tenho uma estrutura isolada, eu criar um índice baseado na coluna fica muito mais fácil do que se eu criar um índice baseado em uma coluna que está intimamente ligada, de forma estrutural, com as outras colunas.
E, claro, uma coisa que eu já mencionei em dois slides anteriores é a vantagem de você poder ter o dado comprimido.
Bem, no próximo vídeo eu continuo falando mais vantagens sobre o Google BigQuery.
Entendendo o BigQuery - Vantagens do Google BigQuery
Vamos falar agora mais algumas outras vantagens de você estar utilizando o Google BigQuery.
A primeira vantagem é a análise em tempo real. Pelo fato de você estar usando toda a infraestrutura do Google, a parte de stream, de captura de dados do BigQuery funciona como uma performance excelente.
Isso permite que você possa, por exemplo, capturar dados em tempo real para garantir, por exemplo, resultados atualizados de forma muito mais rápida, de tal maneira que você possa construir consultas ou relatórios praticamente online, com informações online.
Outra vantagem é que o Google BigQuery é acessível tanto para grande, quanto para pequenas empresas. Primeiro, eu preciso falar uma coisa para vocês. Como o Google BigQuery cobra dos seus clientes o uso do banco de dados?
Ele cobra através de dois indicadores, basicamente. O primeiro indicador é o indicador de armazenagem de dados, ou seja, eu tenho uma cota mínima ou máxima de dados que eu possa estar armazenando, guardando.
Mas existe também um segundo indicador que é o volume de dados envolvidos em uma consulta do Google BigQuery. Ele faz essas apurações mensais. Até 10 GB de dados armazenados e até 1 TB de consultas efetuadas.
Ou seja, quando eu faço uma consulta, a resposta somada de todas as consultas feitas dentro de um mês, se elas derem menos ou igual a 1 TB e os dados armazenados, menor ou igual a 10 GB, você não paga nada pelo Google BigQuery.
Convenhamos, 10 GB de dados e 1 TB de consultas, para pequenas empresas, são valores acessíveis. Uma pequena empresa não vai ter grande volume de dados, então ela pode usar o Google BigQuery de maneira gratuita.
Mas as grande empresas podem, sim, contratar mais espaços, não só de armazenagem, mas mais espaços de consulta, e, além disso, podem contratar um nível de serviço diferenciado que faz com que o seu banco de dados tenha um SLA de disponibilidade de 99,9%, ou seja, uma disponibilidade praticamente constante, sem nenhum problema.
Outra coisa, que eu até mencionei um pouco no vídeo anterior, mas vamos falar um pouco mais agora, é que o Google BigQuery dispensa o uso de um servidor. Ele utiliza toda a estrutura global da nuvem Google, de maneira que uma empresa não precisa se preocupar em direcionar recursos para prover performance para o resultado de suas consultas.
Isso para você é transparente. Toda consulta do BigQuery terá a performance maximizada, e você pode se concentrar não em ficar cuidando do banco de dados, tentando melhorá-lo para que as consultas fiquem melhores, mas você se preocupa apenas com os resultados das mesmas, você não se preocupa mais com a infraestrutura.
Além disso, quando você utiliza o Google BigQuery na nuvem Google, você pode, por exemplo, determinar que região seus dados vão estar armazenados e que região dentro da nuvem vai estar processando as suas informações.
Outra grande vantagem do Google BigQuery é que ele utiliza o SQL padrão. Quando a Google implementou o BigQuery, eles pensaram "que tipo de linguagem vamos criar para estarmos interagindo com esse banco de dados?", e a Google foi esperta e utilizou o padrão SQL, que é o padrão já difundido em todos os outros bancos de dados relacionais de mercado.
O Google BigQuery utiliza o padrão que nós chamamos de padrão ANSI:2011, ou seja, é o padrão SQL de 2011 para frente. Isso diminui a sua necessidade, por exemplo, de reescrever códigos se você estiver migrando a sua aplicação de um ambiente de um banco de dados tradicional para o Google BigQuery.
Em termos de profissionais, a curva de aprendizado do seu profissional fica muito mais fácil se ele quiser aprender a utilizar o Google BigQuery já que ele já conhece, por exemplo, o padrão SQL.
Também o Google BigQuery disponibiliza drives ODBC e JDBC para você estar acessando os dados, fazendo com que os seus aplicativos externos consigam, automaticamente, estar buscando a informação do banco.
Se você estiver migrando seu código-fonte de uma estrutura tradicional para o Google BigQuery, praticamente você não vai precisar reescrever código nenhum.
Próximo item: separação de armazenamento e computação. O armazenamento nós chamamos de elástico, ou seja, ele vai crescendo ao longo do tempo, na medida que você vai usando o banco, faz com que você possa ter custos menores de manutenção para o seu banco de dados.
Como, por exemplo, o armazenamento de gravar o dado e de obter as consultas é feito de uma forma separada, isso permite, por exemplo, que você só possa estar tendo que pagar pelo seu banco de dados se você estiver utilizando-o, se você estiver fazendo consultas nele.
Existe, claro, o preço fixo da armazenagem, mas o grande preço variável são as consultas. Se você não consulta nada no seu banco, você não paga por isso. Isso faz com que o custo de propriedade do seu banco de dados diminua muito.
Segundo a Google, através de pesquisas testando o custo de total de propriedade no banco de dados tradicional, considerando a infraestrutura, o preço de licença desse banco de dados, comparado com o mesmo banco de dados no Google BigQuery, chega a resultados de diminuição desses custos em 56% e 88%.
Modelo de preços flexíveis. Você tem, claro, a opção de pagar somente o que você usa. Então, você paga um custo inicial pelo armazenamento mais o custo pelas consultas – mais consultas, mais se paga.
Mas, caso você tenha muito volume de consulta, e você consiga ter uma estatística mais ou menos de quanto você vai gastar por mês, você pode estar requisitando à Google um modelo de negócio baseado em um preço fixo. E você pode depois ir escalonando, aumentando esse preço fixo na medida que as consultas forem aumentando.
Então, isso faz com que você tenha modelos comerciais de preços flexíveis para a utilização do Google BigQuery.
Outra vantagem do Google BigQuery é o que nós chamamos de compartilhamento otimizado. Você pode, por exemplo, compartilhar o seu banco de dados a usuários internos ou externos ao ambiente Google.
E também você pode apurar quanto que cada usuário vai estar gastando quando ele começar a consultar os dados no seu banco de dados. Então você pode, por exemplo, fazer uma estatística para saber o usuário que gasta mais e o usuário que gasta menos.
E se você estiver fornecendo um serviço cujo seus usuários são pessoas que te pagam para que você disponibilize aquelas informações, você pode, inclusive, criar modelos de negócios mais flexíveis e cobrar o seu usuário pela usabilidade do banco de dados, da mesma maneira que o Google BigQuery está cobrando de você desta maneira.
Descontos automáticos. Se você começa a utilizar o Google BigQuery durante mais de noventa dias, ou seja, se você começa a utilizar a estrutura e vai pagando pelo armazenamento e pelas consultas mês a mês, depois de três meses, ou seja, noventa dias, você ganha uma série de descontos automáticos.
Pelo fato de você ter uma certa fidelidade e está utilizando o Google BigQuery durante um certo tempo.
Machine learning. O Google BigQuery possui uma linguagem própria chamada BigQuery ML que permite você criar, testar e operacionalizar modelos, por exemplo, de machine learning lendo coisas de dados estruturados ou semiestruturados em escala muito grande dentro das informações que estão armazenadas nas suas tabelas lá do Google BigQuery.
Além disso, você também pode trabalhar com dados geoespaciais, e tudo isso, modelos de machine learning e trabalhar com dados geoespaciais, tudo isso utilizando, simplesmente, um SQL simples.
Bem, essas são outras vantagens do uso do BigQuery. Então, eu espero, pelo menos, com esse vídeo e com o vídeo anterior, você já tenha entendido o que é o Google BigQuery, como ele funciona e quais são suas vantagens. Então, espero você no próximo vídeo. Tchau.
Sobre o curso BigQuery: o banco de dados da Google para Big Data
O curso BigQuery: o banco de dados da Google para Big Data possui 229 minutos de vídeos, em um total de 58 atividades. Gostou? Conheça nossos outros cursos de NoSQL em Data Science, ou leia nossos artigos de Data Science.