quinta-feira, 24 de junho de 2010

A busca sem fim: Qualidade dos dados

Prólogo: No último ano eu tenho trabalhado bastante com projetos de integração de bases e limpeza de dados, acumulando uma boa experiência com SQL Server e SSIS, além do processo de limpeza, integração, problemas mais comuns, falta de conhecimento do mercado sobre o assunto e miopia da gerência sobre o assunto, que se ainda não assombra, com certeza ainda trará sustos para a organização. As empresas estão cada vez mais cientes sobre processo de desenvolvimento, ALM, ferramentas, soluções de TI, etc. Mas a limpeza de dados e integração são assuntos extremamente delicados e muitos preferem não levantar o tapete para descobrir a poeira que está embaixo.

Dito isso comecei a escrever um artigo sobre qualidade de dados e, pelo andamento da carruagem e listagem dos tópicos, acredito que ele vai crescer muito. Então ao invés de esperar N dias para algo completo, resolvi publicar paulatinamente o texto em meu blog para apreciação. No fim vocês terão um artigo completo em PDF, mas até lá gostaria de ouvir a opinião de vocês sobre o assunto.

Espero que gostem...


A busca sem fim: Qualidade dos dados

 Durante meus últimos anos trabalhando com o SQL Server, uma constante de muitos lugares onde eu passei foi a qualidade, vamos dizer, duvidosa dos dados e a bagunça que vai se formando quando a empresa e o número de sistemas crescem. Começam a surgir “mini-sistemas” (e soluções departamentais) para atender a demandas pontuais de negócio, grandes sistemas com “puxadinhos” para atender novas regras de negócio ou tentar facilitar a vida do usuário final.

Dentro desse contexto de crescimento e evolução da tecnologia da informação, é natural que chegue um momento onde a alta gerência da empresa passe a demandar uma visão consolidada de toda empresa, seja implantando uma solução de BI, ERP, CRM, e outras tantas sopas de letrinhas.

É nesse momento, quando nas N bases isoladas nas mais diversas e esdrúxulas fontes de dados, precisam ser integradas, limpas e conformadas, para que a nova solução empresarial (usualmente iluminada pelos holofotes de toda organização, nascendo cheio de expectativa e promessas de maravilhas) consiga atender seu objetivo.

E esse processo de extração, transformação e carga dos dados (ELT – Extract, Transform, Load) ou ECCD (Extract, Clean, Conform, Deliver) – termo “roubado” dos jargões de DW, que precisa ser executado para garantir o nascimento de uma linda criança, e não um Frankstein cheio de remendos. Esse pequeno item, que de pequeno não têm nada, é onde as dificuldades aparecem e muitas vezes não é dada a devida atenção, tocando em um ponto crucial, a qualidade dos dados.

Notem que não estou restringindo o ETL a ser usado somente por um projeto de DW, se estou fazendo uma integração de bases terei que passar naturalmente por esses mesmos passos, só que não carregarei uma estrutura dimensional, mas talvez crie um único banco de dados centralizado ou um repositório para master data management.


Um repositório com 100% de qualidade de dados ... É possível?


SIM... Com um pequeno detalhe: desde que sejam acordadas pelo cliente e área de TI as exatas definições de qualidade (e este não seja 100% de limpeza e conformidade em todas as entidades). Realisticamente falando, essas definições nunca serão conseguidas durante a análise de requisitos, mas sim durante a limpeza dos dados e com a correta dimensão do tamanho do problema (profiling). Durante esse processo, o faxineiro (área de TI) e o patrão (negócio) podem concordar que manter uma poeira na estante é aceitável, mas é claro que a expectativa é sempre que a casa fique brilhando, mas para isso acontecer só embalando tudo a vácuo...

Agora, 100% de limpeza como normalmente está na cabeça do usuário final (nenhuma inconsistência em ponto algum), eu não acredito. Não por falta de ferramentas ou abordagens para fazer isso, mas porque os sistemas originais, os vícios do usuário final e todas as estruturas que geram as inconsistências não serão trocados no mesmo instante em que você acabou de fazer a melhor limpeza, digna dos deuses. Então eu consigo pensar em um conjunto de dados (estático) que seja completamente limpo e a qualidade garantida, mas quando esse trabalho acabar, um conjunto de novas inconsistências estarão esperando para serem tratadas.

É importante que o os stakeholders dos novos projetos estejam cientes da dificuldade e complexidade desse processo contínuo de limpeza. E aí eu acho que nós, como TI, falhamos em apresentar por completo as possíveis barreiras que devemos encontrar e tradicionalmente fazemos estimativas mais otimistas que o devido. O problema é que esse dimensionamento e exemplificação não é algo simples, e a experiência e calos passados contam muito na hora de fazer o próximo trabalho.

Meu conselho: se você está trabalhando ou vai participar de um projeto de integração e limpeza de bases, se prepare para um projeto desafiador... (Mas excelente para a alma geek e o bom profissional).


(Continua na parte 02...)



[]s
Luciano Caixeta Moreira - {Luti}
Sr. Nimbus Serviços em Tecnologia Ltda
luciano.moreira@srnimbus.com.br
www.twitter.com/luticm

2 comentários:

  1. Gostei da parte que fala que quando uma limpeza termina outra começa !!

    ResponderExcluir
  2. Ótimo post Luti!!
    Realmente é um trabalho duro, mas muito prazerosa!
    Independente das dificuldades o importante mesmo é ter consciência de que os dados não estão 100% limpos, porém são 100% confiáveis!

    []s

    Wagner Andrade

    ResponderExcluir