Ingestão, ETL e pipelines de processamento de fluxo com o Azure Databricks e o Delta Lake

Azure Databricks
Azure Data Lake Storage
Azure IoT Hub
Azure Data Factory
Azure Event Hubs

Ideias de soluções

Este artigo é uma ideia de solução. Se você quiser que expandamos o conteúdo com mais informações, como possíveis casos de uso, serviços alternativos, considerações de implementação ou orientação de preços, informe-nos fornecendo feedback do 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 extrair, transformar e carregar (ETL) de suas fontes de dados para um data lake. O data lake pode armazenar todos os dados, incluindo versões transformadas e selecionadas 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 registadas ou marcas comerciais da Apache Software Foundation nos Estados Unidos e/ou noutros países. Nenhum endosso da Apache Software Foundation está implícito no uso dessas marcas.

Arquitetura

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

Transfira um ficheiro do Visio desta arquitetura.

Fluxo de dados

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

    • Filas de eventos como Hubs de Eventos, Hub IoT ou Kafka enviam dados de streaming para o Azure Databricks, que usa o Delta Engine otimizado para ler os dados.
    • Os pipelines do Data Factory agendados ou acionados copiam dados de diferentes fontes de dados em formatos brutos. O Carregador Automático 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 Armazenamento Data Lake. 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 baseado no formato aberto Delta Lake. Os dados brutos são ingeridos de diferentes lotes e fontes de streaming para formar uma plataforma de dados unificada. A plataforma pode ser usada para casos de uso downstream, como análises, relatórios de BI, ciência de dados, IA e aprendizado de máquina.

Camadas de armazenamento 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 aterrissam no Armazenamento Data Lake. Os dados são obtidos em seu formato de origem bruta e convertidos para o formato aberto e transacional Delta Lake para processamento. A solução ingere os dados na camada Bronze usando:
    • APIs do Apache Spark no Azure Databricks. As APIs leem eventos de streaming de Hubs de Eventos ou Hub IoT e, em seguida, convertem esses eventos ou arquivos brutos para o 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 carregador automático do Azure Databricks. 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 para o 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 com curadoria 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 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 Armazenamento Data Lake 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 os conjuntos de dados sem estrutura e combina-os com dados estruturados de bases de dados operacionais ou armazéns de dados.
  • O Hub IoT oferece comunicação altamente segura e confiável entre seu aplicativo IoT e dispositivos.
  • O Delta Lake on Data Lake Storage suporta transações ACID para confiabilidade e é otimizado para ingestão, processamento e consultas eficientes.

Detalhes do cenário

A ingestão, o ETL e o processamento de fluxo com o Azure Databricks são simples, abertos e colaborativos:

  • Simples: um data lake aberto com uma camada selecionada 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 Armazenamento do Azure Data Lake. O Delta Lake on Data Lake Storage suporta transações de atomicidade, consistência, isolamento e durabilidade (ACID) para confiabilidade. O Delta Lake é otimizado para ingestão, processamento e consultas eficientes.
  • Aberto: A solução suporta código aberto, padrões abertos e estruturas abertas. Ele também trabalha com ambientes de desenvolvimento integrado (IDEs) populares, bibliotecas e linguagens de programação. Através 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 esta solução. Eles podem usar blocos de anotações colaborativos, IDEs, painéis e outras ferramentas para acessar e analisar dados subjacentes comuns.

O Azure Databricks integra-se perfeitamente com outros serviços do Azure, como o Armazenamento Data Lake, o Azure Data Factory, os Hubs de Eventos do Azure e o Hub IoT do Azure.

Potenciais casos de utilização

Esta solução é inspirada no sistema que a Providence Health Care construiu para análises em tempo real. Qualquer indústria que ingera dados em lote ou streaming também pode considerar esta solução. Exemplos incluem:

  • Retalho e comércio eletrónico
  • Finance
  • Saúde e ciências biomédicas
  • Fornecedores de energia

Próximos passos

  • 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: