Compartilhar via


ETL (extração, transformação e carregamento)

Microsoft Fabric
Fábrica de dados do Azure

Um problema comum que as organizações enfrentam é como coletar dados de várias fontes em vários formatos. Depois, você precisa movê-los para um ou mais armazenamentos de dados. O destino pode não ser o mesmo tipo de armazenamento de dados que a origem. Muitas vezes, o formato é diferente ou os dados precisam ser formatados ou limpos antes de serem carregados no destino final.

Várias ferramentas, serviços e processos foram desenvolvidos ao longo dos anos para ajudar a solucionar esses desafios. Qualquer que seja o processo utilizado, há uma necessidade comum de coordenar o trabalho e aplicar algum nível de transformação de dados dentro do pipeline de dados. As seções a seguir destacam os métodos comuns usados para executar essas tarefas.

Processo de ETL (extração, transformação e carregamento)

O ETL (extração, transformação e carregamento) é um pipeline de dados usado para coletar dados de várias fontes. Em seguida, ele transforma os dados de acordo com as regras de negócio e os carrega em um armazenamento de dados de destino. O trabalho de transformação no ETL ocorre em um mecanismo especializado e, muitas vezes, envolve o uso de tabelas de preparo para armazenar os dados temporariamente enquanto eles são transformados e, por fim, carregados no destino.

Diagrama do processo de ETL (extração, transformação e carregamento).

A transformação de dados ocorrida geralmente envolve diversas operações, como filtragem, classificação, agregação, junção de dados, limpeza de dados, eliminação de duplicação e validação de dados.

Com frequência, as três fases de ETL são executadas em paralelo para economizar tempo. Por exemplo, enquanto os dados estão sendo extraídos, um processo de transformação pode trabalhar nos dados já recebidos e prepará-los o para carregamento e um processo de carregamento pode começar a trabalhar com os dados preparados, em vez de aguardar a conclusão de todo o processo de extração.

Serviço relevante:

Outras ferramentas:

ELT (extração, carregamento e transformação)

O ELT (extração, carregamento e transformação) difere do ETL somente no local em que ocorre a transformação. No pipeline de ELT, a transformação ocorre no armazenamento de dados de destino. Em vez de usar um mecanismo de transformação separado, as funcionalidades de processamento do armazenamento de dados de destino são usadas para transformar os dados. Isso simplifica a arquitetura pela remoção do mecanismo de transformação do pipeline. Outro benefício dessa abordagem é que o dimensionamento do armazenamento de dados de destino também dimensiona o desempenho do pipeline ELT. No entanto, o ELT só funciona bem quando o sistema de destino é poderoso o suficiente para transformar os dados com eficiência.

Diagrama do processo de ELT (extração, carregamento e transformação).

Os casos típicos de uso do ELT se enquadram no âmbito do Big Data. Por exemplo, você pode começar com a extração de todos os dados de origem em arquivos simples em um armazenamento escalonável, como um Sistema de Arquivos Distribuído do Hadoop, um Armazenamento de Blobs do Azure ou o Azure Data Lake Gen 2 (ou uma combinação deles). Tecnologias como o Spark, o Hive ou o PolyBase podem ser usadas para consultar os dados de origem. O ponto-chave do ELT é que o armazenamento de dados usado para executar a transformação é o mesmo armazenamento de dados no qual os dados são, em última análise, consumidos. Esse armazenamento de dados lê diretamente do armazenamento escalonável, em vez de carregar os dados em seu próprio armazenamento proprietário. Essa abordagem ignora a etapa de cópia de dados presente no ETL, que muitas vezes pode ser uma operação demorada para conjuntos de dados grandes.

Normalmente, a fase final do pipeline ELT é transformar os dados de origem em um formato final que é mais eficiente para os tipos de consultas que precisam de suporte. Por exemplo, os dados podem ser particionados. Além disso, o ELT pode usar formatos de armazenamento otimizados como o Parquet, que armazena dados controlados por linha em forma de coluna e fornece indexação otimizada.

Serviço Relevante da Microsoft:

Fluxo de dados e fluxo de controle

No contexto dos pipelines de dados, o fluxo de controle garante o processamento ordenado de um conjunto de tarefas. Para impor a ordem de processamento correta dessas tarefas, restrições de precedência são usadas. Considere essas restrições como conectores em um diagrama de fluxo de trabalho, conforme mostrado na imagem abaixo. Cada tarefa tem um resultado, como êxito, falha ou conclusão. Qualquer tarefa posterior não inicia o processamento até que seu predecessor tenha concluído com um desses resultados.

Os fluxos de controle executam fluxos de dados como uma tarefa. Em uma tarefa de fluxo de dados, os dados são extraídos de uma fonte, transformados ou carregados em um armazenamento de dados. A saída de uma tarefa de fluxo de dados pode ser a entrada para a próxima tarefa de fluxo de dados e os fluxos de dados podem ser executados em paralelo. Ao contrário de fluxos de controle, não é possível adicionar restrições entre tarefas em um fluxo de dados. No entanto, é possível adicionar um visualizador de dados para observar os dados conforme eles são processados por cada tarefa.

Diagrama de um fluxo de dados sendo executado como uma tarefa dentro de um fluxo de controle.

No diagrama acima, há várias tarefas dentro do fluxo de controle, cada uma sendo uma tarefa de fluxo de dados. Uma das tarefas é aninhada em um contêiner. Os contêineres podem ser usados para fornecer estrutura às tarefas, fornecendo uma unidade de trabalho. Um exemplo disso são elementos de repetição em uma coleção, como arquivos em uma pasta ou instruções de banco de dados.

Serviço relevante:

Streaming de dados e arquiteturas de caminho quente (push, transformação e carregamento)

Quando você precisa de arquiteturas lambda hot path ou Kappa, outra opção é assinar várias fontes de dados à medida que os dados estão sendo gerados. Ao contrário de ETL ou ELT, que operam em conjuntos de dados em lotes agendados, o streaming em tempo real processa dados à medida que chegam, permitindo insights e ações imediatos.

Diagrama do processo de envio, transformação e carregamento.

Em uma arquitetura de streaming, os dados são ingeridos de fontes de eventos em um agente de mensagens ou hub de eventos (por exemplo, Hubs de Eventos do Azure, Kafka) e processados por um processador de fluxo (por exemplo, Fabric Real-Time Intelligence, Azure Stream Analytics, Apache Flink). O processador aplica transformações como filtragem, agregação, enriquecimento ou junção com dados de referência, tudo em movimento, antes de rotear os resultados para sistemas downstream, como dashboards, alertas ou bancos de dados.

Essa abordagem é ideal para cenários em que a baixa latência e as atualizações contínuas são críticas, como:

  • Monitoramento de equipamentos de fabricação para anomalias
  • Detectando fraudes em transações financeiras
  • Alimentando painéis em tempo real para logística ou operações
  • Disparando alertas com base nos limites do sensor

Opções de tecnologia

Próximas etapas

As seguintes arquiteturas de referência mostram os pipelines ELT de ponta a ponta no Azure: