Teste ETL - Guia rápido
Os dados em um sistema de Data Warehouse são carregados com uma ferramenta ETL (Extract, Transform, Load). Como o nome sugere, ele executa as três operações a seguir -
Extrai os dados do seu sistema transacional, que pode ser Oracle, Microsoft ou qualquer outro banco de dados relacional,
Transforma os dados executando operações de limpeza de dados e, em seguida,
Carrega os dados no data warehouse OLAP.
Você também pode extrair dados de arquivos simples, como planilhas e arquivos CSV, usando uma ferramenta ETL e carregá-los em um data warehouse OLAP para análise de dados e relatórios. Vamos dar um exemplo para entendê-lo melhor.
Exemplo
Vamos supor que haja uma empresa de manufatura com vários departamentos, como vendas, RH, Gestão de Materiais, EWM, etc. Todos esses departamentos têm bancos de dados separados que usam para manter as informações sobre seu trabalho e cada banco de dados tem uma tecnologia, paisagem, tabela nomes, colunas, etc. Agora, se a empresa deseja analisar dados históricos e gerar relatórios, todos os dados dessas fontes de dados devem ser extraídos e carregados em um Data Warehouse para salvá-lo para trabalho analítico.
Uma ferramenta ETL extrai os dados de todas essas fontes de dados heterogêneas, transforma os dados (como aplicar cálculos, juntar campos, chaves, remover campos de dados incorretos, etc.) e carregá-los em um Data Warehouse. Posteriormente, você pode usar várias ferramentas de Business Intelligence (BI) para gerar relatórios, painéis e visualizações significativos usando esses dados.
Diferença entre ferramentas ETL e BI
Uma ferramenta ETL é usada para extrair dados de diferentes fontes de dados, transformar os dados e carregá-los em um sistema DW; no entanto, uma ferramenta de BI é usada para gerar relatórios interativos e ad-hoc para usuários finais, painel para gerenciamento sênior, visualizações de dados para reuniões mensais, trimestrais e anuais do conselho.
As ferramentas ETL mais comuns incluem - SAP BO Data Services (BODS), Informatica - Power Center, Microsoft - SSIS, Oracle Data Integrator ODI, Talend Open Studio, Clover ETL Open source, etc.
Algumas ferramentas populares de BI incluem - SAP Business Objects, SAP Lumira, IBM Cognos, JasperSoft, Microsoft BI Platform, Tableau, Oracle Business Intelligence Enterprise Edition, etc.
Processo ETL
Vamos agora discutir com um pouco mais de detalhes as principais etapas envolvidas em um procedimento ETL -
Extraindo os dados
Envolve extrair os dados de diferentes fontes de dados heterogêneas. A extração de dados de um sistema transacional varia de acordo com o requisito e a ferramenta ETL em uso. Normalmente, é feito executando trabalhos agendados fora do horário comercial, como a execução de trabalhos à noite ou no fim de semana.
Transformando os Dados
Envolve transformar os dados em um formato adequado que pode ser facilmente carregado em um sistema DW. A transformação de dados envolve a aplicação de cálculos, associações e definição de chaves primárias e estrangeiras nos dados. Por exemplo, se você quiser% da receita total que não está no banco de dados, você aplicará a fórmula% na transformação e carregará os dados. Da mesma forma, se você tiver o nome e o sobrenome de usuários em colunas diferentes, poderá aplicar uma operação de concatenação antes de carregar os dados. Alguns dados não requerem nenhuma transformação; tais dados são conhecidos comodirect move ou pass through data.
A transformação de dados também envolve correção de dados e limpeza de dados, remoção de dados incorretos, formação de dados incompletos e correção de erros de dados. Também inclui integridade de dados e formatação de dados incompatíveis antes de carregá-los em um sistema DW.
Carregando os dados em um sistema DW
Envolve o carregamento dos dados em um sistema DW para relatórios analíticos e informações. O sistema de destino pode ser um arquivo simples delimitado ou um armazém de dados.
Função de ferramenta ETL
Um data warehouse baseado em ferramenta ETL típico usa área de teste, integração de dados e camadas de acesso para executar suas funções. Normalmente é uma arquitetura de 3 camadas.
Staging Layer - A camada de teste ou banco de dados de teste é usado para armazenar os dados extraídos de diferentes sistemas de dados de origem.
Data Integration Layer - A camada de integração transforma os dados da camada de teste e move os dados para um banco de dados, onde os dados são organizados em grupos hierárquicos, muitas vezes chamados dimensions, e em facts e aggregate facts. A combinação de tabelas de fatos e dimensões em um sistema DW é chamada deschema.
Access Layer - A camada de acesso é usada pelos usuários finais para recuperar os dados para relatórios analíticos e informações.
A ilustração a seguir mostra como as três camadas interagem umas com as outras.
O teste de ETL é feito antes que os dados sejam movidos para um sistema de data warehouse de produção. Às vezes também é chamado detable balancing ou production reconciliation. É diferente do teste de banco de dados em termos de seu escopo e das etapas a serem executadas para concluí-lo.
O principal objetivo do teste de ETL é identificar e mitigar defeitos de dados e erros gerais que ocorrem antes do processamento de dados para relatórios analíticos.
Teste ETL - Tarefas a serem realizadas
Aqui está uma lista das tarefas comuns envolvidas no teste ETL -
- Compreenda os dados a serem usados para relatórios
- Revise o modelo de dados
- Mapeamento de origem para destino
- Verificações de dados nos dados de origem
- Pacotes e validação de esquema
- Verificação de dados no sistema de destino
- Verificação de cálculos de transformação de dados e regras de agregação
- Amostra de comparação de dados entre o sistema de origem e de destino
- Verificações de integridade e qualidade de dados no sistema de destino
- Teste de desempenho em dados
Os testes de ETL e de banco de dados envolvem validação de dados, mas não são os mesmos. O teste de ETL normalmente é executado em dados em um sistema de data warehouse, enquanto o teste de banco de dados é comumente executado em sistemas transacionais onde os dados vêm de diferentes aplicativos para o banco de dados transacional.
Aqui, destacamos as principais diferenças entre o teste de ETL e o teste de banco de dados.
Teste ETL
O teste de ETL envolve as seguintes operações -
Validação da movimentação de dados da origem para o sistema de destino.
Verificação da contagem de dados no sistema de origem e destino.
Verificando extração de dados, transformação conforme requisito e expectativa.
Verificar se as relações da tabela - junções e chaves - são preservadas durante a transformação.
Ferramentas de teste de ETL comuns incluem QuerySurge, Informaticaetc.
Teste de banco de dados
O teste de banco de dados enfatiza mais a precisão dos dados, exatidão dos dados e valores válidos. Envolve as seguintes operações -
Verificar se as chaves primárias e estrangeiras são mantidas.
Verificando se as colunas em uma tabela possuem valores de dados válidos.
Verificando a precisão dos dados nas colunas. Example - A coluna Número de meses não deve ter um valor maior que 12.
Verificando dados ausentes nas colunas. Verifique se há colunas nulas que realmente deveriam ter um valor válido.
Ferramentas de teste de banco de dados comuns incluem Selenium, QTPetc.
A tabela a seguir captura os principais recursos dos testes de banco de dados e ETL e sua comparação -
Função | Teste de banco de dados | Teste ETL |
---|---|---|
Objetivo Principal | Validação e integração de dados | Extração, transformação e carregamento de dados para relatórios de BI |
Sistema Aplicável | Sistema transacional onde ocorre o fluxo de negócios | Sistema contendo dados históricos e não em ambiente de fluxo de negócios |
Ferramentas comuns | QTP, selênio, etc. | QuerySurge, Informatica, etc. |
Necessidade de Negócios | É usado para integrar dados de vários aplicativos, impacto severo. | É usado para relatórios analíticos, informações e previsões. |
Modelagem | Método ER | Multidimensional |
Tipo de banco de dados | É normalmente usado em sistemas OLTP | É aplicado a sistemas OLAP |
Tipo de dados | Dados normalizados com mais junções | Dados desnormalizados com menos junções, mais índices e agregações. |
A categorização do teste ETL é feita com base nos objetivos de teste e relatório. As categorias de teste variam de acordo com os padrões da organização e também dependem dos requisitos do cliente. Geralmente, o teste de ETL é categorizado com base nos seguintes pontos -
Source to Target Count Testing - Envolve a correspondência da contagem de registros nos sistemas de origem e de destino.
Source to Target Data Testing- Envolve validação de dados entre os sistemas de origem e destino. Também envolve integração de dados e verificação de valor limite e verificação de dados duplicados no sistema de destino.
Data Mapping or Transformation Testing- Confirma o mapeamento de objetos nos sistemas de origem e destino. Também envolve a verificação da funcionalidade dos dados no sistema de destino.
End-User Testing- Envolve a geração de relatórios para os usuários finais para verificar se os dados nos relatórios estão de acordo com a expectativa. Envolve encontrar o desvio em relatórios e verificar os dados no sistema de destino para validação do relatório.
Retesting - Envolve a correção de bugs e defeitos nos dados do sistema de destino e a execução dos relatórios novamente para validação dos dados.
System Integration Testing- Envolve testar todos os sistemas individuais e, posteriormente, combinar os resultados para verificar se há desvios. Existem três abordagens que podem ser usadas para fazer isso: top-down, bottom-up e híbrido.
Com base na estrutura de um sistema de data warehouse, o teste de ETL (independentemente da ferramenta usada) pode ser dividido nas seguintes categorias -
Novo teste de sistema DW
Nesse tipo de teste, há um novo sistema DW construído e verificado. As entradas de dados são obtidas de clientes / usuários finais e também de diferentes fontes de dados e um novo data warehouse é criado. Posteriormente, os dados são verificados no novo sistema com a ajuda de ferramentas ETL.
Teste de migração
No teste de migração, os clientes têm um Data Warehouse e ETL existente, mas procuram uma nova ferramenta ETL para melhorar a eficiência. Envolve a migração de dados do sistema existente usando uma nova ferramenta ETL.
Teste de Mudança
No teste de mudança, novos dados são adicionados de diferentes fontes de dados a um sistema existente. Os clientes também podem alterar as regras existentes para ETL ou uma nova regra também pode ser adicionada.
Teste de Relatório
O teste de relatório envolve a criação de relatórios para validação de dados. Os relatórios são a saída final de qualquer sistema DW. Os relatórios são testados com base em seu layout, dados no relatório e valores calculados.
O teste ETL é diferente do teste de banco de dados ou qualquer outro teste convencional. Pode-se ter que enfrentar diferentes tipos de desafios ao realizar o teste ETL. Aqui, listamos alguns desafios comuns -
Perda de dados durante o processo ETL.
Dados incorretos, incompletos ou duplicados.
O sistema DW contém dados históricos, portanto, o volume de dados é muito grande e extremamente complexo para realizar o teste ETL no sistema de destino.
Os testadores ETL normalmente não têm acesso para ver os cronogramas de trabalho na ferramenta ETL. Eles dificilmente têm acesso às ferramentas de relatório de BI para ver o layout final dos relatórios e dados dentro dos relatórios.
Difícil de gerar e construir casos de teste, pois o volume de dados é muito alto e complexo.
Os testadores de ETL normalmente não têm uma ideia dos requisitos de relatório do usuário final e do fluxo de negócios das informações.
O teste de ETL envolve vários conceitos complexos de SQL para validação de dados no sistema de destino.
Às vezes, os testadores não recebem as informações de mapeamento de origem para destino.
O ambiente de teste instável atrasa o desenvolvimento e o teste de um processo.
Um testador ETL é o principal responsável por validar as fontes de dados, extração de dados, aplicação de lógica de transformação e carregamento de dados nas tabelas de destino.
As principais responsabilidades de um testador ETL estão listadas abaixo.
Verifique as tabelas no sistema de origem
Envolve as seguintes operações -
- Verificação de contagem
- Reconciliar registros com os dados de origem
- Verificação de tipo de dados
- Certifique-se de que nenhum dado de spam foi carregado
- Remover dados duplicados
- Verifique se todas as chaves estão no lugar
Aplicar lógica de transformação
A lógica de transformação é aplicada antes de carregar os dados. Envolve as seguintes operações -
Verificação de validação de limite de dados, por exemplo, o valor da idade não deve ser superior a 100.
Verificação da contagem de registros, antes e depois da aplicação da lógica de transformação.
Validação de fluxo de dados da área de preparação para as tabelas intermediárias.
Verificação da chave substituta.
Carregando Dados
Os dados são carregados da área de teste para o sistema de destino. Envolve as seguintes operações -
Verificação da contagem de registros da tabela intermediária para o sistema de destino.
Certifique-se de que os dados do campo-chave não estejam ausentes ou nulos.
Verifique se os valores agregados e as medidas calculadas foram carregados nas tabelas de fatos.
Verifique as visualizações de modelagem com base nas tabelas de destino.
Verifique se o CDC foi aplicado na tabela de carregamento incremental.
Verificação de dados na tabela de dimensões e verificação da tabela de histórico.
Verifique os relatórios de BI com base na tabela de fatos e dimensões carregada e de acordo com os resultados esperados.
Testando as ferramentas ETL
Testadores de ETL são necessários para testar as ferramentas e os casos de teste também. Envolve as seguintes operações -
- Teste a ferramenta ETL e suas funções
- Teste o sistema ETL Data Warehouse
- Crie, projete e execute os planos e casos de teste.
- Teste as transferências de dados de arquivo simples.
É importante que você defina a técnica correta de teste de ETL antes de iniciar o processo de teste. Você deve obter a aceitação de todas as partes interessadas e garantir que uma técnica correta seja selecionada para realizar o teste de ETL. Esta técnica deve ser bem conhecida pela equipe de teste e eles devem estar cientes das etapas envolvidas no processo de teste.
Existem vários tipos de técnicas de teste que podem ser usados. Neste capítulo, discutiremos as técnicas de teste resumidamente.
Teste de validação de produção
Para realizar relatórios analíticos e análises, os dados em sua produção devem estar corretos. Esse teste é feito nos dados que são movidos para o sistema de produção. Envolve a validação de dados no sistema de produção e a comparação com os dados de origem.
Teste de contagem de origem para destino
Esse tipo de teste é feito quando o testador tem menos tempo para realizar a operação de teste. Envolve a verificação da contagem de dados nos sistemas de origem e destino. Não envolve a verificação dos valores dos dados no sistema de destino. Também não envolve se os dados estão em ordem crescente ou decrescente após o mapeamento de dados.
Teste de dados de origem para destino
Nesse tipo de teste, um testador valida os valores dos dados do sistema de origem ao destino. Ele verifica os valores dos dados no sistema de origem e os valores correspondentes no sistema de destino após a transformação. Esse tipo de teste é demorado e normalmente é realizado em projetos financeiros e bancários.
Teste de integração de dados / validação de valor limite
Nesse tipo de teste, um testador valida a faixa de dados. Todos os valores limite no sistema de destino são verificados se eles estão de acordo com o resultado esperado. Também envolve a integração de dados no sistema de destino de vários sistemas de origem após a transformação e carregamento.
Example - O atributo de idade não deve ter um valor maior que 100. Na coluna de data DD / MM / AA, o campo do mês não deve ter um valor maior que 12.
Teste de migração de aplicativo
O teste de migração de aplicativo normalmente é executado automaticamente quando você muda de um aplicativo antigo para um novo sistema de aplicativo. Esse teste economiza muito tempo. Ele verifica se os dados extraídos de um aplicativo antigo são iguais aos dados no novo sistema de aplicativo.
Verificação de dados e teste de restrição
Inclui a execução de várias verificações, como verificação de tipo de dados, verificação de comprimento de dados e verificação de índice. Aqui, um Engenheiro de Teste executa os seguintes cenários - Chave Primária, Chave Estrangeira, NÃO NULO, NULO e ÚNICO.
Teste de verificação de dados duplicados
Este teste envolve a verificação de dados duplicados no sistema de destino. Quando há uma grande quantidade de dados no sistema de destino, é possível que haja dados duplicados no sistema de produção que podem resultar em dados incorretos nos Relatórios Analíticos.
Valores duplicados podem ser verificados com instrução SQL como -
Select Cust_Id, Cust_NAME, Quantity, COUNT (*)
FROM Customer
GROUP BY Cust_Id, Cust_NAME, Quantity HAVING COUNT (*) >1;
Dados duplicados aparecem no sistema de destino devido aos seguintes motivos -
- Se nenhuma chave primária for definida, podem ocorrer valores duplicados.
- Devido a mapeamento incorreto ou questões ambientais.
- Erros manuais ao transferir dados da origem para o sistema de destino.
Teste de transformação de dados
O teste de transformação de dados não é executado executando uma única instrução SQL. É demorado e envolve a execução de várias consultas SQL para cada linha para verificar as regras de transformação. O testador precisa executar consultas SQL para cada linha e, em seguida, comparar a saída com os dados de destino.
Teste de qualidade de dados
O teste de qualidade de dados envolve a realização de verificação de número, verificação de data, verificação de nulos, verificação de precisão, etc. Um testador executa Syntax Test para relatar caracteres inválidos, ordem incorreta de maiúsculas / minúsculas, etc. e Reference Tests para verificar se os dados estão de acordo com o modelo de dados.
Teste Incremental
O teste incremental é executado para verificar se as instruções Insert e Update são executadas de acordo com o resultado esperado. Este teste é executado passo a passo com dados antigos e novos.
Teste de Regressão
Quando fazemos alterações nas regras de transformação e agregação de dados para adicionar uma nova funcionalidade que também ajuda o testador a encontrar novos erros, isso é chamado de Teste de Regressão. Os bugs nos dados que vêm no teste de regressão são chamados de Regressão.
Testando novamente
Quando você executa os testes depois de corrigir os códigos, isso é chamado de reteste.
Teste de integração do sistema
O teste de integração de sistema envolve testar os componentes de um sistema individualmente e, posteriormente, integrar os módulos. Existem três maneiras de fazer uma integração de sistema: de cima para baixo, de baixo para cima e híbrida.
Teste de Navegação
O teste de navegação também é conhecido como teste do front-end do sistema. Envolve o teste do ponto de vista do usuário final, verificando todos os aspectos do relatório de front-end - inclui dados em vários campos, cálculos e agregações, etc.
O teste de ETL cobre todas as etapas envolvidas em um ciclo de vida de ETL. Começa com a compreensão dos requisitos de negócios até a geração de um relatório resumido.
As etapas comuns no ciclo de vida do teste ETL estão listadas abaixo -
Compreender os requisitos do negócio.
Validação do requisito de negócios.
Estimativa de teste é usada para fornecer o tempo estimado para executar casos de teste e para concluir o relatório de resumo.
O planejamento de teste envolve encontrar a técnica de teste com base nas entradas de acordo com os requisitos de negócios.
Criação de cenários de teste e casos de teste.
Assim que os casos de teste estiverem prontos e aprovados, a próxima etapa é realizar a verificação de pré-execução.
Execute todos os casos de teste.
A última etapa é gerar um relatório de resumo completo e arquivar um processo de fechamento.
Os cenários de teste ETL são usados para validar um processo de teste ETL. A tabela a seguir explica alguns dos cenários e casos de teste mais comuns usados por testadores de ETL.
Cenários de teste | Casos de teste |
---|---|
Validação de Estrutura |
Envolve a validação da origem e da estrutura da tabela de destino de acordo com o documento de mapeamento. O tipo de dados deve ser validado nos sistemas de origem e destino. O comprimento dos tipos de dados no sistema de origem e de destino deve ser o mesmo. Os tipos de campo de dados e seu formato devem ser os mesmos no sistema de origem e de destino. Validando os nomes das colunas no sistema de destino. |
Validando documento de mapeamento |
Envolve a validação do documento de mapeamento para garantir que todas as informações foram fornecidas. O documento de mapeamento deve ter log de alterações, manter tipos de dados, comprimento, regras de transformação, etc. |
Validar restrições |
Envolve validar as restrições e garantir que elas sejam aplicadas nas tabelas esperadas. |
Verificação de consistência de dados |
Envolve a verificação do uso indevido de restrições de integridade como chave estrangeira. O comprimento e o tipo de dados de um atributo podem variar em tabelas diferentes, embora sua definição permaneça a mesma na camada semântica. |
Validação de integridade de dados |
Envolve verificar se todos os dados foram carregados no sistema de destino a partir do sistema de origem. Contando o número de registros nos sistemas de origem e destino. Análise de valor limite. Validando os valores exclusivos das chaves primárias. |
Validação de correção de dados |
Envolve a validação dos valores dos dados no sistema de destino. Dados com erros ortográficos ou imprecisos foram encontrados na tabela. Os dados nulos, não exclusivos são armazenados quando você desativa a restrição de integridade no momento da importação. |
Validação de transformação de dados |
Envolve a criação de uma planilha de cenários para valores de entrada e resultados esperados e, em seguida, a validação com os usuários finais. Validando o relacionamento pai-filho nos dados criando cenários. Usando a criação de perfil de dados para comparar o intervalo de valores em cada campo. Validar se os tipos de dados no warehouse são os mesmos mencionados no modelo de dados. |
Validação de qualidade de dados |
Envolve a execução de verificação de número, verificação de data, verificação de precisão, verificação de dados, verificação nula, etc. Example - O formato da data deve ser o mesmo para todos os valores. |
Validação Nula |
Envolve a verificação dos valores Nulos onde Not Null é mencionado para aquele campo. |
Validação Duplicada |
Envolve a validação de valores duplicados no sistema de destino quando os dados vêm de várias colunas do sistema de origem. Validar chaves primárias e outras colunas se houver valores duplicados de acordo com os requisitos de negócios. |
Verificação de validação de data |
Validando o campo de data para várias ações realizadas no processo ETL. Casos de teste comuns para realizar a validação de Data -
|
Validação Completa de Dados Menos Consulta |
Envolve a validação do conjunto de dados completo na origem e nas tabelas de destino usando menos consulta.
|
Outros Cenários de Teste |
Outros cenários de teste podem ser para verificar se o processo de extração não extraiu dados duplicados do sistema de origem. A equipe de teste manterá uma lista de instruções SQL que são executadas para validar que nenhum dado duplicado foi extraído dos sistemas de origem. |
Limpeza de Dados |
Os dados indesejados devem ser removidos antes de carregá-los na área de teste. |
O ajuste de desempenho ETL é usado para garantir se um sistema ETL pode lidar com uma carga esperada de vários usuários e transações. O ajuste de desempenho geralmente envolve a carga de trabalho do lado do servidor no sistema ETL. Ele é usado para testar a resposta do servidor em ambiente multiusuário e para encontrar gargalos. Eles podem ser encontrados em sistemas de origem e destino, mapeamento de sistemas, configuração como propriedades de gerenciamento de sessão, etc.
Como realizar o ajuste de desempenho do teste ETL?
Siga as etapas abaixo para realizar o ajuste de desempenho do teste ETL -
Step 1 - Encontre a carga que está sendo transformada em produção.
Step 2 - Crie novos dados com a mesma carga ou mova dos dados de produção para seu servidor de desempenho local.
Step 3 - Desative o ETL até gerar a carga necessária.
Step 4 - Faça a contagem dos dados necessários das tabelas do banco de dados.
Step 5- Anote a última execução do ETL e habilite o ETL, para que ele obtenha estresse suficiente para transformar toda a carga criada. Executá-lo
Step 6 - Depois que o ETL concluir sua execução, faça a contagem dos dados criados.
Indicadores Chave de Performance
- Descubra o tempo total necessário para transformar a carga.
- Descubra se o tempo de desempenho melhorou ou caiu.
- Verifique se toda a carga esperada foi extraída e transferida.
O objetivo do teste ETL é obter dados confiáveis. A credibilidade dos dados pode ser obtida tornando o ciclo de teste mais eficaz.
Uma estratégia de teste abrangente é a criação de um ciclo de teste eficaz. A estratégia de teste deve cobrir o planejamento de teste para cada estágio do processo de ETL, sempre que os dados forem movidos e declarar as responsabilidades de cada parte interessada, por exemplo, analistas de negócios, equipe de infraestrutura, equipe de QA, DBA's, desenvolvedores e usuários de negócios.
Para garantir a prontidão do teste em todos os aspectos, as principais áreas nas quais uma estratégia de teste deve se concentrar são -
Escopo do teste - Descreva as técnicas e os tipos de teste a serem usados.
Configurando o ambiente de teste.
Disponibilidade de dados de teste - é recomendado ter dados de produção cobrindo todos / requisitos críticos de negócios.
Critérios de aceitação de desempenho e qualidade de dados.
No teste ETL, a precisão dos dados é usada para garantir que os dados sejam carregados com precisão no sistema de destino de acordo com a expectativa. As principais etapas para realizar a precisão dos dados são as seguintes -
Comparação de valores
A comparação de valor envolve a comparação dos dados no sistema de origem e destino com o mínimo ou nenhuma transformação. Isso pode ser feito usando várias ferramentas de teste ETL, por exemplo, Source Qualifier Transformation na Informatica.
Algumas transformações de expressão também podem ser realizadas em testes de precisão de dados. Vários operadores de conjunto podem ser usados em instruções SQL para verificar a precisão dos dados nos sistemas de origem e destino. Os operadores comuns são os operadores Minus e Intersect. Os resultados desses operadores podem ser considerados como desvio de valor no sistema de destino e no sistema de origem.
Verifique as colunas de dados críticos
As colunas de dados críticos podem ser verificadas comparando valores distintos nos sistemas de origem e de destino. Aqui está um exemplo de consulta que pode ser usado para verificar colunas de dados críticos -
SELECT cust_name, Order_Id, city, count(*) FROM customer
GROUP BY cust_name, Order_Id, city;
A verificação dos metadados envolve a validação da estrutura da tabela de origem e de destino escrita no documento de mapeamento. O documento de mapeamento possui detalhes das colunas de origem e destino, regras de transformação de dados e tipos de dados, todos os campos que definem a estrutura das tabelas nos sistemas de origem e destino.
Verificação de comprimento de dados
O comprimento do tipo de dados da coluna de destino deve ser igual ou maior que o tipo de dados da coluna de origem. Vamos dar um exemplo. Suponha que você tenha os primeiros nomes e os sobrenomes na tabela de origem e o comprimento dos dados para cada um seja definido como 50 caracteres. Então, o comprimento dos dados de destino para a coluna de nome completo no sistema de destino deve ser no mínimo 100 ou mais.
Verificação de tipo de dados
A verificação do tipo de dados envolve a verificação dos tipos de dados de origem e destino e a garantia de que são iguais. Existe a possibilidade de que o tipo de dados de destino seja diferente dos dados de origem após uma transformação. Portanto, também é necessário verificar as regras de transformação.
Verificação de restrição / índice
A verificação de restrições envolve a verificação dos valores de índice e restrições de acordo com o documento de especificação de design. Todas as colunas que não podem ter valores Nulos devem ter restrição Not Null. As colunas de chaves primárias são indexadas de acordo com o documento de design.
A execução de transformações de dados é um pouco complexa, pois não pode ser alcançada escrevendo uma única consulta SQL e, em seguida, comparando a saída com o destino. Para ETL Testing Data Transformation, pode ser necessário escrever várias consultas SQL para cada linha para verificar as regras de transformação.
Para começar, certifique-se de que os dados de origem sejam suficientes para testar todas as regras de transformação. A chave para realizar um teste de ETL bem-sucedido para transformações de dados é selecionar os dados de amostra corretos e suficientes do sistema de origem para aplicar as regras de transformação.
As principais etapas para a transformação de dados de teste ETL estão listadas abaixo -
A primeira etapa é criar uma lista de cenários de dados de entrada e os resultados esperados e validá-los com o cliente empresarial. Essa é uma boa abordagem para reunir requisitos durante o design e também pode ser usada como parte do teste.
A próxima etapa é criar os dados de teste que contêm todos os cenários. Utilize um desenvolvedor de ETL para automatizar todo o processo de preenchimento dos conjuntos de dados com a planilha de cenário para permitir versatilidade e mobilidade, pois os cenários provavelmente mudarão.
Em seguida, utilize os resultados do perfil de dados para comparar o intervalo e o envio de valores em cada campo entre os dados de destino e de origem.
Valide o processamento preciso de campos gerados por ETL, por exemplo, chaves substitutas.
Os tipos de dados de validação dentro do warehouse são os mesmos que foram especificados no modelo ou design de dados.
Crie cenários de dados entre tabelas que testam a integridade referencial.
Valide os relacionamentos de pai para filho nos dados.
A etapa final é realizar lookup transformation. Sua consulta de pesquisa deve ser direta, sem qualquer agregação, e deve retornar apenas um valor por tabela de origem. Você pode associar diretamente a tabela de pesquisa no qualificador de origem como no teste anterior. Se este não for o caso, escreva uma consulta juntando a tabela de pesquisa com a tabela principal na origem e compare os dados nas colunas correspondentes no destino.
A verificação da qualidade dos dados durante o teste de ETL envolve a execução de verificações de qualidade nos dados carregados no sistema de destino. Inclui os seguintes testes -
Verificação de número
O formato do número deve ser o mesmo em todo o sistema de destino. Por exemplo, no sistema de origem, o formato de numeração das colunas éx.30, mas se o alvo for apenas 30, então ele tem que carregar sem prefixar x. no número da coluna de destino.
Verificação de data
O formato da data deve ser consistente nos sistemas de origem e destino. Por exemplo, deve ser o mesmo em todos os registros. O formato padrão é: aaaa-mm-dd.
Verificação de precisão
O valor da precisão deve ser exibido conforme o esperado na tabela de destino. Por exemplo, na tabela de origem, o valor é 15,2323422, mas na tabela de destino, ele deve ser exibido como 15,23 ou rodada de 15.
Verificação de dados
Envolve verificar os dados de acordo com os requisitos de negócios. Os registros que não atendem a determinados critérios devem ser filtrados.
Example - Apenas os registros cujo date_id> = 2015 e Account_Id! = '001' devem carregar na tabela de destino.
Verificação nula
Algumas colunas devem ter Nulo de acordo com o requisito e os valores possíveis para esse campo.
Example - A coluna Data de rescisão deve exibir Nulo, a menos e até que sua coluna de status Ativo seja “T” ou “Falecido”.
Outras verificações
Verificações comuns como From_Date não devem ser maiores que To_Date podem ser feitas.
A verificação da integridade dos dados é feita para verificar se os dados no sistema de destino estão de acordo com a expectativa após o carregamento.
Os testes comuns que podem ser realizados para isso são os seguintes -
Verificando funções agregadas (soma, máximo, mínimo, contagem),
Verificar e validar as contagens e os dados reais entre a origem e o destino para colunas sem transformações ou com transformações simples.
Validação de contagem
Compare a contagem do número de registros nas tabelas de origem e de destino. Isso pode ser feito escrevendo as seguintes perguntas -
SELECT count (1) FROM employee;
SELECT count (1) FROM emp_dim;
Validação de Perfil de Dados
Envolve a verificação das funções agregadas, como contagem, soma e máximo nas tabelas de origem e destino (fato ou dimensão).
Validação de Perfil de Dados de Coluna
Envolve comparar os valores distintos e a contagem de linhas para cada valor distinto.
SELECT city, count(*) FROM employee GROUP BY city;
SELECT city_id, count(*) FROM emp_dim GROUP BY city_id;
Validação de dados duplicados
Envolve a validação da chave primária e da chave exclusiva em uma coluna ou em combinação de colunas que devem ser exclusivas de acordo com os requisitos de negócios. Você pode usar a seguinte consulta para realizar a validação de dados duplicados -
SELECT first_name, last_name, date_of_joining, count (1) FROM employee
GROUP BY first_name, last_name HAVING count(1)>1;
A recuperação de backup de um sistema é planejada para garantir que o sistema seja restaurado o mais rápido possível após uma falha e as operações sejam retomadas o mais cedo possível, sem perda de dados importantes.
O teste de recuperação de backup ETL é usado para garantir que o sistema de data warehouse se recupere com sucesso de hardware, software ou de uma falha de rede com perda de dados.
Um plano de backup adequado deve ser preparado para garantir a disponibilidade máxima do sistema. Os sistemas de backup devem ser restaurados com facilidade e assumir o controle do sistema com falha sem qualquer perda de dados.
Teste ETL A recuperação de backup envolve a exposição do aplicativo ou do sistema DW a condições extremas para qualquer componente de hardware, falha de software, etc. A próxima etapa é garantir que o processo de recuperação seja iniciado, a verificação do sistema seja feita e a recuperação de dados seja alcançada.
O teste de ETL é feito principalmente com scripts SQL e coleta de dados em planilhas. Esta abordagem para realizar o teste ETL é muito lenta e demorada, sujeita a erros e é realizada em dados de amostra.
Desafio técnico no teste manual de ETL
Sua equipe de teste ETL grava consultas SQL para testar dados em um sistema de warehouse e eles precisam executá-los manualmente usando um editor de SQL e, em seguida, colocar os dados em uma planilha Excel e compará-los manualmente. Esse processo consome muito tempo, exige muitos recursos e é ineficiente.
Existem diversas ferramentas disponíveis no mercado para automatizar esse processo. As ferramentas de teste de ETL mais comuns são QuerySurge e Informatica Data Validation.
QuerySurge
QuerySurge é uma solução de teste de dados projetada para testar Big Data, Data Warehouses e o processo ETL. Ele pode automatizar todo o processo para você e se encaixar perfeitamente em sua estratégia de DevOps.
Os principais recursos do QuerySurge são os seguintes -
Possui Query Wizards para criar QueryPairs de teste rápida e facilmente, sem que o usuário tenha que escrever nenhum SQL.
Possui uma Biblioteca de Projetos com Snippets de Consulta reutilizáveis. Você também pode criar QueryPairs personalizados.
Ele pode comparar dados de arquivos de origem e armazenamentos de dados com o Data Warehouse de destino ou armazenamento de Big Data.
Ele pode comparar milhões de linhas e colunas de dados em minutos.
Ele permite ao usuário agendar testes para execução (1) imediatamente, (2) qualquer data / hora ou (3) automaticamente após o término de um evento.
Ele pode produzir relatórios informativos, visualizar atualizações e resultados de e-mail automático para sua equipe.
Para automatizar todo o processo, sua ferramenta ETL deve iniciar o QuerySurge por meio da API de linha de comando após o software ETL concluir seu processo de carregamento.
O QuerySurge será executado automaticamente e sem supervisão, executando todos os testes e enviando os resultados por e-mail para todos da equipe.
Assim como o QuerySurge, o Informatica Data Validation fornece uma ferramenta de teste ETL que ajuda você a acelerar e automatizar o processo de teste ETL no ambiente de desenvolvimento e produção. Ele permite que você forneça cobertura de teste completa, repetível e auditável em menos tempo. Não requer habilidades de programação!
Para testar um sistema de data warehouse ou um aplicativo de BI, é necessário ter uma abordagem centrada em dados. As melhores práticas de teste de ETL ajudam a minimizar o custo e o tempo para realizar o teste. Ele melhora a qualidade dos dados a serem carregados no sistema de destino, que gera painéis e relatórios de alta qualidade para os usuários finais.
Listamos aqui algumas práticas recomendadas que podem ser seguidas para testes de ETL -
Analise os dados
É extremamente importante analisar os dados para entender os requisitos a fim de configurar um modelo de dados correto. Gastar tempo para entender os requisitos e ter um modelo de dados correto para o sistema de destino pode reduzir os desafios de ETL. Também é importante estudar os sistemas de origem, a qualidade dos dados e criar regras de validação de dados corretas para os módulos ETL. Uma estratégia de ETL deve ser formulada com base na estrutura de dados dos sistemas de origem e de destino.
Corrigir dados inválidos no sistema de origem
Os usuários finais normalmente estão cientes dos problemas de dados, mas não têm ideia de como corrigi-los. É importante encontrar esses erros e corrigi-los antes que cheguem ao sistema ETL. Uma maneira comum de resolver isso é no tempo de execução do ETL, mas a prática recomendada é localizar os erros no sistema de origem e tomar medidas para retificá-los no nível do sistema de origem.
Encontre uma ferramenta ETL compatível
Uma das melhores práticas de ETL comuns é selecionar uma ferramenta que seja mais compatível com os sistemas de origem e destino. A capacidade da ferramenta ETL de gerar scripts SQL para os sistemas de origem e destino pode reduzir o tempo e os recursos de processamento. Permite processar a transformação em qualquer lugar do ambiente que seja mais apropriado.
Monitorar trabalhos ETL
Outra prática recomendada durante a implementação do ETL é o agendamento, auditoria e monitoramento de trabalhos ETL para garantir que as cargas sejam realizadas conforme a expectativa.
Integrar Dados Incrementais
Às vezes, as tabelas do data warehouse são maiores e não é possível atualizá-las durante cada ciclo de ETL. Cargas incrementais garantem que apenas os registros alterados desde a última atualização sejam trazidos para o processo ETL e coloca um grande impacto na escalabilidade e no tempo necessário para atualizar o sistema.
Normalmente, os sistemas de origem não têm carimbos de data / hora ou uma chave primária para identificar as mudanças facilmente. Esses problemas podem ser muito caros, se identificados nas fases posteriores do projeto. Uma das melhores práticas de ETL é cobrir tais aspectos no estudo do sistema de origem inicial. Esse conhecimento ajuda a equipe ETL a identificar problemas de captura de dados alterados e determinar a estratégia mais apropriada.
Escalabilidade
É uma prática recomendada garantir que a solução ETL oferecida seja escalonável. No momento da implementação, é necessário garantir que a solução ETL seja escalonável com os requisitos do negócio e seu potencial de crescimento no futuro.