Primeiras aulas do curso BigQuery: Manipulação de dados

BigQuery: Manipulação de dados

Conceitos - Apresentação

Oi tudo bem? Meu nome é Vitorino Vila, e eu vou ser um instrutor desse curso de BigQuery, manutenção de dados, estamos vendo dentro da nossa carreira de BigQuery, um pouco desse banco de dados, oferecido da Google, que é um banco de dados que suporta muita informação, milhões de linhas e que é voltado para o lado gerencial.

[00:28] Então agora vamos aprender a criar tabelas e popular dados nas tabelas do banco do BigQuery, esse treinamento vai ser composto desses vídeos que estão sendo mostrados nesse slide.

Então nós inicialmente vamos estar falando um pouco sobre a diferença dos bancos de dados transacionais e gerenciais, e meio que mostrando para vocês aonde que o BigQuery se situa.

Depois vamos estar falando de uma chamada conjunto de dados, conjunto de dados nada mais é do que o que seria equivalente ao database no banco de dados relacional. Vamos ver como criamos conjunto de dados pelo console, pela interface nativa do BigQuery, ou por linha de comando, através do Shell.

E vamos depois ver como transferimos dados entre vários conjuntos de dados e inclusive como que eliminamos um conjunto de dados.

A partir do momento que nossos conjuntos de dados estão criados, vamos começar aqui a entender os tipos de dados existentes no BigQuery, e vamos entender como é que funciona uma tabela no BigQuery, e vamos criar as tabelas, através do SQL, de Shell, por esquema ou pelo console, vamos criar tabelas de diversas maneiras.

E depois nós vamos manipular essas tabelas inserindo linhas novas na tabela, alterando linhas existentes, apagando linhas da tabela que existem.

E depois finalmente nós vamos encerrar esse nosso treinamento falando um pouco sobre carga de dados, e vamos ver aqui diversas maneiras, na qual nós podemos carregar dados através de arquivos externos, então vamos ver a carga de dados pelo console, pelo Shell, usando arquivo csv e usando arquivos Json.

Então no final desse treinamento você vai estar apto a criar novos bancos de dados no BigQuery e colocar dados dentro desse banco, popular ele através de dados que podem estar na sua maioria das vezes de fontes externas.

Então é isso, espero que você goste desse treinamento, vamos seguir em frente, um abraço e até o próximo vídeo.

Conceitos - Bancos transacionais

Então já vimos o que significa os bancos transacionais, mas vamos pensar o seguinte, que a empresa está funcionando, ela está registrando no banco de dados as suas transações, e aí você tem um gerente, diretor, presidente, alguém assim com nível mais alto dentro da hierarquia da empresa que precisa apurar, entender o que está acontecendo para tomar decisões.

Essas decisões podem ser, “Ah, temos que então que expandir o nosso armazém porque nós estamos vendendo muito, e nós não estamos comportando os estoques”, eu posso definir que os preços estão muito caros, as vendas estão caindo então preciso dar alguns descontos.

Eu preciso definir por exemplo, eu estou notando que muita gente não está pagando em dia, então entender porque que isso está acontecendo para que as pessoas possam pagar em dia, enfim, tem que entender tudo está acontecendo para tomar decisões.

E as informações que ele precisa para tomar as decisões, não são informações detalhadas, ele precisa ter uma visão do todo, e de dados que nós chamamos de consolidados, ou seja, ele não precisa ver o quanto é que eu estou vendendo de um determinado produto a uma hora atrás, mas ele precisa saber quanto que eu vendi de um determinado produto nos últimos 12 meses.

E então o que acontece, esses bancos de dados transacionais que estão aqui embaixo, eles estão consumindo memória, processamento de máquina, porque eles estão sendo alimentados pelas transações que estão ocorrendo durante o dia dentro da empresa.

Não só as transações, mas todas as verificações das regras de negócio, para inclusive evitar de que por exemplo, eu vendo algum produto que não tenha no cadastro, cliente que não esteja cadastrado na base de clientes, e eu fico informando esses caras que estão aqui, sobre os dados das transações para ele possa continuar, ou não, os seus processos operacionais.

E aí se eu começo a concorrer ao mesmo tempo com o esforço de eu extrair os dados que estão aqui mais consolidados, ou seja, ler tudo que está ali, grupar, consolidar e fornecer para os relatórios desse diretor, eu posso prejudicar a performance desse banco de dados transacional para controlar as transações.

Elas vão começar a ficar muito lentas, o cara vai começar a reclamar, olha, na hora de emitir nota fiscal demora um minuto, não acontecia isso, na hora de eu poder ver qual é o meu estoque, quero ver aqui qual é o meu estoque, o sistema fica 5 minutos pensando até me dar o estoque, tem alguma coisa errada, então para evitar essa concorrência, o que acontece?

Como esse cara de cima ele não precisa de uma informação exata naquele momento, eu posso esperar à noite, onde a empresa para, onde nenhuma transação está sendo efetuada, que acabou o horário de expediente, e aí eu tenho um outro banco de dados aqui separado, está inclusive com uma cor diferente, ele é um banco maior, onde eu vou pegar todas as transações que ocorreram durante o dia, isso à noite, e eu jogo para esse outro banco aqui, ou seja, eu duplico a informação, vou copiar toda informação que está nos bancos de dados transacionais e copiar para esse banco.

De tal maneira que, no dia seguinte quando as transações voltarem a ocorrer novamente, porque começou o expediente, começou a ter venda, começou a contabilização, começou a ter registro de contas a receber, ou seja, as coisas começaram a acontecer.

E esse cara que está consultando o relatório, ele está consumindo os dados de um outro banco de dados, diferente daquele banco de dados de transações, e aí não há mais a concorrência, esse cara aqui, se ele achar que a nota fiscal está lenta, não é porque um diretor está pegando um relatório naquele momento, é porque realmente o banco está mal dimensionado, tem que melhorar.

Esse cara aqui também, na hora de emitir um relatório, ele não fica preocupado em rodar um relatório muito grande, e será que eu posso rotar esse relatório agora, porque agora é o pico das vendas, então vou esperar um pouco para emitir esse relatório, ele não precisa ter essa preocupação, porque cada um tem o seu banco de dados separado.

Esse banco de dados aqui tem um nome. Chamamos ele de Datawarehouse, a palavra datawarehouse, traduzindo do inglês para o português, significa armazém de dados, então temos dois tipos de bancos, os bancos de dados transacionais, e os bancos de dados de datawarehouse.

Podemos também chamá-los da seguinte maneira, os bancos transacionais são bancos de dados voltados para o operacional da empresa, então também podemos chamar eles de banco de dados operacionais.

Enquanto que os datawarehouse eles servem para emitir relatórios para tomada de decisão, então podemos chamar esses bancos, de bancos de dados gerenciais da empresa, eles tem algumas características diferenciadas.

Os bancos de dados transacionais tem uma estrutura mais complexa, por que mais complexa? Porque eu preciso além de armazenar o dado, controlar aquelas regras. Eu não posso deixar uma venda sair se o cliente não está no cadastro, eu não posso por exemplo, ter duas notas fiscais com mesmo número, existem regras nesse banco de dados transacional que eu preciso controlar, então para construí-lo eu tenho que ter um pouco mais de conhecimento, um pouco mais de complexidade do que os datawarehouses.

Os transacionais, eles gastam mais tempo na validação do dado, em outras palavras, gastamos mais tempo para manter o dado que chamamos de íntegro, manter a integridade dos dados.

Já os datawarehouses, como eles não se preocupam em armazenar as transações no momento que elas estão correndo, não é responsabilidade do datawarehouse controlar a transação correta naquele momento, dizemos que os datawarehouses, gastamos mais tempo em exibir os dados, eu preciso que esses banco sejam mais ágeis para exibir as informações.

Os bancos de dados transacionais, eles possuem os processos que chamamos de CRUD, que vem do inglês de create read update delete, ou seja, criar, ler, alterar e apagar dados do banco de dados.

Os processos CRUDs em um banco de dados transacional, eles são extremamente sofisticados, justamente porque eu estou controlando a transação, já nos datawarehouses o processo de CRUD, ele é mais simples, porque eu só vou ter uma gravação de dados em lote, em grande volume, e depois uma consulta desses dados para os relatórios.

Os transacionais precisam estar disponíveis que não 24 por 7, mas pelo menos durante o horário de expediente, porque se o banco para, para a empresa, a empresa depende daquele banco para funcionar.

Já os datawarehouses não precisam estar disponíveis com essa mesma necessidade de estar no ar ao longo do tempo, se o cara quer retirar um relatório por algum motivo, o banco está parado, simplesmente vai dar só uma dor de cabeça para ele porque ele não consegue ver o relatório naquele momento, mas isso não vai quebrar, prejudicar a empresa.

E é como eu falei, o transacional é voltado para o operacional da empresa, e os datawarehouses são voltados para o gerencial da empresa.

Pois bem, quais são os bancos de dados que temos no mercado que suportam os bancos de dados transacionais ou os datawarehouses? Quando falamos de banco de dados, que chamamos de relacionais, como por exemplo, SQL Server, Oracle, MySQL, aqueles banco de dados que possuem tabelas se relacionando entre si, podemos usá-los, tanto para bancos de dados transacionais, quanto para datawarehouses.

Porém, nosso treinamento é um treinamento de BigQuery, então eu posso afirmar a vocês que o Google BigQuery ele é desenhado para apenas usá-lo em datawarehouses, não vamos nunca usar o BigQuery para gravar transações, podemos até armazenar as transações, podemos colocar o dado em um nível extremamente detalhado das transações, mas para guardá-los e depois consultá-los, não para controlar o processo que está ocorrendo na empresa dentro do Google BigQuery, por quê?

Para aquelas características inclusive que eu já mencionei lá nos primeiros cursos de BigQuery, ele é um banco que suporta penta bytes, ele é um banco que tem todo o seu preparo voltado para performance da consulta, então você acaba eliminando certos controles que o banco de dados deixa de ter, que são importante se eles estivessem controlando as transações, o banco de dados datawarehouses não vai ter isso, ele vai ter menos processos internos que vão deixar eles mais rápido para fornecer os dados para relatórios, para análise gerenciais.

Então era isso que eu queria mostrar para vocês, a diferença entre esses dois bancos, os bancos de dados transacionais, que são os operacionais e os datawarehouses que são os gerenciais e dizer que o BigQuery, ele é feito apenas para construção de datawarehouses, então é isso ai gente, um abraço, até o próximo vídeo.

Conceitos - Bancos gerenciais

Vamos então começar? Vamos falar o seguinte, aqui em cima, nós temos aqui nesse slide, processos operacionais que ocorrem em uma empresa de varejo, que vende produtos através da internet, então quando a venda ela é efetivada, o cara entra no site e faz a venda, é emitida uma nota fiscal, essa nota fiscal é a comprovação de que aquela venda aconteceu.

Com aquela nota fiscal eu preciso contabilizar lá nos livros fiscais da empresa, que aquela venda aconteceu, eu tenho por exemplo que apurar os impostos que eu vou pagar, eu preciso colocar isso nos livros fiscais para que no final do mês, ou no final do período fiscal eu consiga apurar meu lucro para saber imposto de renda que a empresa vai pagar, enfim, existe toda uma contabilização daquela venda.

Ao mesmo tempo, eu preciso comunicar ao financeiro que eu vou ter um dinheiro para receber, referente aquela nota fiscal que foi emitida, essa contas a receber, pode ser à vista ou pode acontecer daqui a 30, 60, 90 dias, pode ser parcelada em várias parcelas, então eu preciso comunicar o cara do financeiro para ele poder fazer o fluxo de caixa da empresa,

Ao mesmo tempo eu preciso comunicar ao setor de estoque lá do armazém, que eu preciso tirar o produto que eu acabei de vender, embalar e enviar para o cliente produto, esse produto pode ser, sei lá, uma televisão, uma geladeira, qualquer coisa desse tipo, eu preciso tirar do estoque e entregar para o cliente.

Mas ao tirar do estoque, meu estoque vai diminuir, então eu preciso alertar o setor de compras do nível do meu estoque, para saber se eu tenho que comprar novas mercadorias para repor o estoque, por quê? Porque eu não posso ter no meu estoque nenhum produto para entregar.

E depois a área de marketing precisa entender quem foi esse cliente que fez essa venda para saber se ele faz parte de algum tipo de campanha, se faz parte de alguma iniciativa específica que a empresa fez para aumentar as vendas para saber se isso vai surtir um efeito esperado.

Existem pessoas que estão nessa empresa, que cada uma no seu departamento está através do que chamamos de um fluxo, um workflow de trabalho, executando o ciclo da venda, e esses ciclos acontecem dentro da empresa muitas vezes, dependendo do tamanho da empresa isso pode ser dezenas, centenas ou milhares de vezes por dia.

E é claro que sobre todo esse processo, eu tenho sistemas de tecnologia da informação, sistemas de TI, onde cada tipo de operação dessa está sendo colocada em um banco de dados, e aí eu posso não necessariamente ter um único banco de dados, mas eu vou ter por exemplo 3 bancos de dados e a cada processo de emissão de nota fiscal, contabilização, registro de contas a receber, esse banco de dados vai sofrendo mudanças.

Eventualmente alguma dessas operações podem dar problema, por quê? Porque cada um desses processos possuem regras muito bem definidas, por exemplo, eu não posso vender para um cliente que eu não tenho cadastro do cliente antes, como é que eu vou vender para alguém que eu não sei o CPF dessa pessoa, endereço.

Um produto, se eu vou vender um determinado produto, eu preciso já ter um cadastro de produtos previamente, porque eu já comprei esse produto, tenho que saber qual é o preço de compra para poder apurar, possível preço de venda dele em cima da margem de lucro que eu quero ter, então pode ser que às vezes, algum desses processos deem problemas, porque chamamos de problemas de integridade, alguma coisa que não está amarrada direito.

Tudo isso, todas essas operações, chamamos de sistemas transacionais, e pelo próprio nome que está mostrado ali, transacional significa uma transação, então digamos que todo esse processo, desde a emissão da nota fiscal, passando pela contabilização, quando receber estoque, compras e marketing, tudo isso é uma transação.

E aí a cada transação que vai acontecendo dentro da empresa, esses bancos vão sendo atualizados, e respeitando determinadas regras de validação, como por exemplo, acabei de mencionar agora, eu não posso vender para um cliente que não tem cadastro de cliente, eu não posso vender um produto que não tem no estoque, eu não posso vender um produto que eu ainda não tenho as especificações técnicas dele, e assim por diante.

Então os banco de dados transacionais, eles servem para armazenar e controlar as transações da empresa, e essas transações acontecem dezenas, centenas ou milhares de vezes durante o dia, enquanto a empresa está funcionando, quando a empresa para de funcionar o sistema transacional morre, ele não sofre nenhuma atualização, enquanto a empresa está funcionando, está correndo, está rolando, os sistemas transacionais estão sendo atualizados. Então é isso aí gente, continua essa história no próximo vídeo.

Sobre o curso BigQuery: Manipulação de dados

O curso BigQuery: Manipulação de dados possui 213 minutos de vídeos, em um total de 72 atividades. Gostou? Conheça nossos outros cursos de NoSQL em Data Science, ou leia nossos artigos de Data Science.

Matricule-se e comece a estudar com a gente hoje! Conheça outros tópicos abordados durante o curso:

Aprenda NoSQL acessando integralmente esse e outros cursos, comece hoje!

Plus

  • Acesso a TODOS os cursos da plataforma

    Mais de 1200 cursos completamente atualizados, com novos lançamentos todas as semanas, em Programação, Front-end, UX & Design, Data Science, Mobile, DevOps e Inovação & Gestão.

  • Alura Challenges

    Desafios temáticos para você turbinar seu portfólio. Você aprende na prática, com exercícios e projetos que simulam o dia a dia profissional.

  • Alura Cases

    Webséries exclusivas com discussões avançadas sobre arquitetura de sistemas com profissionais de grandes corporações e startups.

  • Certificado

    Emitimos certificados para atestar que você finalizou nossos cursos e formações.

  • Alura Língua (incluindo curso Inglês para Devs)

    Estude a língua inglesa com um curso 100% focado em tecnologia e expanda seus horizontes profissionais.

12X
R$85
à vista R$1.020
Matricule-se

Pro

  • Acesso a TODOS os cursos da plataforma

    Mais de 1200 cursos completamente atualizados, com novos lançamentos todas as semanas, em Programação, Front-end, UX & Design, Data Science, Mobile, DevOps e Inovação & Gestão.

  • Alura Challenges

    Desafios temáticos para você turbinar seu portfólio. Você aprende na prática, com exercícios e projetos que simulam o dia a dia profissional.

  • Alura Cases

    Webséries exclusivas com discussões avançadas sobre arquitetura de sistemas com profissionais de grandes corporações e startups.

  • Certificado

    Emitimos certificados para atestar que você finalizou nossos cursos e formações.

  • Alura Língua (incluindo curso Inglês para Devs)

    Estude a língua inglesa com um curso 100% focado em tecnologia e expanda seus horizontes profissionais.

12X
R$120
à vista R$1.440
Matricule-se
Conheça os Planos para Empresas

Acesso completo
durante 1 ano

Estude 24h/dia
onde e quando quiser

Novos cursos
todas as semanas