Partilhar via


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

Microsoft Fabric
Azure Data Factory

As organizações geralmente precisam coletar dados de várias fontes em vários formatos e 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, e os dados geralmente precisam ser moldados, limpos ou transformados antes de serem carregados.

Várias ferramentas, serviços e processos ajudam a enfrentar esses desafios. Independentemente da abordagem, você precisa coordenar o trabalho e aplicar transformações de dados dentro do pipeline de dados. As seções a seguir destacam os métodos e práticas comuns para essas tarefas.

Processo de extração, transformação, carga (ETL)

Extrair, transformar, carregar (ETL) é um processo de integração de dados que consolida dados de diversas fontes em um armazenamento de dados unificado. Durante a fase de transformação, os dados são modificados de acordo com as regras de negócios usando um mecanismo especializado. Isso geralmente envolve tabelas de preparo que armazenam temporariamente os dados à medida que são processados e, finalmente, carregados em seu destino.

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

A transformação de dados que ocorre geralmente envolve várias operações, como filtragem, classificação, agregação, junção de dados, limpeza de dados, desduplicação e validação de dados.

Muitas vezes, 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 em dados já recebidos e prepará-los para carregamento, e um processo de carregamento pode começar a trabalhar nos dados preparados, em vez de esperar que todo o processo de extração seja concluído. Normalmente, você projeta paralelização em torno dos limites da partição de dados (data, locatário, chave de estilhaço) para evitar contenção de gravação e habilitar tentativas idempotentes.

Serviço relevante:

Outras ferramentas:

Extrair, carregar, transformar (ELT)

Extrair, carregar, transformar (ELT) difere do ETL apenas no local onde a transformação ocorre. No pipeline ELT, a transformação ocorre no armazenamento de dados de destino. Em vez de usar um mecanismo de transformação separado, os recursos de processamento do armazenamento de dados de destino são usados para transformar dados. Isso simplifica a arquitetura, removendo o 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 de forma eficiente.

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

Os casos de uso típicos do ELT se enquadram no domínio do big data. Por exemplo, você pode começar extraindo dados de origem para arquivos simples em armazenamento escalável, como um Hadoop Distributed File System (HDFS), armazenamento de blob do Azure ou Azure Data Lake Storage Gen2. Tecnologias como Spark, Hive ou PolyBase podem ser usadas para consultar os dados de origem. O ponto-chave com o ELT é que o armazenamento de dados usado para executar a transformação é o mesmo armazenamento de dados onde os dados são consumidos. Esse armazenamento de dados lê diretamente do armazenamento escalável, em vez de carregar os dados em seu próprio armazenamento separado. Essa abordagem ignora as etapas de cópia de dados presentes no ETL, que geralmente podem ser demoradas para grandes conjuntos de dados. Algumas cargas de trabalho materializam tabelas ou exibições transformadas para melhorar o desempenho da consulta ou impor regras de governança; O ELT nem sempre implica transformações puramente virtualizadas.

A fase final do pipeline ELT normalmente transforma os dados de origem em um formato mais eficiente para os tipos de consultas que precisam ser suportadas. Por exemplo, os dados podem ser particionados por chaves comumente filtradas. O ELT também pode usar formatos de armazenamento otimizados, como o Parquet, que é um formato de armazenamento colunar que organiza dados por coluna para permitir compactação, pushdown de predicados e varreduras analíticas eficientes.

Serviço Microsoft relevante:

Escolher ETL ou ELT

A escolha entre estas abordagens depende dos seus requisitos.

Escolha ETL quando:

  • Você precisa descarregar transformações pesadas de um sistema de destino restrito
  • Regras de negócios complexas exigem mecanismos de transformação especializados
  • Requisitos regulatórios ou de conformidade exigem auditorias de preparo com curadoria antes do carregamento

Escolha ELT quando:

  • Seu sistema de destino é um armazém de dados moderno ou lakehouse com escalonamento de computação elástica
  • Você precisa preservar dados brutos para análise exploratória ou evolução futura do esquema
  • A lógica de transformação se beneficia dos recursos nativos do sistema de destino

Fluxo de dados e fluxo de controle

No contexto de 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. Você pode pensar nessas restrições como conectores em um diagrama de fluxo de trabalho, conforme mostrado na imagem abaixo. Cada tarefa tem um resultado, como sucesso, fracasso ou conclusão. Qualquer tarefa subsequente não inicia o processamento até que seu antecessor tenha sido 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 dos fluxos de controle, você não pode adicionar restrições entre tarefas em um fluxo de dados. No entanto, você pode adicionar um visualizador de dados para observar os dados à medida que 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, há várias tarefas dentro do fluxo de controle, uma das quais é uma tarefa de fluxo de dados. Uma das tarefas é aninhada dentro de um contêiner. Os contentores podem ser utilizados para estruturar tarefas, fornecendo uma unidade de trabalho. Um desses exemplos é para repetir elementos dentro de uma coleção, como arquivos em uma pasta ou instruções de banco de dados.

Serviço relevante:

ETL Inverso

ETL reverso é o processo de mover dados transformados e modelados de sistemas analíticos em ferramentas e aplicações operacionais. Ao contrário do ETL tradicional, que flui dados de sistemas operacionais para análises, o ETL reverso ativa insights enviando dados selecionados de volta para onde os usuários corporativos podem agir sobre eles. Em um pipeline de ETL reverso, os dados fluem de armazéns de dados, lakehouses ou outros armazenamentos analíticos para sistemas operacionais, como:

  • Plataformas de gestão de relacionamento com o cliente (CRM)
  • Ferramentas de automação de marketing
  • Sistemas de apoio ao cliente
  • Bancos de dados de carga de trabalho

A abordagem ainda segue um processo de extração, transformação e carga. A etapa de transformação é onde você converte do formato específico usado pelo seu data warehouse ou outro sistema de análise para se alinhar ao do seu sistema de destino.

Consulte Reverse extract, transform, & load (ETL) com o Azure Cosmos DB para NoSQL para obter um exemplo.

Streaming de dados e arquiteturas de hot path

Quando precisar de hot path do Lambda ou arquiteturas Kappa, você poderá assinar fontes de dados à medida que os dados são gerados. Ao contrário do ETL ou ELT, que operam em conjuntos de dados em lotes agendados, o streaming em tempo real processa os dados à medida que chegam, permitindo insights e ações imediatas.

Diagrama do processo push, transform, and load.

Em uma arquitetura de streaming, os dados são ingeridos de fontes de eventos em um agente de mensagens ou hub de eventos (como Hubs de Eventos do Azure ou Kafka) e, em seguida, processados por um processador de fluxo (como Fabric Real-Time Intelligence, Azure Stream Analytics ou Apache Flink). O processador aplica transformações como filtrar, agregar, enriquecer ou unir dados de referência — tudo em movimento — antes de rotear os resultados para sistemas downstream, como painéis, alertas ou bancos de dados.

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

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

Considerações de confiabilidade para streaming

  • Use o ponto de verificação para garantir o processamento pelo menos uma vez e a recuperação de falhas
  • Projetar transformações para serem idempotentes para lidar com potencial processamento duplicado
  • Implemente a marca d'água para eventos tardios e processamento fora de ordem
  • Usar filas de letra morta para mensagens que não podem ser processadas

Opções de tecnologia

Armazenamentos de dados:

Pipeline e orquestração:

Lakehouse e análises modernas:

Próximos passos