ETL do ingles Extract Transform Load (Extracao Transformacao Carga) sao ferramentas de software cuja funcao e a extracao de dados de diversos sistemas, transformacao de dados conforme regras de negocios e por fim a carga dos dados em um DM ou um DW, segundo definicao da Wikipedia (acesso em 29.abril.2010).E comum que os sistemas OLTP das organizacoes tenham sido desenvolvidos por diferentes equipes de programadores, empresas de software, linguagem de programacao diferente, que no seu desenvolvimento, tenham adotado diferentes convencoes na codificacao de variaveis, nomes dos atributos das tabelas, diferentes tipos de dados ou formatos de datas.A etapa de ETL e considerada uma das fases mais criticas da elaboracao de DW ou um DM pela grande variedade de fontes de dados possiveis para obtencao de dados para alimentar os mesmos.Ao reunir dados dos diferentes sistemas deve ser definida uma norma unica para o DW e realizar as transformacoes necessarias em cada caso. Basicamente devem ser realizadas as seguintes tarefas:Estabelecer as regras que serao utilizadas para realizar a transformacao. Detectar as inconsistencias que podem ocorrer ao extrair dados de diferentes fontes. Planejar cuidadosamente e com detalhes a transformacao dos dados, que oferecam como resultado final conjuntos de dados consistentes. O grande desafio por tras da alimentacao de dados das fontes para o DW nao e tecnico, mas sim, gerencial, como afirma Goncalves (2003). Muitos dos processos envolvidos no ETL sao definidos no processo de analise e projeto como definicoes de mapeamento e integracao de dados.Goncalves (2003) diz que as definicoes de regras de transformacao e deteccao de dados consomem cerca de 80% do tempo do projeto, sendo que a maioria das regras necessarias de mapeamento e transformacao de dados existe apenas na cabeca dos analistas e usuarios. Isso certamente e um indicador de influencia para justificar o tempo gasto para a definicao dos mesmos.Extracao de dados Varias alternativas para extracao de dados permitem o balanceamento de desempenho. Por exemplo, se a fonte for um banco de dados online e aceitar a submissao de consultas diretas, pode ser criado arquivo de consulta apenas com instrucoes SQL, todavia, podem ocorrer quedas de desempenho no banco de dados online e as consultas para a extracao de dados concorrem entre si. Uma solucao alternativa para este caso seria a criacao de um banco de dados copia para a extracao do pacote de dados. Processo este que geraria a necessidade maior de espaco em disco.As rotinas de extracao devem ser capazes de isolar somente os dados que foram inseridos e atualizados desde a ultima extracao processo este conhecido como refresh. Conforme Goncalves (2003) diz a melhor politica de refresh so pode ser avaliada pelo administrador de DW, pois, neste processo varios fatores sao determinantes para escolha do mesmo como as necessidades do usuario final, trafego na rede e periodos de menor carga no sistema. Transformacao Depois que os dados sao extraidos e necessario o tratamento destes efetuando limpeza e a filtragem afim de, garantir a integridade dos dados atraves de programas ou rotinas especiais que tentam identificar anomalias e caso encontre e necessario resolve-las antes de ser inseridas