-
Objetivos do módulo 1:
- Identificar como os dados são definidos e armazenados;
- Identificar características de dados relacionais e não relacionais;
- Descrever e diferenciar cargas de trabalho de dados;
- Descrever e diferenciar dados de lote e de streaming.
-
O que são dados? Coleção de fatos, informação, números, descrições, objetos, armazenados de maneira estrruturada, semiestruturada, não estruturada. Esses dados servem para guiar a empresa/organização em determinadas tomadas de decisões ou até mesmo para trazer resultados em planejamentos, vendas...
-
Tipos de dados:
- Estruturados: É o que a maioria dos devs estão acostumados a trabalhar. São banco de dados relacionais, onde temos ``tabelas
/tables,
colunas`/columns e `linhas`/rows; - Semiestruturados: É o que devs de front-end estão mais habituados a trabalhar, que nada mais é que dados em objetos JSON, consumindo API's e trazendo esses dados. Podem ser percitidos em bancos de dados NoSQL/Não relacionais;
- Não estruturado: Pode ser um documento, uma foto, um áudio, um vídeo.
- Estruturados: É o que a maioria dos devs estão acostumados a trabalhar. São banco de dados relacionais, onde temos ``tabelas
-
Armazenamento de dados transacional x analítico: Temos alguns formatos de armazenamento de dados, ou seja, transações de modelos de armazenamento.
- Um deles é o
Transacional
,Transações on-line
que é oOnline Transactions Processing/Processamento Transações Online(OLTP)
, nele podemos guardar arquivos que fazemos upload durante uma transação, uma tabela armazenando cliente e pedidos desse cliente(banco de dados transacional). - E outro é o
Analítico
que é oOnline Analytic Processing/Processamento Analítico Online(OLAP)
, que ficou muito famoso no começo da década de 2000 por ser um processamento em lote e depois era transportado para alguma ferramenta de analytics e gerava insights com gráficos.
- Um deles é o
Pergunta: Temos uma solução hoje que precisamos guardar as informações de cada venda(quem é o cliente, qual foi o produto, preço)... onde armazenamos isso? Em um OLTP - Online Transactions Processing
ou em um OLAP - Online Analytic Processing
?
Resposta: OLTP, porque estamos armazenando cada item.
Se no final do dia precisássemos processar o lote de transações ou de vendas faria todo sentido realizar um OLAP para extrair no final do dia e/ou final do mês o volume de dados/informações e levar para o cubo/alguma ferramenta de analytics e gerar insights com gráficos.
- Quando fazemos transações
OLTP - Online Transactions Processing/Processamento Transações Online
precisamos seguir algumas informações, como por exemplo,Cargas de trabalho transacionais - ACID
: Os dados transacionais são informações que rastreiam as interações relacionadas às atividades de uma organização.- Atomicidade: cada
transação
é tratada como umaunidade independente
que resulta em sucesso completo ou falha completa; Ex.: Duas pessoas estão comprando o mesmo item, mas cada transação é tratada de forma independente, ou seja, um comprou o item X1 e outro o item X2. - Consistência: as transações só podem conduzir os dados do banco de dados de um estado válido para outro estado válido; Ex.: As duas pessoas do exemplo da compra anterior irão pagar via pix, então, ao fazerem as transações os dados serão validados.
- Isolamento: a execução concorrente de transações deixa o banco de dados no mesmo estado; Ex.: Depois dos dados serem validados(verificada a consistência), em seguida precisamos isolar essas transações e é necessário que o estado do banco precisa ser válido, a tabela/entidade que iremos armazenar esses dados está no estado válido, qualquer transação que seja feita e não deixa ela válida, roda o rouback e volta a transação do começo.
- Durabilidade: assim que uma transação tiver sido confirmada, permanecerá assim.
- Atomicidade: cada
Resumindo, uma transação ACID é garantir que a transação que está sendo aberta é única(atomicidade), ela é consistênte, ela é isolada e duravél.
- Quando fazemos transações
OLAP - Online Analytic Processing//Processamento Analítico Online
precisamos seguir algumas informações, como por exemplo,Cargas de trabalho analíticas
: As cargas de trabalho analíticas são usadas para análise de dados e tomada de decisões.- Resumos;
- Tendências;
- Informações comerciais.
- Processamento de dados:
O processamento de dados é a conversão de dados brutos em informações relevantes por meio de um rocesso.
- Processamento em lotes: os elementos de dados são reunidos em um grupo. Então, o grupo inteiro é processado em um momento futuro como um lote;
- Processamento de streaming: cada novo dado é processado quando chega.