Uber lança IngestionNext: plataforma de ingestão streaming-first reduz latência e uso de computação em 25%

A Uber anunciou o lançamento do IngestionNext, uma plataforma de ingestão de dados com abordagem streaming-first para seu data lake, que representa um avanço significativo na redução da latência e do consumo de recursos computacionais. Desenvolvida para substituir os tradicionais jobs em batch, a nova arquitetura processa eventos em tempo real, diminuindo o atraso na disponibilidade dos dados de horas para minutos e otimizando o uso de infraestrutura em cerca de 25%.
Desafios da ingestão tradicional e motivação para a mudança
Historicamente, a Uber utilizava pipelines baseados em Apache Spark que executavam ingestões em batch programadas. Apesar da capacidade de processar grandes volumes, esse método introduzia atrasos consideráveis entre a geração dos dados e sua disponibilidade para análises, experimentos e modelos de machine learning. Essa latência impactava a agilidade das equipes e a qualidade dos insights gerados.
Segundo Kai Waehner, Global Field CTO, a mudança para um sistema streaming-first tem como objetivo tratar a frescura dos dados como uma dimensão crucial da qualidade da informação, permitindo decisões mais rápidas e precisas.
Arquitetura e componentes do IngestionNext
O IngestionNext foi construído sobre tecnologias consolidadas no ecossistema de dados em streaming:
- Apache Kafka: responsável pela ingestão contínua dos eventos;
- Apache Flink: processa os fluxos em tempo real, executando transformações e garantindo a consistência;
- Apache Hudi: gerencia o armazenamento dos dados no data lake, permitindo commits transacionais, rollbacks e suporte a time travel.
Essa combinação possibilita a ingestão de milhares de datasets com alto volume global, suportando dashboards analíticos, plataformas de experimentação e cargas de trabalho de machine learning com maior velocidade.
Além disso, um plano de controle automatiza o ciclo de vida dos jobs, configurações e monitoramento da saúde dos processos, enquanto estratégias de failover regional garantem continuidade e evitam perda de dados em situações de falha.
Principais desafios técnicos e soluções implementadas
Adotar um modelo streaming-first trouxe desafios relevantes:
- Granularidade dos arquivos: a geração de muitos arquivos pequenos no formato Parquet pode prejudicar o desempenho e a eficiência do armazenamento. Para mitigar isso, foram implementadas estratégias de mesclagem em nível de grupos de linhas e mecanismos de compactação contínua.
- Complexidade da evolução de esquema: o Apache Hudi foi aprimorado para suportar mesclagem de dados com esquemas diferentes usando técnicas de padding e masking, embora isso eleve a complexidade e o custo de manutenção.
- Gerenciamento de checkpoints e recuperação: o sistema rastreia offsets das streams upstream e coordena commits para assegurar a correção dos dados e permitir recuperação confiável em caso de falhas.
- Skew de partições: mecanismos específicos foram adotados para lidar com desequilíbrios na distribuição dos dados durante o processamento.
Impactos e resultados obtidos
A migração para o IngestionNext resultou em uma redução de latência de ingestão de dados de horas para poucos minutos, acelerando a disponibilidade para análises e experimentos. Além disso, a substituição de jobs batch por pipelines streaming contínuos permitiu uma redução de aproximadamente 25% no uso de recursos computacionais.
Suqiang Song, coautor do blog de engenharia da Uber, destacou que a nova plataforma habilitou uma pilha de dados em tempo real, do processo de ingestão à transformação e análise.
Limitações atuais e perspectivas futuras
Embora a frescura dos dados brutos tenha melhorado substancialmente, os engenheiros reconhecem que as transformações e pipelines analíticos downstream ainda podem introduzir latências adicionais. O foco futuro será estender as capacidades streaming para essas etapas subsequentes, garantindo que as melhorias na ingestão se propaguem por toda a cadeia de processamento e análise.