Arquitetura de Dados Flashcards

(25 cards)

1
Q

De onde surge a necessidade de criar uma arquitetura de dados?

A

A necessidade de criar uma arquitetura de dados surge quando a análise deixa de ser eficiente no sistema transacional. À medida que o volume e a complexidade dos dados aumentam, é preciso separar o ambiente de operação do ambiente de análise para garantir desempenho, organização e decisões mais estratégicas.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

O que é ACID?

A

ACID é um conjunto de quatro propriedades essenciais para garantir a confiabilidade das transações em um banco de dados transacional. Essas propriedades são:

  • Atomicidade: A transação deve ser executada completamente ou não ser executada de forma alguma. Exemplo: Você vai comprar dois itens no e-commerce e só quer que o pedido seja feito se os dois estiverem disponíveis no estoque. Se o segundo item acabar no meio do processo, a compra inteira é cancelada — não faz sentido pagar só pela metade.
  • Consistência: Antes e depois da transação, o banco de dados deve estar em um estado válido. As regras de negócio e integridade dos dados precisam ser respeitadas. *Exemplo: Um aluno não pode ser matriculado em uma disciplina sem estar vinculado a um curso. Se a transação tentar fazer isso, ela será rejeitada automaticamente, pois deixaria o banco de dados em um estado inválido.
  • Isolamento: Mesmo que várias transações estejam acontecendo ao mesmo tempo, o banco precisa garantir que elas não se misturem ou interfiram entre si. Exemplo: Duas pessoas tentam comprar o último ingresso para o cinema ao mesmo tempo. O sistema garante que somente uma delas finalize a compra, e a outra receba uma mensagem dizendo que esgotou. Ou seja, cada transação é processada de forma isolada, como se estivesse sozinha.
  • Durabilidade: Depois que uma transação é concluída com sucesso, ela não será perdida, mesmo que ocorra uma queda de energia ou falha no sistema. Exemplo: Você faz uma transferência bancária e recebe a confirmação. Mesmo que o sistema desligue segundos depois, a transferência não “some” ela foi registrada e será mantida quando o sistema voltar.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

O que é normalização?

A

É o processo de organizar os dados em um banco de dados relacional para: Reduzir redundância (evitar duplicação de dados) e garantir integridade (manter os dados corretos e consistentes).

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

Explique as 3 formas da normalização.

A

Primeira Forma Normal (1NF):

  • A tabela tem uma chave primária que identifica unicamente cada linha. Por exemplo: Na tabela funcionário há um ID Funcionário.
  • Cada célula contém apenas um valor atômico (sem listas, repetições ou múltiplos valores no mesmo campo). Por exemplo: a coluna telefone contém apenas um telefone por linha e não uma lista em uma célula( 119999-8888, 112222-3333)
  • Não há grupos repetitivos de colunas (como telefone1, telefone2, telefone3).

Segunda Forma Normal (2NF):

  • Atende a 1NF.
  • Todos os atributos que não são chave devem depender completamente da chave primária.
  • Se a tabela tem chave primária composta, nenhum atributo pode depender só de parte da chave.
  • Por exemplo: O departamento do funcionário deve ser determinado pelo ID do funcionário e não pelo nome dele.

Terceira Forma Normal (3NF):

  • Atende a 2NF.
  • Os atributos não chave devem depender apenas da chave primária, ou seja, não pode haver dependências transitivas.
  • Por exemplo: O superior imediato de um funcionário depende diretamente do ID_Funcionário. Se o superior for determinado pelo departamento, e o departamento for determinado pelo funcionário, temos uma dependência transitiva (funcionário → departamento → superior).
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

O que é schema?

A

É a estrutura formal que define como os dados estão organizados dentro do banco de dados. O schema define quais tabelas existem, quais campos cada tabela possui, os tipos de dados usados e as regras ou restrições aplicadas (como chaves primárias e estrangeiras).

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

Qual é a diferença entre schema-on-write e schema-on-read?

A
  • Schema-on-write: o esquema de dados é definido e imposto quando os dados são gravados e ingeridos no banco de dados. Os dados devem aderir ao esquema predefinido, incluindo os tipos de dados, as restrições e os relacionamentos, antes de poderem ser armazenados. Muito usado em Data Warehouses relacionais.
  • Schema-on-read: o esquema é aplicado quando os dados são lidos ou acessados, em vez de quando são gravados. Os dados podem ser inseridos no sistema de armazenamento sem estar de acordo com um esquema estrito, e a estrutura só é definida quando eles são consultados ou consumidos. Muito usado em Data Lakes.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

O que é a modelagem entidade-relacionamento?

A

A modelagem entidade-relacionamento (ER) é uma técnica usada para representar estruturalmente os dados de um sistema.
Ela descreve entidades (como “Cliente”, “Pedido”, “Produto”), seus atributos (como nome, valor, data) e os relacionamentos entre elas (por exemplo, “um cliente faz muitos pedidos”).

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

O que são índices e como funcionam?

A

São estruturas auxiliares que funcionam como um “índice de livro” para acelerar a busca e recuperação de dados.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

Quais são os tipos de índices que existem?

A
  • Índice clustered (agrupado): Reorganiza fisicamente os dados da tabela de acordo com a coluna indexada. Por exemplo: Reorganizar a tabela de acordo com o número do CPF. Quem tiver o menor número, vai receber índice 1. A tabela ficaria ordenada pelo CPF.
  • Índice non-clustered (não-agrupado): Cria uma estrutura separada que aponta para as linhas da tabela, sem mudar a ordem física da tabela original. Uma tabela pode ter múltiplos índices deste tipo.
  • Índice composto:Abrange múltiplas colunas, útil para consultas que filtram por várias colunas simultaneamente. Por exemplo: Em uma tabela de estado e cidades o índice vai ser criado a partir da combinação das colunas Estado e Cidade.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

Explique o que é o Data Warehouse Relacional ou Tradicional

A
  • Ano: 1984
  • Definição: é o local onde armazenamos e gerenciamos centralizadamente grandes volumes de dados estruturados copiados de várias fontes de dados para serem usados em relatórios de análise histórica e tendências de modo que a empresa possa tomar melhores decisões de negócio.
  • Tipo de armazenamento: relacional, onde os dados são organizados em tabelas (entidades) que se relacionam entre si através de chaves.
  • Tipo de esquema: schema-on-write
  • Single version of truth: significa que todos os dados contidos no data warehouse estarão armazenados em um formato padronizado e estruturado e representarão uma única e precisa versão das informações.
  • Por que usar um data warehouse relacional?
    Reduzir o estresse no sistema de produção
    Integrar várias fontes de dados
    Reestruturar e renomear tabelas → Facilita o usuário final fazer consultas, quando o nome da tabela é Customer e não T114.
  • Desvantagens:
    Altos custos
    Transformação de dados demorada → Latência de dados (quando os dados não estão atualizados com alterações mais recentes feitas nos bancos de dados de origem).
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

Explique o que é o Data Lake.

A
  • Ano: 2010
  • Definição: é o local onde armazenamos e gerenciamos centralizadamente grandes volumes de dados brutos em seu formato original, podendo ser dados estruturados, semi estruturados ou não estruturados.
  • Tipo de armazenamento: objetos, no qual os dados são organizados em documentos ou arquivos armazenados em buckets, como no Amazon S3, Azure Blob Storage ou Google Cloud Storage.
  • Tipo de esquema: schema-on-read
  • Por que usar um data lake?
    Alta escalabilidade e baixo custo para armazenar grandes volumes de dados.
    Suporta múltiplos de dados
    Permite a ingestão de dados de forma ágil, sem necessidade de padronização prévia.
  • Desvantagens:
    Pode virar um “data swamp” (pântano de dados) se não houver governança adequada.
    Desempenho mais baixo em consultas comparado a bancos otimizados (como DWH).
    Complexidade para garantir qualidade, segurança e catalogação dos dados.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

Explique o que é um Data Warehouse Moderno.

A
  • Ano: 2011
  • Definição: É um tipo de arquitetura de dados que permite armazenar e gerenciar os dados, passando por dois repositórios: o Data Lake e o Data Warehouse Relacional.
    O Data Lake é utilizado como camada de staging, onde os dados são armazenados de forma bruta e passam por transformações e enriquecimento. O Data Warehouse entra na etapa final, sendo responsável pela disponibilização segura e estruturada dos dados, com foco em governança, performance analítica e conformidade.
  • Tipo de armazenamento: Relacional e objetos
  • Tipo de Esquema: Schema-on-read e schema-on-write
  • Por que usar um data warehouse moderno?
    Flexibilidade: Combina a escalabilidade do cloud com estrutura relacional
    Escalabilidade: são projetados para crescer com a empresa.
    Melhor desempenho: oferece maior rapidez no desempenho das consultas.
    Maior segurança: implementa medidas de segurança sólidas para proteger dados sigilosos.
  • Desvantagens:
    Complexidade arquitetural: Requer gerenciamento de múltiplas tecnologias
    Custos elevados: Infraestrutura dupla (Data Lake + Data Warehouse)
    Latência no ETL: Tempo adicional para processamento entre camadas Dependência de especialistas: Necessita profissionais com conhecimento em ambas as tecnologias
    Possível redundância de dados: Dados podem ser duplicados entre as camadas
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

Explique o que é o Data Fabric.

A
  • Ano: 2016
  • Definição: é uma evolução da arquitetura do Data Warehouse moderno, com recursos adicionais que visam melhorar a segurança, acessibilidade e disponibilidade dos dados.

O Data Fabric possui 8 recursos adicionais principais:
1. Políticas de acesso a dados
2. Catálogo de metadados: Garante que todos os ativos de dados sejam descobertos, documentados e rastreados, promovendo data discovery, data lineage e reutilização de dados.
3. Gerenciamento de dados mestres (MDM): Unifica dados críticos de negócios, como clientes e produtos, eliminando duplicidades e inconsistências, essencial para garantir integridade e confiança.
4. Virtualização de dados: Permite acessar dados em tempo real de múltiplas fontes sem necessidade de movê-los fisicamente, reduzindo latência e replicação desnecessária.
5. Processamento em tempo real
6. APIs: Facilita a integração com sistemas externos.
7. Serviços: Funcionalidades modulares e reutilizáveis (como validação, enriquecimento e transformação de dados) que podem ser aplicadas de forma orquestrada em pipelines.
8. Produtos: Dados organizados como “produtos” com SLAs definidos, responsáveis e consumidores claros um passo em direção à mentalidade do Data Mesh, mas ainda com uma governança centralizada.

  • Tipo de armazenamento: Relacional e objetos
  • Tipo de Esquema: Schema-on-read e schema-on-write
  • Por que usar um data fabric?
    Integração universal: Conecta dados de qualquer fonte, formato ou localização
    Processamento em tempo real: Suporte nativo para streaming e batch
    Governança automatizada: IA para catalogação, qualidade e segurança dos dados
  • Desvantagens:
    Alta complexidade: Implementação e manutenção extremamente complexas
    Custo proibitivo: Investimento inicial e operacional muito elevado
    Curva de aprendizado íngreme: Requer especialização técnica avançada
    Over-engineering: Pode ser excessivo para necessidades simples
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

Explique o que é o Data Mesh.

A
  • Ano: 2019
  • Definição: É uma abordagem descentralizada para arquitetura de dados, baseada na ideia de que cada domínio de negócio dentro da empresa é responsável por seus próprios dados, desde a captura e limpeza até a disponibilização para uso analítico.
    Nesse modelo, os dados não ficam centralizados em uma única equipe ou plataforma. Em vez disso, cada domínio (ex: marketing, vendas, financeiro) atua como um produtor de dados, com suas próprias equipes técnicas, que cuidam da qualidade, modelagem e disponibilização dos dados como produtos reutilizáveis.
  • Tipo de armazenamento: Específico de domínio
  • Observação: O Data Mesh não é uma tecnologia, mas sim um conceito organizacional e arquitetural.
  • Tipo de Esquema: Específico de domínio
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q

Explique o que é o Data Lakehouse.

A
  • Ano: 2020
  • Definição: É uma arquitetura que combina as capacidades do Data Lake com as funcionalidades analíticas e transacionais de um Data Warehouse, oferecendo o melhor dos dois mundos em um único repositório.
    Diferente do modelo tradicional, o Lakehouse dispensa o uso de um Data Warehouse relacional separado, permitindo que todos os tipos de dados (estruturados, semiestruturados e não estruturados) sejam ingeridos e armazenados diretamente no Data Lake, e que consultas, relatórios e análises sejam realizados a partir dele.

O diferencial em relação ao Data Lake está na adição de uma camada de software de armazenamento transacional, chamado Delta Lake, que é executada sobre o Data Lake existente. Essa camada permite:
1. Controle de versões (time travel);
2. Transações ACID;
3. e estruturação de dados com performance semelhante a bancos relacionais.

Tipo de armazenamento: Objetos

Tipo de Esquema: Schema-on-read

Por que usar um data lakehouse?
Arquitetura simplificada: Uma única plataforma para todos os tipos de dados
Custo-benefício: Elimina redundância de infraestrutura
Flexibilidade total: Suporte nativo para dados estruturados e não estruturados
Performance analítica: Velocidade comparável aos Data Warehouses tradicionais
Controle transacional: Transações ACID garantem consistência dos dados
Versionamento: Time travel permite auditoria e recuperação de dados
Open source: Tecnologias abertas reduzem vendor lock-in

Desvantagens:
Complexidade na governança dos dados: os metadados não precisam estar com os dados, podem estar em arquivos separados ou até mesmo pastas separadas, tornando difícil de encontrar caso não haja uma boa governança.
O Delta Lake não tem algumas das proteções comuns de segurança do Data Warehouse, como segurança no nível das linhas, a segurança no nível das colunas, mascaramento dinâmico, etc.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
16
Q

Qual é a diferença entre OLTP e OLAP?

A

Tanto o OLTP quanto o OLAP dizem respeito a formas de processar os dados de um sistema, mas com objetivos e características completamente diferentes.

OLTP (Online Transaction Processing): Sistema voltado para o registro de transações do dia a dia, como vendas, cadastros e pagamentos.

  • Foco: velocidade, confiabilidade e integridade das transações.
  • Operações típicas: CRUD (Create, Read, Update, Delete).
  • Estrutura dos dados: altamente normalizada, para evitar redundâncias e garantir consistência.
  • Velocidade: exige respostas em milissegundos.
  • Volume de dados: processa muitas transações pequenas por segundo.
  • Exemplo: Toda vez que uma compra é registrada no caixa de um supermercado, o sistema executa uma transação rápida e confiável no banco de dados, buscando o produto, atualizando o estoque e salvando a venda. Isso é possível graças ao processamento transacional (OLTP), que garante alta performance e integridade mesmo com milhões de transações por dia.

OLAP (Online Analytical Processing): Sistema projetado para análise de grandes volumes de dados históricos, com foco em suporte à tomada de decisão estratégica.

  • Foco: consultas analíticas complexas, agregações e análises multidimensionais.
  • Operações típicas: leitura de dados com cálculos e filtros complexos.
  • Estrutura dos dados: desnormalizada (como em modelos estrela ou floco de neve), para otimizar a performance de leitura.
  • Velocidade: aceita tempo de resposta maior, priorizando profundidade analítica.
  • Volume de dados: trabalha com grandes volumes consolidados de dados históricos
  • Exemplo: Depois que milhares de compras foram registradas nos caixas do supermercado ao longo do mês, os dados dessas transações são enviados para um banco de dados analítico. Lá, eles são organizados de forma otimizada para responder perguntas estratégicas, como: Quais produtos mais venderam por região? Em que dia da semana as vendas são mais altas? Qual foi o ticket médio de compras em março?
17
Q

Qual é a diferença entre a modelagem dimensional e relacional?

A

A modelagem relacional é baseada na normalização e segue os princípios ACID, organizando dados em tabelas interconectadas para eliminar redundâncias. É ideal para sistemas transacionais (OLTP) onde a integridade e consistência são fundamentais. As tabelas são altamente normalizadas, com relacionamentos complexos através de chaves estrangeiras.

A modelagem dimensional é otimizada para análise e consultas, organizando dados em esquemas star ou snowflake com tabelas de fatos centrais cercadas por tabelas de dimensões. É projetada para data warehouses (OLAP), priorizando performance de leitura sobre normalização, permitindo alguma redundância para facilitar consultas analíticas.

18
Q

Qual é a diferença entre a arquitetura Lambda e Kappa?

A

Arquitetura Lambda combina processamento em lote (batch) e tempo real (stream) em dois caminhos paralelos. O batch layer processa dados históricos completos, enquanto o speed layer processa dados em tempo real. Os resultados são combinados na serving layer. É mais complexa, mas oferece maior precisão e capacidade de reprocessamento.

Arquitetura Kappa simplifica o processo usando apenas stream processing para todos os dados, tratando dados históricos como um stream muito rápido. É mais simples de implementar e manter, mas pode ser limitada para casos que exigem processamento batch complexo ou reprocessamento completo de grandes volumes históricos.

19
Q

Qual é a diferença entre as metodologias de data warehousing de Kimball e Inmon?

A

Metodologia top-down de Inmon

  • A abordagem de Bill Inmon segue uma estratégia top-down (de cima para baixo):
  • Os dados são extraídos de um sistema de origem e enviados para tabelas de staging relacionais o mais rápido possível, sem transformá-los ou limpá-los.
  • Os dados são copiados no que Inmon chama de CIF (Corporate Information Factory, em que todos os dados são centralizados e armazenados no nível atômico na terceira forma normal (3NF).
  • A ideia do CIF é construir uma fonte única da verdade.
  • A partir do CIF, é criado data marts dependentes, isto é, subconjuntos de dados físicos separados, geralmente criados para fornecer dados para cada departamento.
  • Em resumo, Inmon cria um DW normalizado antes de criar os data marts.

Metodologia bottom-up de Kimball

  • A abordagem de Ralph Kimball segue uma estratégia bottom-up (de baixo para cima):
  • Os dados são extraídos de um sistema de origem e enviados para tabelas de staging relacionais o mais rápido possível, sem transformá-los ou limpá-los.
  • Os dados das tabelas de staging são copiados para data marts independentes que atendem necessidades analíticas dos departamentos.
  • Esses data marts independentes usam um modelo dimensional e são armazenados no nível atômico ou de resumo. Além disso, são integrados para manter a consistência dos dados por meio de um barramento de DW, que podemos considerar como um data warehouse conformado.
  • Em resumo, Kimball salta a etapa do DW normalizado.
20
Q

O que são data marts?

A

É um subconjunto de um data warehouse projetado para atender necessidades específicas de um departamento ou uma linha de negócio de uma empresa.

21
Q

O que são data hubs?

A

Data Hub é uma camada central que integra e distribui dados entre sistemas, padronizando e organizando informações de diversas fontes para facilitar sua reutilização em tempo real ou quase real.

22
Q

Quais são os métodos de extração dos dados?

A

Extração total: Coleta todos os dados da fonte de origem, independentemente de alterações. Funciona melhor quando o volume de dados é pequeno.

Extração incremental: Coleta apenas os dados que foram inseridos, modificados ou excluídos desde a última extração. Mais usado quando o volume de dados é muito grande.

23
Q

Como sabemos quais dados mudaram desde a última extração?

A

Timestamps: Algumas tabelas possuem colunas que armazenam a data e hora da última modificação (last_updated, por exemplo). Essa informação permite filtrar apenas os registros alterados desde a última extração.

Captura de dados de alteração: A Captura de Dados de Alteração utiliza os logs de transação do banco de dados para registrar o que mudou, quando e onde. É uma solução robusta e eficiente, geralmente oferecida de forma nativa em bancos como SQL Server, Oracle e PostgreSQL (com plugins).

Os logs de transação: São arquivos internos que todo banco de dados relacional mantém para garantir que tudo funcione de forma segura e consistente. É como se o banco anotasse em um “caderno” qual foi a operação (insert, update ou delete), qual tabela e linha foram afetadas, quando isso aconteceu e qual era o valor antes e depois da alteração.

Particionamento: Alguns sistemas de origem utilizam particionamento baseado em uma chave de data, o que facilita a localização dos dados alterados em um intervalo específico (como “dados de ontem”). Isso torna a extração incremental mais simples e eficiente.

Acionadores de banco de dados: Em sistemas que não oferecem CDC nativo, é possível criar triggers nas operações de INSERT, UPDATE e DELETE para registrar as alterações em uma tabela auxiliar. Essa abordagem exige mais cuidado com performance, mas pode ser uma boa alternativa.

Instrução MERGE: Essa técnica consiste em extrair todos os dados da origem para uma área de staging e então comparar com a versão anterior da tabela usando comandos MERGE, EXCEPT ou JOINs. Embora funcional, é a menos recomendada por ser custosa e lenta, especialmente com grandes volumes.

24
Q

O que é o ETL Reverso?

A

É o processo de mover dados de um data warehouse moderno para um sistema operacional ou para sistemas de terceiros a fim de tornar os dados analíticos em dados operacionais.

Caso de uso: Suponha que você fez a ingestão de dados de clientes em seus DW e depois limpasse e gerenciasse com mestres (ELT). Após isso, poderia então copiar esses dados em vários sistemas SaaS, como o Salesforce, para obter uma visão consistente de cada cliente em todos os sistemas.

25
**Qual é a diferença entre um design SMP e MPP?**
**SMP (symmetric multiprocessing - multiprocessamento simétrico)** Em um banco de dados com design SMP, o processamento é do computador é feito por vários processadores que compartilham disco e memória, tudo em único servidor. Para escalar, é necessário crescer verticalmente (scale-up), ou seja, adicionar mais recursos ao mesmo servidor (como mais CPU ou RAM). **MPP (massively parallel processing - processamento massivamente paralelo)** Em um banco de dados com design MPP, o banco de dados tem vários servidores, todos com diversos processadores e, ao contrário do SMP, cada processador tem a própria memória e o próprio disco. Isso permite aumentar a escala horizontalmente (scale-out) pelo acréscimo de mais servidores.