Alura > Cursos de Data Science > Cursos de SQL e Banco de Dados > Conteúdos de SQL e Banco de Dados > Primeiras aulas do curso Google BigQuery: manipulação de dados

Google BigQuery: manipulação de dados

Conjunto de dados - Apresentação

Olá, tudo bem? Meu nome é Victorino Vila e acompanharei você neste curso de Big Query: Manipulando Dados.

Audiodescrição: Victorino é um homem de pele clara, com cabelos curtos e grisalhos, e um cavanhaque escuro rente ao rosto. Está vestindo uma camiseta preta. À sua frente, um microfone apoiado por um braço articulado. Ao fundo, uma parede iluminada por um degradê de tons de azul.

O que vamos aprender?

Este curso é destinado a pessoas que desejam aprender a projetar e carregar conjuntos de dados no Big Query.

Neste curso, continuaremos acompanhando a empresa Belleza Verde, agora em seu desafio de projetar e criar tabelas no Big Query. Além disso, vamos construir políticas de carga e atualização de dados.

Com este curso, você será capaz de projetar um banco de dados no Big Query e atualizar os dados de diversas maneiras, seja por meio do Big Query Studio, do console do Google, ou mesmo por meio do Google Cloud Shell. Você também aprenderá a ler arquivos CSV locais da sua máquina ou armazenados no Google Storage.

Pré-requisitos

Para aproveitar este conteúdo, recomendamos que você tenha conhecimento de SQL e tenha seguido todos os cursos anteriores da formação de Big Query.

Tudo pronto para o desafio? Temos certeza de que este curso trará para você um diferencial na tecnologia do Big Query.

Muito obrigado e até o próximo vídeo!

Conjunto de dados - Compreendendo o conjunto de dados

Em cursos anteriores a este, nesta formação de BigQuery, entendemos que o conjunto de dados é a entidade essencial para começar a criar e organizar uma base de dados no BigQuery. Os conjuntos de dados atuam como um contêiner que organiza as tabelas, views e procedimentos, facilitando a gestão e análise de grandes volumes de dados.

Um desafio para entendermos melhor o BigQuery é compreender as características específicas, as limitações e as diferentes formas de criação de um conjunto de dados. Essas compreensões são fundamentais para aproveitarmos ao máximo a capacidade do BigQuery, evitando surpresas relacionadas a custos, desempenho e até segurança.

Neste vídeo, vamos conhecer as diferentes maneiras existentes de se criar conjuntos de dados e entender as limitações de cada um durante a sua criação.

O que é um conjunto de dados?

Quando trabalhamos com o BigQuery, nossa primeira tarefa é criar um conjunto de dados. O conjunto de dados seria o equivalente a um banco de dados na estrutura de um modelo relacional tradicional. Qualquer componente do BigQuery, como tabelas, campos e dados, estará sempre associado a um conjunto de dados.

Criação via Google Cloud

Podemos criar um conjunto de dados de várias maneiras, e a mais fácil é por meio do console do Google Cloud. Foi o que fizemos quando iniciamos a formação do BigQuery e construímos o conjunto de dados para o estudo de caso sobre a Belleza Verde, que estamos usando como exemplo nesta formação.

Criação via Google Shell

Também podemos criar o conjunto de dados por meio do Google Shell, uma área de linhas de comando.

Mas, claro, o Google Shell não serve só para criar conjunto de dados. Podemos executar qualquer comando de recurso da nuvem Google, não somente os que estão relacionados com o BigQuery.

Criação via APIs

Outra maneira de criar conjunto de dados é por meio de APIs. Um dos métodos possíveis para isso, por exemplo, é o chamado Datasets.insert.

Criação via linguagens de programação

Existem bibliotecas externas associadas às linguagens de programação. Isso significa que podemos criar o conjunto de dados *por meio de um programa Java, Python, C#, entre outros*.

Criação via cópia

Podemos também copiar um conjunto de dados de um repositório para outro, tudo isso dentro do mesmo projeto.

Restrições do conjunto de dados

A criação do conjunto de dados também possui algumas limitações:

1. Definição do local geográfico somente na criação do conjunto de dados: quando criamos o conjunto de dados por meio do BigQuery no primeiro curso, precisamos definir que o conjunto de dados ficaria no local geográfico da nuvem. Essa definição é realizada no momento da criação e depois não podemos mais modificar.

2. Todas as tabelas de uma consulta do BigQuery devem estar no mesmo conjunto de dados: quando executarmos um comando SELECT, por exemplo, consultando dados de diversas tabelas, devemos nos limitar a chamar tabelas de um mesmo conjunto de dados, somente.

3. Nome do conjunto de dados único dentro do mesmo projeto: em um projeto, o conjunto de dados tem um nome, e esse nome, claro, deve ser único e exclusivo.

4. Cópia de dados de tabelas limitada ao mesmo conjunto de dados: quando copiamos dados de uma tabela para outra, ambas devem estar sempre no mesmo conjunto de dados. Não podemos transferir dados de uma tabela de um conjunto de dados para outro conjunto de dados de forma direta.

5. Nome do conjunto de dados limitado a 1024 caracteres: não criamos conjuntos de dados com nomes muito extensos, principalmente para não prejudicar o tamanho das nossas consultas, já que o nome do conjunto de dados faz parte do nome da tabela quando executamos um comando SELECT.

6. O nome do conjunto de dados pode ter apenas letras (maiúsculas ou minúsculas), números e sublinhado: não podemos inserir no nome caracteres especiais, como o "e" comercial (&), arroba (@), percentual (%), traço (-) e espaço em branco.

7. Nome do conjunto de dados é sensível a maiúsculas e minúsculas: isso significa que, se você definir o nome do conjunto de dados com a primeira letra maiúscula e as outras minúsculas, quando você for se referir a este conjunto de dados em uma consulta, o nome deve ser escrito exatamente como foi definido, com a primeira letra maiúscula e as outras minúsculas. Se escrevermos esse nome, por exemplo, com todas as letras minúsculas ou maiúsculas, teremos um erro.

Essas são as restrições da criação de um conjunto de dados, que servem como regras a serem seguidas.

A seguir, criaremos novos conjuntos de dados no BigQuery de diversas maneiras. Obrigado e até o próximo vídeo!

Conjunto de dados - Criando o conjunto de dados pelo Google Console

A partir de agora, vamos explorar diversas maneiras de criar um conjunto de dados. Iniciaremos pelo console da nuvem Google, chamado Google Console Cloud.

Apesar de a interface do console da nuvem Google ser projetada para ser bastante intuitiva, a criação de um conjunto de dados envolve uma série de decisões importantes que podem influenciar a eficiência, segurança e até os custos das operações futuras da empresa no Big Query.

As pessoas que vão criar o conjunto de dados precisam entender não apenas como fazer isso, mas também como configurar corretamente as opções que se apresentam durante a criação de um conjunto de dados.

Por isso, vamos aprender a criar esse conjunto de dados no console da nuvem Google, analisando detalhadamente todas as opções apresentadas.

Criação do conjunto de dados e definição de suas propriedades

Já criamos um conjunto de dados pelo console da nuvem Google, então vamos apenas recapitular.

Na aba "Explorer", à esquerda da página inicial do Google Cloud, clicamos com o botão direito no menu de três pontos à direita do nome do nosso projeto, no diretório raiz. Selecionamos a opção "Criar Conjunto de Dados". Isso abrirá uma aba à direita da tela.

Primeiramente, damos um nome para o conjunto no campo de texto "Código do conjunto de dados". Precisamos respeitar as regra de nomeação que conhecemos no vídeo anterior: usar apenas letras, números ou sublinhados. Então, ele pode se chamar belleza_verde_vendas_dev ("dev" de "desenvolvimento").

A seguir, selecionaremos a localização desse conjunto de dados, na seção "Tipo de local". Essa informação é muito importante!

Por exemplo, suponhamos que esteamos criando um conjunto de dados para uma empresa localizada no Brasil, e todas as empresas no Brasil estão sujeitas à Lei Geral de Proteção de Dados Pessoais (LGPD).

Se não escolhermos uma região para armazenar esses dados no Brasil, isso pode violar, em alguns casos, a LGPD. Portanto, é importante escolher a região que diga respeito ao uso dos dados, por exemplo, southamerica-east1 (São Paulo). Ao criar o conjunto de dados nessa região, garantimos que os dados respeitam os limites geográficos adequados.

Outro ponto importante ao selecionar a região onde o conjunto de dados será armazenado é a latência. Por exemplo, se todos os usuários dessa empresa estão no Brasil, se criarmos um conjunto de dados na Ásia, mesmo que o acesso seja feito pela internet, haverá uma latência - um tempo entre a consulta ir até a base e trazer de volta os dados solicitados. Isso pode prejudicar a nossa performance.

Na seção seguinte dessas configurações iniciais, definimos se vamos ativar a "Expiração da tabela padrão", na checkbox que vem desativada por padrão. Essa informação é relevante porque é possível que no nosso conjunto de dados possamos criar um processo chamado "ciclo de vida dos dados".

Suponhamos que no nosso conjunto de dados temos tabelas temporárias ou de testes, que sabemos que depois de um determinado período devem ser excluídas. Se marcarmos essa ativação, conseguiremos gerenciar essa exclusão de forma automática.

Isso também traz outras vantagens, como controlar os custos de armazenamento. Afinal, não podemos receber cobranças por dados que estão gravados no conjunto mas que não usamos mais. Se não gerenciarmos isso adequadamente, podemos pagar um valor maior que o devido. Ao ativar a eliminação de tabelas de forma automática, podemos evitar cobranças desnecessárias.

Outro ponto importante sobre isso é, novamente, em relação à LGPD. Quando armazenamos dados pessoais, pela regulamentação da lei, devemos manter esses dados apenas pelo tempo necessário. Depois de algum tempo, temos a obrigação de apagar esses dados. Então, ativando a expiração de tabela, gerenciamos a vida útil das tabelas de maneira automática.

Propriedades avançadas

Expandindo as "Opções avançadas", temos outras opções de configuração.

A primeira é a Criptografia. Podemos optar pela criptografia padrão do Google ou por uma criptografia de proteção maior, na opção de chave de criptografia gerenciada pelo cliente (CMEK).

Por que isso é importante? Porque pode ser que muitos dados armazenados nesse conjunto de dados contenham informações sensíveis, como dados financeiros e pessoais, e a criptografia ajuda a protegê-las. No Brasil, a LGPD exige a criptografia de dados pessoais dos clientes para garantir a sua segurança.

Falando em segurança, a criptografia atua também como uma última linha de defesa contra potenciais ataques cibernéticos por parte de hackers. Com isso, mesmo que as medidas de segurança falhem, quando o hacker conseguir acessar o dado, ele estará criptografado e impossível de entender ou extrair qualquer informação.

Outra opção avançada importante, que podemos ativar ou manter desativada, é a não diferenciação entre letras maiúsculas e minúsculas nos nomes das tabelas.

Ao ativar essa opção, fica mais simples dar um nome para uma tabela do conjunto de dados e referenciá-la. Afinal, não precisamos lembrar se determinada tabela tem letra maiúscula ou minúscula no início ou no fim do seu nome. Podemos escrever os caracteres independentemente da caixa, alta ou baixa, e o nome da tabela será compreendido.

Também podemos ativar ou não a opção avançada de Ordenação padrão. Se ativarmos essa opção, os dados estarão sempre ordenados por um critério a definir, exceto se utilizarmos a cláusula ORDER BY em um comando SQL.

O "Default Rounding Mode" é uma opção relacionada ao algoritmo que vamos usar para arredondar números decimais. Temos o algoritmo default, padrão, mas podemos escolher entre algumas opções possíveis, expandindo a lista dropdown.

A penúltima configuração avançada é o Modelo de faturamento do conjunto de dados, que podemos escolher. Por padrão, o modelo de faturamento é por bytes lógicos, ou seja, os bytes que trafegam na nossa consulta. Mas podemos trocar para um modelo de faturamento baseado no armazenamento físico, ou seja, vamos pagar pelos bytes armazenados e não pelos bytes consultados.

Por fim, temos a configuração de Janela de viagem do tempo, cujo padrão é de sete dias. O que significa isso? Essa funcionalidade fornece a capacidade de visualizar e restaurar os dados conforme um ponto anterior no tempo. Com isso, conseguimos recuperar dados históricos, fazer auditoria e fazer uma análise histórica da alteração desse dado.

No momento, não vamos ativar nenhuma dessas opções, mas é importante que você saiba o que elas significam.

Então vamos clicar em "Criar Conjunto de Dados" na parte inferior da apa. Ao fazer isso, já podemos conferir nosso novo conjunto de dados belleza_verde_vendas_dev no menu Explorer, à esquerda da tela.

Clicando nele, conseguimos conferir as propriedades desse conjunto de dados, como ID, data de criação, validade da tabela padrão, última modificação, local dos dados, etc.

Definindo permissões de compartilhamento

Uma configuração importante a fazer diz respeito à segurança desse conjunto de dados em relação ao acesso das informações por outras pessoas.

Se clicamos em "Compartilhamento", no menu superior do conjunto de dados, podemos definir as Permissões de acesso.

Vamos imaginar, por exemplo, que desejamos que apenas um grupo específico de analistas de dados possam consultar as informações. Mas, para a equipe de desenvolvimento, um outro grupo de pessoas, não basta apenas consultar. Essa equipe precisa ter permissão para atualizar as estruturas ou adicionar novas tabelas. Podemos, então, configurar esses acessos na aba de "Compartilhar permissões".

Criamos o nosso conjunto de dados pela interface console da nuvem Google e entendemos as propriedades do conjunto de dados!

Nos próximos vídeos, conheceremos outras formas de criação dos conjuntos de dados. Até lá!

Sobre o curso Google BigQuery: manipulação de dados

O curso Google BigQuery: manipulação de dados possui 191 minutos de vídeos, em um total de 66 atividades. Gostou? Conheça nossos outros cursos de SQL e Banco de Dados 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 SQL e Banco de Dados acessando integralmente esse e outros cursos, comece hoje!

Conheça os Planos para Empresas