Lição 13: Conceito de ETL
(Extract, Transform and Load)
(Extract, Transform and Load)
Olá, aluno(a)! Você deve ter percebido que estamos vivendo em um mundo em que o crescimento de dados e o acúmulo de informações ocorrem rapidamente, em quantidades absurdas e em várias mídias. Aprendemos que o Business Intelligence (BI) utiliza essa grande quantidade de dados para análise, a fim de obter informações importantes de todo esse volume produzido, que podem ser utilizadas pelas empresas para a tomada de decisões (VIDA et al., 2021). Entretanto é necessário que haja uma integração de dados e informações de um Data Warehouse, e esse processo de integração é conhecido como ETL (Extract, Transform and Load). Dessa forma, nesta lição, veremos o que é ETL, como ele funciona em Data Warehouses bem como seus objetivos e benefícios.
Nesse momento, convido-o(a) a pensar no conceito de Data Warehouse visto na lição anterior. Ele é um armazém de dados e tem como objetivo agrupar e acumular grandes volumes de dados, derivados de diversas fontes, a fim de fornecer informações para a realização de análises complexas de Business Intelligence (BI).
Para as empresas, o Data Warehouse é uma ferramenta poderosa para obter informações estratégicas sobre seus negócios em diferentes setores, como marketing, administração, recursos humanos, bancos etc. (VIDA et al., 2021). O desafio é fazer a integração, a reorganização e a consolidação desse volume de dados que estão em diversos sistemas, para que forneçam uma base de informações unificada para BI e para que as empresas tomem as decisões sobre o negócio (VIDA et al., 2021). Qual seria, então, a solução para esse desafio? A solução seria usar o ETL para nomear esse processo (Extração, Transformação e Carregamento/Carga, do inglês, Extract, Transform and Load). Mas o que, de fato, é o ETL? Que tal nos aprofundarmos, ainda mais, nesse assunto?
No início, havia apenas o ETL (Extract, Transform and Load). Depois, as empresas criaram o ELT (Extract, Load and Transform), que é considerado um método complementar. O ELT extrai dados de um sistema-fonte, depois, carrega-os em um sistema de destino e, então, usa o poder de processamento para conduzir as transformações, acelerando o processamento de dados, porque acontece onde os dados estão (VIDA et al., 2021). Vamos a uma comparação do ETL x ELT? De acordo com Vida et al. (2021):
ETL significa extrair, transformar e carregar. Carrega os dados, primeiro, no servidor intermediário e, em seguida, no sistema de destino. É usado para dados locais, relacionais e estruturados. É usado, principalmente, para uma pequena quantidade de dados e é fácil de implementar.
ELT significa extrair, carregar e transformar. Carrega os dados, diretamente, no sistema de destino. É usado para fontes de dados escalonáveis estruturados e não estruturados em nuvem. É usado para grandes quantidades de dados e requer habilidades específicas para que seja implementado e mantido.
Não confunda ETL com ELT. A ordem das fases é muito importante!
ETL (Extract, Transform and Load) é um processo de carga de dados, sendo utilizado na integração de sistemas. A sua função é extrair dados de diferentes sistemas e transformá-los, conforme as regras de negócios e a carga dos dados, em um Data Warehouse. O ETL tornou-se o principal método de processamento de dados para projetos de armazenamento de dados. Por meio de regras de negócios, ele limpa e organiza os dados, para atender às necessidades e demandas específicas do BI, como relatórios mensais de informações, assim como faz análises avançadas, que são usadas para melhorar os processos de Back-End ou as experiências do usuário final (VIDA et al., 2021).
Podemos usar o ETL para:
Extrair dados de sistemas legados.
Limpar os dados para melhorar a qualidade dos dados e estabelecer consistência.
Carregar dados em um banco de dados de destino.
Na Figura 1, a seguir, temos a plataforma de extração, transformação e carga do ETL:
Vida et al. (2021, p. 160) afirmam que
Depois que o esquema do data warehouse for projetado, podemos começar a preenchê-lo com dados das fontes operacionais. Durante essa etapa, os dados são extraídos dos sistemas de origem, transformados para se ajustar ao esquema do data warehouse e, em seguida, carregados no data warehouse (Figura 1). Daí a sigla ETL que usamos para nomear esse processo (extração, transformação e carregamento/carga, do inglês extract, transform and load). Isso é bastante complexo, uma vez que muitas das fontes operacionais podem ser aplicações legadas ou dados não estruturados que foram documentados de forma precária.
Vamos conhecer as funções do ETL? Como vimos, é um processo no Data Warehouse que consiste em extrair, transformar e carregar dados. Para Vida et al. (2021, p. 164), nesse processo, “geralmente uma ferramenta ETL extrai os dados de vários sistemas de fonte de dados, transforma-os na área de preparação e finalmente, carrega-os no data warehouse”. Para entender melhor, verificaremos o que acontece em cada etapa do processo:
Nessa etapa, os dados são copiados ou exportados dos locais de origem para uma área intermediária para fazer toda a preparação. Nessa primeira etapa, dados estruturados e não estruturados são importados e consolidados em um único repositório. Os dados brutos podem ser extraídos de uma ampla variedade de fontes e recomenda-se o uso de ferramentas ETL, uma vez que elas automatizam todo esse processo para extrair dados e criam fluxo de trabalho com eficiência e confiabilidade (VIDA et al., 2021).
Na etapa de preparação, os dados brutos passam pelo processamento de dados. Nessa etapa, os dados são transformados e consolidados para o caso de uso analítico pretendido, dessa forma, regras e regulamentos podem ser aplicados para garantir a qualidade e a acessibilidade dos dados. A transformação de dados do ETL envolve várias outras atividades, como: filtragem, limpeza, eliminação de duplicações, validação e autenticação de dados. A remoção, a criptografia, a ocultação e a proteção dos dados são administradas por regulamentações governamentais ou setores específicos (VIDA et al., 2021).
A formatação dos dados em forma de tabelas, para satisfazer o esquema do Data Warehouse de destino e outras tarefas, tem o objetivo de melhorar a qualidade dos dados. Essa etapa é considerada a mais importante do processo ETL, porque, nela, é possível ter melhoria na integridade dos dados e garantia de que os dados cheguem ao seu novo destino com total compatibilidade e prontos para serem utilizados (VIDA et al., 2021).
Nessa etapa, os dados recém-transformados são transportados da área de preparação para o Data Warehouse de destino. Logo, os dados podem ser carregados todos de uma vez (carga total), ou em intervalos programados (carga incremental). São automatizados, bem definidos, contínuos e controlados por lote, ou seja, executados fora do horário comercial, quando o tráfego, nos sistemas de origem e no Data Warehouse, está no nível mais baixo (VIDA et al., 2021).
A função “carregar” tem duas abordagens:
Carregamento completo: tudo o que vem da fase de transformação vai para registros novos e exclusivos no Data Warehouse. Este produz conjuntos de dados que crescem de forma exponencial e que podem se tornar difíceis de fazer manutenções, embora, às vezes, isso seja útil para fins de pesquisa.
Carregamento incremental: abordagem menos abrangente, compara os dados recebidos com os que já estão disponíveis e só produz registros adicionais se informações novas e exclusivas forem identificadas. Permite que Data Warehouses menores e mais baratos mantenham e gerenciem melhor as atividades de BI.
VIDA et al. (2021, p. 167) dizem que:
Geralmente, há um carregamento inicial de todos os dados, seguido pelo carregamento periódico de alterações incrementais de dados e, em seguida, já com menos frequência, atualizações completas para apagar e substituir os dados no data warehouse. Além disso, na maioria das empresas que fazem uso do processo ETL, ele é automatizado, bem definido, contínuo e controlado por lote, ou seja, executado fora do horário comercial, quando o tráfego nos sistemas de origem e no data warehouse está no nível mais baixo.
O conceito de pipeline pode ser usado em ETL. Conforme VIDA et al. (2021, p. 167), um “pipeline é basicamente um conjunto de elementos de processamento de dados conectados em série, em que a saída de um elemento é a entrada do próximo. Os elementos de um pipeline são geralmente executados em paralelo ou em fatias de tempo”. Isso quer dizer que alguns dados, quando são extraídos, podem ser transformados e, durante esse período, alguns novos dados podem ser extraídos também. Isso porque, enquanto os dados transformados são carregados no Data Warehouse, os dados já extraídos podem ser transformados (VIDA et al., 2021).
Segundo Vida et al. (2021, p. 168), o ETL é “projetado de forma que os pipelines de dados e análises forneçam valor de negócios para a empresa. A execução de um pipeline com funções ETL pode ajudar a empresa a atingir vários objetivos Um desses objetivos é a clareza nas informações”. O uso de Data Warehouse e ETL implica uma conversão de dados de várias fontes para padronizar em um formato comum e, como resultados, os dados de vários departamentos e processos de negócios ficam padronizados e consistentes. Isso permite que os setores da empresa usem a mesma base de dados para fazer consultas bem como gerar relatórios e resultados alinhados com outras equipes, como vendas, marketing e operacional (VIDA et al., 2021).
Com as funções ETL, é possível: (I) coletar e fazer a leitura de grandes volumes de dados transformados; e (II) processar os dados para torná-los significativos com operações, como classificação, junção, reformatação, filtragem, mesclagem, agregação, entre outras. A empresa tem muitos benefícios quando passa a utilizar o ETL no Data Warehouse, principalmente qualidade e desempenho no retorno das consultas desejadas para apoiar a tomada de decisão de negócios.
Provavelmente, você deve estar se perguntando: como aplicar essa teoria? Como isso funciona na prática? A resposta para essa pergunta é: pesquisando sobre as ferramentas de ETL, pois essas são softwares utilizados para facilitar o processo de integração de dados. Muitas dessas ferramentas, inicialmente, são usadas em projetos de Data Warehouse e Business Intelligence (BI) e, também, em ETL. Existem diversas ferramentas de ETL no mercado, como:
IBM Information Server (Data Stage).
Oracle Data Integrator (ODI).
Power Center.
Microsoft Integration Services (SSIS).
Conjunto de Ferramentas de ETL Open Source, como o PDI (Pentaho Data Integrator) e Talend ETL.
Que tal você escolher uma delas, pesquisar e entender como funciona e quais empresas a usam? Por exemplo, a Talend ETL é uma das mais conceituadas e se encarrega de automatizar grande parte do processo de integração de dados, por meio do ETL, e torna a operação até 30 vezes mais rápida!
VIDA, E. S. et al. Data Warehouse. Porto Alegre: Sagah, 2021.