Table of Contents
Conceitos Básicos de Armazenagem de Dados
Uma compreensão sólida dos fundamentos de armazenamento de dados é a primeira coisa que os entrevistadores avaliam. Você precisa não só definir termos, mas também explicar como eles se aplicam em cenários do mundo real.
O que é um depósito de dados?
Um data warehouse é um repositório centralizado que armazena grandes volumes de dados históricos estruturados de vários sistemas de origem. É otimizado para consulta e análise em vez de processamento de transações. Data warehouses suportam atividades de inteligência empresarial, como relatórios, painéis e análises ad-hoc. Ao contrário de bancos de dados operacionais, um data warehouse mantém dados integrados, orientados para o assunto, variáveis no tempo e não volátil.
Quais são as características-chave de um armazém de dados?
- Objecto orientado: Organizado em torno de assuntos principais (por exemplo, clientes, produtos, vendas) em vez de processos de aplicação.
- Integrado:] Os dados de fontes díspares são limpos, transformados e padronizados em um formato consistente.
- Non-volátil: Os dados são lidos apenas uma vez carregados; as mudanças históricas são rastreadas através do versioning, não sobrescritas.
- Variante temporal:Os dados contêm atributos da dimensão temporal (por exemplo, selos de data, períodos) para apoiar a análise histórica.
Como é que um armazém de dados difere de um lago de dados?
Um data lake armazena dados brutos e não processados em seu formato nativo (estruturado, semiestruturado ou não estruturado). Um data warehouse armazena dados processados, limpos e estruturados. As organizações usam frequentemente tanto: o lago para análise exploratória e aprendizagem de máquina, quanto o armazém para relatórios estruturados. Os entrevistadores podem perguntar sobre os casos de uso em que um é preferido.
O que é uma Loja de Dados Operacionais (ODS)?
Um ODS é uma base de dados concebida para integrar dados de vários sistemas operacionais para relatórios em tempo quase real. Ao contrário de um armazém de dados, o ODS é atualizado frequentemente (muitas vezes em tempo real) e normalmente não conserva instantâneos históricos. Funciona como uma área de estadia para relatórios operacionais antes de os dados serem transferidos para o armazém de dados.
Modelação de dados em armazenamento de dados
A modelagem de dados é o modelo de um armazém de dados. Duas abordagens comuns são o esquema de estrelas e o esquema de flocos de neve.
O que é um esquema de estrelas?
Um esquema de estrelas tem uma tabela de factos central ligada a uma ou mais tabelas de dimensões através de chaves estrangeiras. As dimensões são desnormalizadas (por exemplo, uma tabela de dimensões de um único produto contendo categoria, marca e subcategoria). Esta estrutura simplifica as consultas e melhora o desempenho de leitura. É o modelo mais comum no armazenamento de dados.
O que é um esquema de flocos de neve?
Um esquema floco de neve normaliza as tabelas de dimensão em várias tabelas relacionadas. Por exemplo, uma dimensão do produto pode ser dividida em tabelas de produto, marca e categoria separadas. Embora isso reduz a redundância de dados, aumenta o número de junções e pode retardar o desempenho da consulta. É usado quando a eficiência de armazenamento é priorizada sobre a velocidade da consulta.
O que é uma tabela de fatos? Quais são os tipos de fatos?
A tabela de factos armazena medidas quantitativas (por exemplo, quantidade de vendas, quantidade, lucro) e chaves estrangeiras que ligam tabelas de dimensões.
- Transacional – regista eventos individuais (por exemplo, cada item da linha de venda).
- Snapshot periódico – capta medidas em intervalos regulares (por exemplo, níveis diários de inventário).
- Acumular instantâneo – rastreia processos com um início e fim fixos (por exemplo, etapas de cumprimento de ordem).
Os entrevistadores podem pedir que você escolha o tipo de fato apropriado para um determinado cenário de negócios.
O que são tabelas de dimensão? Explique dimensões conformadas.
As tabelas de dimensões contêm atributos descritivos (por exemplo, nome do cliente, cor do produto, localização da loja). As dimensões conformadas são compartilhadas entre múltiplas tabelas de fatos dentro de um data warehouse ou em diferentes data marts. Eles garantem consistência para que os relatórios possam ser combinados de forma significativa. Por exemplo, uma dimensão de data usada em tabelas de dados de vendas e inventário deve ter a mesma estrutura e granularidade.
Lentamente Mudando Dimensões (SCDs)
O manuseio de mudanças nos atributos de dimensão ao longo do tempo é uma habilidade crítica no design de ETL. Os entrevistadores frequentemente perguntam sobre tipos de MSC.
Explicar as dimensões do Tipo 1, Tipo 2 e Tipo 3 que mudam lentamente.
- Tipo 1: Sobrepõe o valor antigo com o novo valor. Nenhum histórico é mantido. Adequado quando não é necessária precisão histórica (por exemplo, corrigindo um tipo em um nome de produto).
- Tipo 2: Adiciona uma nova linha para rastrear a mudança, com intervalos de data efetivos (data de início, data de fim) e uma bandeira atual. Isto preserva o histórico completo. Mais comum para atributos como endereço de cliente ou departamento de funcionários.
- [[FLT: 0]] Tipo 3:[[FLT: 1]] Adiciona uma nova coluna para armazenar o valor anterior, mantendo o valor atual. Isto permite o histórico limitado (normalmente uma versão anterior). Usado para atributos que mudam pouco frequentemente (por exemplo, realinhamento da categoria do produto).
Esteja preparado para discutir trade-offs: Tipo 2 aumenta a contagem de linhas, mas dá trilha completa de auditoria; Tipo 1 é simples, mas perde o histórico.
Visão geral do processo ETL
O processo de ETL é a espinha dorsal da integração de dados. É essencial uma compreensão completa de cada fase e desafios comuns.
Explique em detalhe cada passo do ETL.
Extract: Os dados são extraídos de vários sistemas de origem — bases de dados relacionais, arquivos planos (CSV, JSON, XML), APIs, armazenamento em nuvem ou plataformas de streaming. A extração pode ser completa (todos os dados) ou incremental (apenas registros novos/modificados desde a última execução). Os desafios incluem o manuseio de diferentes formatos de dados, latência da rede e carga do sistema de origem.
Transformar: Os dados são limpos, validados e convertidos num formato consistente. As transformações incluem:
- Conversões de tipo de dados (por exemplo, texto até à data)
- Desduplicação e manipulação nula[
- ]Aplicação de regras de negócio (por exemplo, margem de cálculo = receita – custo)
- Agregação e pivotamento[
- ]Aguarda para substituir as chaves
Carregar: Dados transformados são inseridos no armazém de dados alvo. Estratégias de carregamento: atualização completa (trincar e recarregar), anexo incremental e upsert (fusão). Considere reconstrução de índice, comutação de partição e gerenciamento de transações durante a carga.
Qual é a diferença entre o ETL e o ELT?
ETL transforma dados antes de carregá-los no armazém. ELT (Extract, Load, Transform) carrega dados brutos primeiro e depois transforma-os usando o poder de processamento do data warehouse (por exemplo, SQL ou MapReduce). ELT é comum em armazéns de dados modernos em nuvem como Snowflake, BigQuery e Redshift, onde o armazenamento e computação são dissociados. ETL ainda é preferido quando transformações requerem lógica empresarial complexa ou quando a qualidade dos dados de origem é baixa.
O que são ferramentas comuns de ETL?
As ferramentas populares incluem o Informatica PowerCenter, Talend, IBM DataStage, Microsoft SSIS, Apache NiFi e serviços nativos na nuvem como AWS Glue, Azure Data Factory e Google Dataflow. Opções de código aberto: Pentaho (Kettle), Apache Airflow (orquestration) e dbt (data build tool for transformations).Os entrevistadores podem perguntar sobre sua experiência com ferramentas específicas e como você lidou com o desempenho ou depuração.
Perguntas comuns de entrevista e suas respostas detalhadas
1. Quais são os principais desafios enfrentados nos processos de ETL, e como você os mitiga?
Os desafios incluem:
- Questões de qualidade de dados – valores em falta, duplicatas, formatos inconsistentes. Mitigação: implementar as regras de perfil e validação precocemente; usar tabelas de estadiamento para registros de quarentena ruim.
- Bloqueios de desempenho – extração lenta de sistemas de origem, transformações pesadas ou cargas ineficientes.Mitigação: usar extração incremental, processamento paralelo, particionamento em lote e otimizar estratégias de junção SQL.
- Crescimento do volume de dados – carregar terabytes diariamente. Mitigação: implementar a poda de partição, compressão e infraestrutura de nuvem escalável.
- Requisitos de latência de dados – necessidade de atualizações em tempo quase real.Mitigação: usar a captura de dados de mudança (CDC) e ferramentas de ingestão de streaming (Kafka, Kinesis).
- Gestão de dependência – Trabalhos de ETL que falham devido a conflitos de discórdia ou agendamento de recursos. Mitigação: use ferramentas de orquestração com lógica de retentar e alertar.
2. Como você otimiza os processos de ETL para o desempenho?
A otimização do desempenho abrange várias áreas:
- Extração: Utilizar extração incremental em vez de cargas cheias; implementar CDC (por exemplo, baseado em log ou baseado em timestamp); usar utilitários de cópia em massa.
- Transformação: Transformações de impulso onde possível (por exemplo, use SQL no banco de dados); evite operações linha a linha; use lógica baseada em conjuntos; paraleleleize tarefas independentes.
- Carregamento: Desativar índices e restrições durante a carga e reconstruir depois; usar inserções em lote; considerar a mudança de partição para tabelas grandes.
- Infraestrutura: Use SSDs, scale recursos de computação e use camadas de cache. Monitore com ferramentas de perfil para identificar gargalos.
3. Qual é a diferença entre os sistemas OLAP e OLTP?
O OLTP (Online Transaction Processing) foi desenhado para transações atômicas de alto volume, curtas (por exemplo, entrada de pedidos, atualizações de inventário). Os dados são normalizados e as consultas tocam um pequeno número de registros. O OLAP (Online Analytical Processing) é projetado para consultas complexas que agregam grandes volumes de dados históricos. Os sistemas OLAP são tipicamente desnormalizados (esquema de estrelas) e suportam análises multidimensionais (cortes, dados, perfurações). Uma pergunta típica da entrevista: "Quando você escolheria um banco de dados OLAP sobre uma base de dados OLTP?" Resposta: Para relatórios analíticos, painéis e mineração de dados.
4. Explique o conceito de chaves substitutas vs chaves naturais em armazenamento de dados.
Uma chave substituta é um identificador único artificial gerado pelo sistema (por exemplo, sequência inteira) usado como chave primária numa tabela de dimensões. Uma chave natural é um identificador de negócio da fonte (por exemplo, código do produto, ID do cliente). As chaves substitutas são recomendadas porque são estáveis (as chaves de negócio podem mudar, causando efeitos de ondulação), suportam o tipo 2 de SCD (multiple rows per business key) e melhoram o desempenho da associação (chaves numéricas de seta). As chaves naturais devem ainda ser mantidas como atributos para auditoria e rastreabilidade.
5. Como você lida com o tratamento de erros em um oleoduto de ETL?
Aplicar um quadro robusto de tratamento de erros:
- Use blocos de tentativa de captura e erros de registro para uma tabela de erros separada com ID do trabalho, timestamp, dados de linha e descrição de erro.
- Defina regras de qualidade dos dados e rejeite registros que falham na validação em uma pasta ou tabela de quarentena.
- Configure alertas (email, Slack) para falhas críticas.
- Implementar a lógica de retentação para erros transitórios (tempos de rede).
- Mantenha uma tabela de histórico de execução para rastrear o status de sucesso/fracasso para cada etapa do trabalho.
6. O que é captura de dados de mudança (CDC)?
O CDC é uma técnica para capturar alterações (inserir, atualizar, excluir) em dados de origem e aplicá- las a um sistema- alvo. Os métodos incluem: [
- Baseado em log CDC (por exemplo, Oracle GoldenGate, Debezium)[
- Baseado em tempo de tempo (usando as últimas colunas modificadas)[
- ]Baseado em trigger (detectores de base de dados)[
- ]Diff-based (comparando instantâneos)[ [
Perguntas avançadas de entrevista
7. Como você projeta um processo de ETL para um depósito de dados que suporta tanto a ingestão em lote e em tempo real?
As arquiteturas híbridas são comuns. Para o lote: agendar tarefas noturnas usando cargas incrementais. Para o tempo real: use uma camada de streaming (por exemplo, Kafka) para capturar eventos, então aplique transformações leves e carregue em uma tabela de fatos em tempo real ou uma camada delta (por exemplo, em uma casa de lago). Os caminhos em lote e em tempo real devem convergir no armazém usando a lógica upsert. Considere particionar por tempo para mesclar os dois fluxos de forma consistente. Use ferramentas como o Apache Flink ou o Spark Structured Streaming.
8. Explique a linhagem de dados e por que é importante.
A linhagem de dados rastreia a origem, transformações e movimento dos dados de fonte para alvo. Ajuda na análise de impacto (o que os relatórios a jusante quebram se uma fonte muda), depuração (trace por que um valor está errado) e auditoria (conformidade com regulamentos como o GDPR ou SOX). Ferramentas como Apache Atlas, Marquez ou soluções comerciais (Collibra, Alation) fornecem linhagem automatizada. Os entrevistadores podem perguntar como você documentaria a linhagem em um projeto ETL.
9. Qual é a diferença entre um data warehouse e um data mart?
Um data warehouse é um repositório de empresas que abrange várias áreas de assunto. Um data mart é um subconjunto focado em uma única função de negócio (por exemplo, vendas, finanças). Data marts pode ser construído em cima do armazém (dependente) ou independente (independente). A escolha entre eles envolve trade-offs em custo, governança e agilidade.
10. Como você lida com as dimensões em mudança lenta no ETL?
A abordagem depende do tipo de MSC:
- Tipo 1: Use declarações de UPDATE para substituir o registro.
- Tipo 2:] Use um MERGE (upert) para fechar a versão anterior (definir data final) e insira uma nova linha com data de início = agora e bandeira atual = true.
- Tipo 3:] Atualize a coluna atual e mova o valor antigo para a coluna anterior.
Para grandes dimensões, implemente uma cache de busca para reduzir as viagens de volta do banco de dados. Considere também usar a comparação de hash para detectar mudanças reais e evitar atualizações desnecessárias.
Melhores práticas do ETL
Os entrevistadores procurarão uma experiência prática. Mencione estas melhores práticas durante as discussões:
- Design modular: Partir trabalhos de ETL em componentes reutilizáveis (por exemplo, carga de estadia reutilizável, biblioteca de transformação padrão).
- Idempotência: Certifique-se de que a repetição de uma tarefa produz o mesmo resultado (sem duplicatas). Use a lógica upsert e os limites transacionais.
- Metadata management: Mantenha um dicionário de dados e gráfico de dependência de trabalho.
- Monitoramento de desempenho: métricas de chaves de trilha: linhas processadas por minuto, duração, taxas de erro e inclinação. Use painéis.
- Controle de versão: Armazenar código ETL em Git juntamente com scripts SQL e arquivos de configuração.
- Testação: Escrever testes unitários para transformações, testes de integração para pipelines de ponta a ponta e testes de comparação de dados contra fonte e alvo.
Recursos externos de referência para uma aprendizagem mais profunda: IBM on ETL, Flake de neve: ETL vs ELT, e Martin Fowler on evolutional data].
Conclusão
A realização de entrevistas de mestrado em armazenamento de dados e processos de ETL requer tanto conhecimento teórico quanto experiência prática. Foque em conceitos centrais – características do data warehouse, modelagem dimensional, SCDs e otimização de ETL – e esteja pronto para discutir desafios do mundo real com soluções específicas. Pratique explicar claramente seu processo de pensamento. Ao se preparar para essas perguntas comuns e avançadas, você demonstrará a experiência necessária para o sucesso dos papéis de gerenciamento de dados.