Este é o primeiro post sobre data profiling e com isso, teremos alguns conceitos básicos antes de partir para o profiling da dimensão em si.
Essa é a tela inicial, o que vamos construir no processo é um job que irá rodar para extrair as informações importantes.
Clique no ícone abaixo para começar.
Na tela inicial, temos as seguintes possibilidades:
Como estou utilizando um arquivo csv, a aba de information schema será de pouca utilidade. Isso porque ela extrai informações de tabelas de banco quando há uma conexão direta, o que não é nosso caso.
Outra situação é que todas as colunas identificadas no arquivo dimcliente serão tratadas como string. Ainda não sei se é muito ruim esse tipo de situação, mas é o que ocorre.
Com essa visão geral, vamos aprofundar e analisar o que podemos extrair do software e que tipos de informação ele retorna das colunas.
O passo mais básico e se quiser um procedimento mais simples é clicar com o botão direito e clicar em quick analysis.
Dentro da ferramenta é possível criar transformações pontuais que podem ajudar a melhorar a análise da fonte de dados.
Eu não aconselharia utilizar esta fonte como base para carregar dimensões, lembre-se que o foco aqui é apenas analisar os dados que estamos extraindo para propor melhorias na captação dos dados pela organização.
Estas são as principais opções de transformação que podem ser criadas no data cleaner.
Como dito, se queremos melhor o processo de captura e registro dos dados, o ideal é não alterar nada, mantendo a fonte o mais original possível.
Dito isso, vamos para as opções de análise que o software permite.
Como desejo analisar o perfil das datas, terei que adicionar uma conversão, mas não irá alterar nada a fonte original.
Aqui escolho as colunas que desejo modificar.
Abaixo, a configuração do formato que esta coluna irá receber e qual valor irá substituir NULL.
Para configurar o null replacement, basta clicar em select e escolher um dos valores disponíveis ou configurar uma data fictícia; o data mask basta apagar com o backspace os valores de hora, minuto e segundo.
Para configurar o data analyzer, ligue-o à tarefa de conversão de datas que ele reconhecerá as colunas que possuem o formato date/time.
Essa foi a minha configuração criada, bem simples como podem ver.
Adicionei ainda as configurações de análise de distribuição como podem ver abaixo. A configuração é bem simples, basta ligar ao step de conversão e puxar as colunas.
Agora, como quero analisar as chaves da minha fonte, irei adicionar o step para converter para numérico, ligando a fonte DimCliente.csv.
Após, ligue esta tarefa na tarefa number analyzer e selecione as caixas de diálogo, como feito abaixo:
Agora, vamos averiguar se todos os campos estão preenchidos com a tarefa completeness analyzer, selecionando todas as colunas.
Essa é a condição para que o step considere algum campo incompleto. Ele deve estar em branco ou ter null no lugar.
E nesta opção, configuramos o modo de avaliação que a análise deverá tomar quando for executada.
Ela só vai considerar incompleto, quando todos os campos assim o forem. Se utilizar a outra opção, ao menor sinal, todo o resultado pode ser comprometido. Faça o teste!
Depois de configurar este campo, vamos para as análises de string desta dimensão e o primeiro step é utilizar a análise de padrões: pattern finder.
Nesta transformação, as únicas colunas que retirei foram as que já avaliamos nos steps de data e número, ou seja: customerid, birthdate, dateoffirstpurchase.
Eu não alterei as configurações padrões por achar bem completa e retornar o que é necessário.
Ela deve ser ligada a sua fonte de dados, ficando deste modo.
Um adendo importante, em algumas situações e alguns steps, eles conseguem capturar para seleção colunas de tarefas as quais eles não estão ligados, como foi o caso do completeness analyzes.
Quando isso ocorre, uma ligação entre as tarefas é criada automaticamente, o que às vezes torna o modelo meio confuso, se atentem a isso!
Adicione o string analyzer para ter o mesmo tipo de análise que os formatos datas e numéricos.
Esta análise para checar as chaves únicas, adicionei para averiguar se há valores duplicados na coluna customerid, que é a chave primária no banco.
E por fim, a análise mais completa que teremos que é a value distribution que gerará diversos gráficos com todos os dados colhidos da fonte que estamos analisando.
Ao final, o job do profiling ficou desta forma!!
Ao final, clique em execute!
CONCLUSÃO
Como podem perceber esse foi o post estrutural básico, onde criamos o primeiro job de transformação para obter um profiling de dados das nossas fontes extraídas do banco de dados.
Assim, concluo a primeira etapa do meu data profiling para a dimensão cliente e outras que virão.
Pelo fato do post ter ficado grande, irei postar no próximo, o resultado explicado das análises e o que aconteceu, quais erros percebi e quais podem ser evitados!
Ainda que um pouco confuso, gostei bastante de utilizar a ferramenta e explorarei mais para trazer qualidade nos posts para todos!
Espero que gostem, saúde!