Quando pensamos em desenvolver um repositório central de dados como um Data Warehouse ou Data Lake, temos que entender que os dados estão espalhados dentro da empresa e que para carregarmos os dados no repositório é necessário que ocorra uma série de etapas para garantir a integridade, confiabilidade e compatibilidade dos dados com as regras de negócios.
Hoje, iremos falar sobre os processos de integração de dados entre sistemas: o ETL e ELT, e quais as diferenças entre eles.
ETL
Fonte: thinkartha.com
ETL ( Extract, Transform and Load) é um acrônimo para as etapas realizadas na integração dos dados em um data warehouse, data lake ou outro sistema de armazenamento centralizado.
Cada etapa desempenha uma função específica no processo:
Extract – A extração é a tarefa inicial, nessa etapa os dados são extraídos de diversas fontes como bancos de dados, APIs, arquivos CSV e etc. A extração ela pode ocorrer de forma incremental, extraindo apenas novos arquivos ou em lotes completos. Após os dados serem extraídos, eles serão carregados em uma área transitória, chamada de staging area, e aguardarão até as transformações.
Transform – A transformação é a etapa em que os dados que já foram extraídos, mas que continuam em seu estado bruto, sofrerão diversas operações como deduplicação, padronização dos dados, exclusão de dados nulos, agregação, enriquecimento e aplicação de regras de negócios. Também podem ser realizados cálculos nessa etapa.
Load – Carregamento é a última fase, em que os dados já tratados, limpos e prontos para consumo serão carregados para o repositório de destino final.
ELT
Fonte: qlink.com
O ELT possui as mesmas etapas do ETL, a diferença reside na ordem das etapas. Geralmente, o ETL é realizado em Data Warehouses, por alguns fatores entre eles finalidade de dados já bem definidos, o que permite as transformações ocorrerem antes do carregamento. Já o ELT, é comumente utilizado em Data Lakes, onde o custo de armazenar os dados é mais barato, permitindo armazenar os dados no seu estado bruto e também a possibilidade de não se ter um objetivo definido de quais dados serão consumidos pelos stakeholders.
Comparação entre ETL e ELT