Ir para o conteúdo principal
Soluções

Da bancada de testes ao lakehouse: como a AVL moderniza a análise de dados de medição com o Impulse

por Dr. Thomas Bonfert, Jonathan Bräuer, Fabian Ade, Maxim Hammer, Florian Gorzitzke, David Crescence, Christa Simon, Jörg Zimmermann e Hannes Schneider

  • O Impulse é um framework open-source do Databricks Labs que permite a engenheiros de domínio analisar dados de sensores no Databricks com expressões simples em Python.
  • O Impulse escala a análise de séries temporais para centenas de terabytes de dados de medição, mantendo as análises reproduzíveis, compartilháveis entre equipes e governadas pelo Unity Catalog.
  • A AVL substituiu sua plataforma legada on-premise pelo Impulse no Databricks, reduzindo o tempo de análise de dias para minutos e padronizando a análise de dados de medição em toda a organização.

1. Introdução - Impulse: análise de séries temporais para dados de medição

Uma única campanha de testes automotivos produz centenas de milhares de registros de medição e centenas de terabytes de dados de sensores de séries temporais. Esses dados são armazenados em formatos binários como ASAM MDF4 e são tradicionalmente analisados com ferramentas de desktop como NI DIAdem ou MATLAB. Os engenheiros de domínio gostam dessas ferramentas por um bom motivo. Eles podem se concentrar na análise real, decidindo quais sinais comparar e quais condições definem um evento crítico, sem precisar se tornar especialistas em frameworks de big data e computação distribuída. Mas as ferramentas não têm escala, as análises baseadas em scripts isolados são difíceis de reproduzir e os dados ficam fora da governança em que o restante de uma empresa moderna confia.

Impulse é uma biblioteca de análise baseada em Python, publicada como um projeto do Databricks Labs, que preenche essa lacuna na Databricks Intelligence Platform. Em sua essência (Figura 1), o Impulse fornece três ingredientes principais:

  1. Uma Time Series Analytics Language (TSAL) declarativa que permite aos engenheiros expressar aritmética de sinais, condições de eventos e agregações em Python natural, sem exigir experiência em Spark.
  2. Um mecanismo de consulta plugável que compila expressões TSAL em execução distribuída do Spark em milhares de gravações armazenadas em qualquer layout de dados de entrada.
  3. Abstrações baseadas no domínio que se mapeiam diretamente à forma como os engenheiros pensam sobre seus dados, incluindo contêineres de medição, canais de sensores, eventos operacionais e agregações ponderadas por duração e distância.

Neste post do blog, mostramos como o Impulse potencializa o Lakehouse para Dados de Medição da AVL no Databricks. A AVL é uma empresa líder mundial em tecnologia de mobilidade, especializada no desenvolvimento, simulação e teste de sistemas de veículos e energia. Eles trabalham com dados de medição e simulação para validar projetos, entender o comportamento do sistema e acelerar o desenvolvimento de produtos orientados a dados, desde modelos virtuais até testes no mundo real. Passaremos pela arquitetura lakehouse, por três modos de uso complementares que atendem tanto a engenheiros de domínio quanto a engenheiros de dados e cientistas de dados, e pelo impacto que a AVL observou em produção. O Impulse baseia-se em um modelo de dados hierárquico da camada Silver, codesenvolvido com a Mercedes-Benz e descrito em nosso post anterior do blog.

Arquitetura do Impulse.
Figura 1 – Arquitetura do Impulse. O framework é composto por três componentes. A TSAL é uma DSL declarativa em Python para expressar sinais, eventos e agregações sem exigir experiência em Spark. O Query Engine plugável compila expressões TSAL em planos de execução distribuída do Spark e executa consultas em dados da camada Silver. As agregações baseadas no domínio incluem histogramas 1D/2D ponderados por duração e distância e estatísticas com escopo de evento. O Impulse eventualmente grava os resultados em um esquema estrela da camada Gold.

2. A arquitetura - um lakehouse para dados de medição

A plataforma da AVL segue a Arquitetura de Medalhão, com o Unity Catalog fornecendo governança em todas as camadas e o Databricks Workflows orquestrando o pipeline (veja a Figura 2).

1. Origem e Ingestão: Arquivos de medição brutos (por exemplo, no formato ASAM MDF4) são ingeridos na camada Bronze usando um Databricks Solution Accelerator. A AVL estendeu esse acelerador para funcionar com o AVL Concerto, seu sistema de gerenciamento de dados de medição que suporta múltiplos formatos de arquivo proprietários. Metadados contextuais (IDs de veículos, versões de software, tags de projeto, etc.) são ingeridos junto com os arquivos gravados.

2. Camada Silver: Os dados da camada Bronze são transformados no modelo de dados hierárquico para dados de medição. O modelo organiza os dados em torno de contêineres (ou seja, arquivos individuais) e canais (sinais de sensores), cada um enriquecido com atributos/tags e métricas nos níveis de contêiner e de canal. A camada Silver armazena dados validados e com garantia de qualidade, preparados para processamento analítico. As regras de garantia de qualidade de dados são implementadas usando o framework Databricks DQX e são totalmente configuráveis e personalizáveis para atender a necessidades específicas de análise downstream. Consulte o nosso post de blog publicado anteriormente para obter mais detalhes sobre o modelo de dados da camada Silver.

3. + 4. Da Silver para a Gold: A camada Silver alimenta o Impulse, que traduz a lógica de análise declarativa em execução distribuída do Spark. As saídas podem ser um esquema estrela da camada Gold para relatórios, DataFrames ad-hoc para exploração ou matrizes de recursos para ML (veja a Seção 5).

5. Serviço e Análise: Ferramentas de BI como Databricks Dashboards ou Lakehouse Apps consomem dados da camada Gold por meio de SQL Warehouses, permitindo a exploração interativa sem tocar no pipeline de computação.

Arquitetura de referência de alto nível do Lakehouse
Figura 2 – Arquitetura de referência de alto nível do Lakehouse para Dados de Medição. (1) Os arquivos de medição brutos são ingeridos na camada Bronze. (2) Os dados são transformados no modelo de dados padronizado da camada Silver. (3+4) O Impulse traduz a lógica de análise declarativa em execução distribuída e produz saídas na camada Gold. (5) Ferramentas de BI e Lakehouse Apps disponibilizam os resultados para os usuários finais. Veja o texto para mais detalhes.

3. Colocando o Impulse para funcionar: uma análise completa em 10 linhas de Python

A melhor maneira de entender o Impulse é vê-lo em ação. Nesta seção, passaremos por um exemplo mínimo, mas realista: selecionar sensores de temperatura da bateria, definir um evento de risco de fuga térmica com base nesses sensores e calcular um histograma ponderado por duração, tudo usando a Time Series Analytics Language (TSAL).

Selecionando canais físicos e definindo canais virtuais

O ponto de partida para qualquer análise é selecionar os canais de sensores físicos de interesse. O QueryBuilder pesquisa as tabelas de metadados da camada Silver e retorna uma expressão TSAL. No exemplo abaixo, recuperamos as temperaturas de célula mais alta e mais baixa de nossa plataforma de EV e computamos o desequilíbrio de temperatura (delta):

Observe que a linha única para definir o canal virtual codifica uma computação não trivial. O framework realiza automaticamente a resolução de aliases de canais, conversão de unidades, alinha os canais a um eixo de tempo comum e realiza a interpolação de pontos de dados antes de executar a aritmética.

Definindo um evento

Eventos são janelas de tempo derivadas de condições de sinal. Aqui, definimos um evento de segurança crítico onde a temperatura máxima absoluta da célula excede um limite seguro (60 °C) OU a variação de temperatura entre as células é suspeitamente alta (maior que 5 °C):

As expressões TSAL são totalmente combináveis: canais virtuais, condições booleanas e agregações podem fazer referência entre si.

Computando um histograma dentro do evento

Finalmente, definimos um histograma ponderado pela duração da temperatura máxima da célula, restrito ao evento de risco térmico. O histograma conta o tempo gasto em cada intervalo de temperatura (bin), produzindo resultados fisicamente significativos, independentemente da taxa de amostragem do sensor:

Executando a análise

Duas chamadas de método acionam a computação distribuída em todas as gravações de medição correspondentes e persistem os resultados como tabelas de esquema estrela (star schema) da camada Gold no Unity Catalog. Toda a análise, desde a seleção de canais até a computação de sinais virtuais, definição de eventos, agregação de histogramas e persistência, leva cerca de 10 linhas de Python. O usuário nunca escreve uma transformação de DataFrame, uma função definida pelo usuário (UDF), um join ou uma função de janela (window function).

4. Três maneiras de usar o Impulse – relatórios, análises ad-hoc e ML

O Impulse suporta três modos de uso complementares (Figura 3), todos baseados na mesma linguagem de expressão TSAL e mecanismo de consulta (query engine). No modo de relatório estruturado, os engenheiros de domínio definem eventos e agregações que são executados em paralelo em todas as gravações correspondentes e persistidos em um esquema estrela da camada Gold, prontos para AI/BI Dashboards ou Lakehouse Apps. O pipeline pode ser agendado como um Databricks Workflow para atualizar automaticamente à medida que novas medições chegam. No modo ad-hoc, as expressões TSAL são avaliadas diretamente pelo mecanismo de consulta e retornadas como Spark DataFrames para exploração interativa em notebooks, sem gravar na camada Gold. No modo ML, estatísticas de escopo de evento e distribuições de histograma são extraídas como matrizes de recursos (features) planas que podem ser passadas diretamente para o MLflow, AutoML ou pipelines de treinamento personalizados.

Quatro personas e sua interação com o Impulse
Figura 3 – Quatro personas e sua interação com o Impulse. Todos os três modos de uso ativos compartilham o mesmo núcleo TSAL e mecanismo de consulta; as partes interessadas consomem os resultados por meio de Dashboards e Lakehouse Apps.

Como a AVL usa o Impulse na prática

Na prática, a AVL aproveita os pontos fortes do framework Impulse usando principalmente seu modo de relatório estruturado para criar pacotes de análise configuráveis e padronizados (“toolboxes”). Essas toolboxes são executadas por engenheiros de domínio em campanhas de medição recebidas, dependendo de sua tarefa de engenharia específica ou foco analítico.

Os resultados resultantes da camada Gold são integrados perfeitamente aos Databricks Dashboards e Lakehouse Apps, onde os engenheiros podem explorar os resultados de forma interativa e criar histogramas, mapas de calor (heatmaps) e outras visualizações estatísticas para apoiar decisões de engenharia orientadas a dados.

5. Resultados e impacto

Com a ajuda do framework Impulse e da Databricks Data Intelligence Platform, a AVL construiu uma plataforma de dados de engenharia de ponta a ponta para apoiar o desenvolvimento de produtos orientado a dados. A plataforma introduz um novo padrão na análise de dados automotivos e oferece melhorias em várias dimensões:

Melhorias quantitativas

  • Redução significativa no tempo de análise (de dias para minutos em comparação com as abordagens tradicionais)
  • Capacidade de processar um grande número de gravações de medição em uma única execução
  • Economia de custos de infraestrutura em comparação com soluções locais (on-premise)

Melhorias qualitativas

  • Empoderamento dos engenheiros de domínio por meio de análises de autoatendimento (self-service analytics)
  • Análises totalmente reproduzíveis e transparentes
  • Padronização entre equipes em uma única plataforma de dados unificada

6. Próximos passos - código aberto e o caminho a seguir

O Impulse está sendo lançado como um projeto do Databricks Labs (consulte aqui), aberto a contribuições da comunidade em novas agregações, resolvedores de consultas (query solvers) e extensões específicas de domínio. O framework vem com um conjunto de dados de demonstração público, documentação completa e notebooks Databricks para demonstrar os modos de uso de relatórios e ML.

Para a AVL, a implantação de hoje é apenas a base de seu lakehouse para dados de medição. O roteiro (roadmap) estende o Impulse para validação de ADAS e direção autônoma, manutenção preditiva e dados de simulação, trabalhando em direção ao desenvolvimento de produtos orientado a dados de ponta a ponta.

(Esta publicação no blog foi traduzida utilizando ferramentas baseadas em inteligência artificial) Publicação original

Receba os posts mais recentes na sua caixa de entrada

Assine nosso blog e receba os posts mais recentes diretamente na sua caixa de entrada.