O que são processos ETL
A origem dos dados pode ser muito diversa e podem ser encontrados em diversos formatos. Por esse motivo, muitas vezes é necessário padronizar as informações brutas recebidas para melhor organização dentro do data warehouse.
O que é ETL: funções e fases
O processo ETL consiste basicamente em mover dados entre diferentes fontes e aplicar transformações ao longo do caminho, se necessário.
Em muitos casos é necessário migrar informações de um banco de dados para outro ou coletar informações provenientes de servidores externos e armazená-las de forma limpa e organizada em um data warehouse, também conhecido como data warehouse.
Vamos analisar cada uma das fases de um processo ETL:
1. Extração
Esta parte consiste na coleta de dados brutos de diferentes fontes de informação. Normalmente a origem são arquivos simples ou bancos de dados relacionais (SQL).
No entanto, as conexões podem ser feitas com bancos de dados não relacionais (NoSQL) ou com informações provenientes de sistemas em tempo real.
Na parte de extração também é verificado se as informações recebidas pelo remetente possuem o formato correto e a estrutura necessária para que as etapas seguintes do ETL possam ocorrer.
2. Transformação
A parte de transformação consiste em aplicar certas modificações nos dados recebidos na fase de extração de acordo com um conjunto de regras de negócio.
Algumas dessas transformações consistem em calcular novos valores a partir dos existentes, selecionar apenas determinadas colunas, codificar valores categóricos, girar colunas e linhas por meio de pivotamento, etc.
Uma vez que os dados já estejam de acordo com as regras predefinidas, é hora de passar para a próxima fase: o carregamento.
3. Carregar
A última fase consiste em carregar os dados limpos com a estrutura correta no sistema de destino. Normalmente esse despejo de dados é feito em um data warehouse. Lá eles são armazenados com segurança e podem ser analisados e visualizados posteriormente com ferramentas de BI como Power BI ou Tableau.
Processos ELT: data lakes
ELT significa Extrair, Carregar e Transformar e é um método que difere dos processos ETL porque a transformação dos dados ocorre após o carregamento no sistema de destino. Ou seja, o sistema que armazena as informações deve ser capaz de aplicar as transformações necessárias.
Neste caso, o formato de armazenamento de dados consiste em um data lake. Um data lake é um armazenamento de dados brutos que não possui nenhuma estrutura predefinida.
Poderíamos dizer que os dados são armazenados de forma ordenada, ao contrário dos data warehouses (típicos dos processos ETL) onde a informação é armazenada de forma ordenada seguindo um determinado esquema.
O processo ELT é normalmente usado em bancos de dados não relacionais ou NoSQL.
Diferenças entre ETL e ELT
Não existe método melhor ou pior. Cada processo é ideal para determinadas funcionalidades.
O engenheiro de Big Data deve ser capaz de desenhar um bom pipeline de acordo com as necessidades exigidas em cada aplicação.
A principal diferença entre ETL e ELT é quando os dados são processados, limpos e selecionados. No caso do ETL isso acontece antes de ser salvo no destino, portanto há algumas informações que se perdem durante o processo.
Em vez disso, no ELT, os dados são transformados diretamente no destino, preservando assim os dados iniciais.
Normalmente, a infraestrutura de armazenamento na qual um processo ETL é usado é conhecida como data warehouse. No caso dos processos ELT, essa infraestrutura é chamada de data lake. Os data lakes não possuem nenhum esquema, são dados brutos e não são ordenados.
Em contraste, os data warehouses são estruturas de dados ordenadas por meio de um esquema predeterminado.
Usar um ou outro depende do objetivo do projeto. Por exemplo, se a velocidade de ingestão for muito importante então optaremos por um processo ELT, pois não perderemos tempo transformando os dados antes de salvá-los no sistema de destino.