Pipelines de ingestão, ETL e processamento de transmissão com o Azure Databricks e o Delta Lake

Azure Databricks
Armazenamento do Azure Data Lake
Hub IoT do Azure
Fábrica de dados do Azure
Hubs de eventos do Azure

Ideias de soluções

Esse artigo é uma ideia de solução. Caso deseje que ampliemos o conteúdo com mais informações, como possíveis casos de uso, serviços alternativos, considerações sobre implementação ou diretrizes de preços, fale conosco enviando seus comentários no GitHub.

Sua organização precisa ingerir dados de qualquer formato, tamanho e velocidade na nuvem de forma consistente. A solução neste artigo atende a essa necessidade com uma arquitetura que implementa extração, transformação e carregamento (ETL) de suas fontes de dados para um data lake. O data lake pode armazenar todos os dados, incluindo versões transformadas e curadas em várias escalas. Os dados podem ser usados para análise de dados, business intelligence (BI), relatórios, ciência de dados e aprendizado de máquina.

Apache® e Apache Spark™ são marcas registradas ou marcas comerciais do Apache Software Foundation nos Estados Unidos e/ou em outros países. O uso desta marca não implica aprovação por parte da Apache Software Foundation.

Arquitetura

Diagram that shows the architecture and data flow for ETL and stream processing with Azure Databricks.

Baixe um Arquivo Visio dessa arquitetura.

Fluxo de dados

  1. Os dados são ingeridos das seguintes maneiras:

    • Filas de eventos como Hubs de Eventos, Hub IoT ou Kafka enviam dados de streaming para o Azure Databricks, que usa o Mecanismo Delta otimizado para ler os dados.
    • Os pipelines do Data Factory agendados ou acionados copiam dados de diferentes fontes de dados em formatos brutos. O Auto Loader no Azure Databricks processa os dados à medida que chegam.
  2. O Azure Databricks carrega os dados em tabelas ou pastas Delta Lake otimizadas e compactadas na camada Bronze no Armazenamento Data Lake.

  3. Os trabalhos de streaming, agendados ou acionados do Azure Databricks leem novas transações da camada Bronze do Data Lake Storage. Os trabalhos unem, limpam, transformam e agregam os dados antes de usar transações ACID para carregá-los em conjuntos de dados selecionados nas camadas Silver e Gold do Data Lake Storage.

  4. Os conjuntos de dados são armazenados no Delta Lake no Data Lake Storage.

Cada serviço ingere dados em um formato comum para garantir a consistência. A arquitetura usa um data lake compartilhado com base no formato Delta Lake aberto. Os dados brutos são ingeridos de diferentes fontes de lote e streaming para formar uma plataforma de dados unificada. A plataforma pode ser usada para casos de uso downstream, como análise, relatórios de BI, ciência de dados, IA e aprendizado de máquina.

Camadas de armazenamento de bronze, prata e ouro

Com o padrão medalhão, composto por camadas de armazenamento Bronze, Prata e Ouro, os clientes têm acesso flexível e processamento de dados extensível.

  • As tabelas Bronze fornecem o ponto de entrada para dados brutos quando eles chegam ao Armazenamento Data Lake. Os dados são obtidos em seu formato de origem bruto e convertidos para o formato aberto e transacional Delta Lake para processamento. A solução ingere os dados na camada Bronze usando:
    • APIs Apache Spark no Azure Databricks. As APIs leem eventos de streaming de Hubs de Eventos ou Hub IoT e convertem esses eventos ou arquivos brutos no formato Delta Lake.
    • O comando COPY INTO. Use o comando para copiar dados diretamente de um arquivo ou diretório de origem para o Delta Lake.
    • O Azure Databricks Auto Loader. O Auto Loader pega arquivos quando eles chegam no data lake e os grava no formato Delta Lake.
    • A atividade de cópia do Data Factory. Os clientes podem usar essa opção para converter os dados de qualquer um de seus formatos suportados no formato Delta Lake.
  • As tabelas Silver armazenam dados enquanto estão sendo otimizados para casos de uso de BI e ciência de dados. A camada Bronze ingere dados brutos e, em seguida, mais tarefas de processamento de ETL e fluxo são feitas para filtrar, limpar, transformar, unir e agregar os dados em conjuntos de dados selecionados Silver. As empresas podem usar um mecanismo de computação consistente, como o Delta Engine de padrões abertos, ao usar o Azure Databricks como o serviço inicial para essas tarefas. Eles podem então usar linguagens de programação familiares como SQL, Python, R ou Scala. As empresas também podem usar processos de DevOps repetíveis e clusters de computação efêmeros dimensionados para suas cargas de trabalho individuais.
  • As tabelas Gold contêm dados enriquecidos, prontos para análises e relatórios. Os analistas podem usar seu método de escolha, como PySpark, Koalas, SQL, Power BI e Excel para obter novos insights e formular consultas.

Componentes

  • Os Hubs de Eventos analisam e pontuam mensagens de streaming de várias fontes, incluindo sistemas locais, e fornecem informações em tempo real.
  • O Data Factory orquestra pipelines de dados para ingestão, preparação e transformação de todos os seus dados em qualquer escala.
  • O Data Lake Storage reúne dados de streaming e em lote, incluindo dados estruturados, não estruturados e semiestruturados, como logs, arquivos e mídia.
  • O Azure Databricks limpa e transforma conjuntos de dados não estruturados e os combina com dados estruturados de bancos de dados operacionais ou data warehouses.
  • O IoT Hub oferece comunicação altamente segura e confiável entre seu aplicativo e dispositivos IoT.
  • O Delta Lake on Data Lake Storage oferece suporte a transações ACID para confiabilidade e é otimizado para ingestão, processamento e consultas eficientes.

Detalhes do cenário

O processamento de ingestão, ETL e fluxo com o Azure Databricks é simples, aberto e colaborativo:

  • Simples: um data lake aberto com uma camada curada em um formato de código aberto simplifica a arquitetura de dados. O Delta Lake, uma ferramenta de código aberto, fornece acesso ao data lake do Azure Data Lake Storage. O Delta Lake on Data Lake Storage oferece suporte a transações de atomicidade, consistência, isolamento e durabilidade (ACID) para confiabilidade. O Delta Lake é otimizado para ingestão, processamento e consultas eficientes.
  • Aberta: a solução dá suporte a código-fonte aberto, padrões abertos e estruturas abertas. Ela também funciona com ambientes de desenvolvimento integrado (IDEs), bibliotecas e linguagens de programação populares. Por meio de conectores nativos e APIs, a solução também funciona com uma ampla gama de outros serviços.
  • Colaborativo: engenheiros de dados, cientistas de dados e analistas trabalham em conjunto com essa solução. Eles podem usar notebooks colaborativos, IDEs, painéis e outras ferramentas para acessar e analisar dados subjacentes comuns.

O Azure Databricks se integra perfeitamente a outros serviços do Azure, como Data Lake Storage, Azure Data Factory, Hubs de Eventos do Azure e Hub IoT do Azure.

Possíveis casos de uso

Esta solução é inspirada no sistema que a Providence Health Care criou para análises em tempo real. Qualquer setor que ingera dados em lote ou streaming também pode considerar essa solução. Os exemplos incluem:

  • Varejo e comércio eletrônico
  • Finance
  • Saúde e ciências naturais
  • Fornecedores de energia

Próximas etapas

  • A Spanish Point Technologies cria seu Mecanismo de Correspondência usando o Azure Databricks e o Azure Data Factory para ingerir dados em escala para ajudar os músicos a serem pagos de forma justa.

Guias e arquiteturas totalmente implantáveis: