A Apache Software Foundation desenvolve e mantém projetos de software de código aberto que impactam significativamente vários domínios da computação, desde servidores web e bancos de dados até big data e aprendizado de máquina. À medida que o volume e a velocidade dos dados de séries temporais continuam a crescer, graças aos dispositivos IoT, à IA, aos sistemas financeiros e às ferramentas de monitorização, cada vez mais empresas confiarão no ecossistema Apache para gerir e analisar este tipo de dados.

Este artigo fornece um breve tour pelo ecossistema Apache para processamento e análise de dados de série temporal. Ele se concentrará na pilha FDAP – Flight, DataFusion, Arrow e Parquet – já que esses projetos afetam particularmente o transporte, o armazenamento e o processamento de grandes volumes de dados.

Como a pilha FDAP aprimora o processamento de dados

A pilha FDAP traz recursos aprimorados de processamento de dados para grandes volumes de dados. Apache Arrow atua como uma plataforma de desenvolvimento multilíngue para dados na memória, facilitando o intercâmbio e processamento eficiente de dados. Seu formato de memória colunar é otimizado para CPUs e GPUs modernas, permitindo acesso e manipulação de dados em alta velocidade, o que é benéfico para o processamento de dados de séries temporais.

O Apache Parquet, por outro lado, é um formato de arquivo de armazenamento colunar que oferece compactação de dados eficiente e esquemas de codificação. Seu design é otimizado para estruturas de dados aninhadas complexas e é ideal para processamento em lote de dados de séries temporais, onde a eficiência de armazenamento e o custo-benefício são essenciais.

O DataFusion aproveita o Apache Arrow e o Apache Parquet para processamento de dados, fornecendo um poderoso mecanismo de consulta que pode executar consultas SQL complexas em dados armazenados na memória (Arrow) ou em arquivos Parquet. Essa integração permite uma análise contínua e eficiente de dados de séries temporais, combinando os recursos em tempo real do InfluxDB com os pontos fortes de processamento em lote do Parquet e os recursos de processamento de dados em alta velocidade do Arrow.

As vantagens específicas do uso de armazenamento colunar para dados de série temporal incluem:

  • Armazenamento e compactação eficientes: Os dados de séries temporais geralmente consistem em sequências de valores registrados ao longo do tempo, muitas vezes rastreando diversas métricas simultaneamente. No armazenamento colunar, os dados são armazenados por coluna e não por linha. Isso significa que todos os valores de uma única métrica são armazenados de forma contígua, levando a uma melhor compactação de dados porque os valores consecutivos de uma métrica costumam ser semelhantes ou mudam gradualmente ao longo do tempo, tornando-os altamente compactáveis. Formatos colunares como o Parquet otimizam a eficiência do armazenamento e reduzem os custos de armazenamento, o que é particularmente benéfico para grandes volumes de dados de séries temporais.
  • Desempenho de consulta aprimorado: as consultas em dados de série temporal geralmente envolvem operações de agregação (como SUM, AVG) em períodos ou métricas específicas. O armazenamento colunar permite a leitura apenas das colunas necessárias para responder a uma consulta, ignorando dados irrelevantes. Esse carregamento seletivo reduz significativamente a E/S e acelera a execução de consultas, tornando os bancos de dados colunares altamente eficientes para as operações de leitura intensiva típicas da análise de série temporal.
  • Melhor utilização do cache: O armazenamento contíguo de dados colunares melhora a utilização do cache da CPU durante o processamento de dados. Como a maioria das consultas analíticas em dados de série temporal processam muitos valores da mesma métrica simultaneamente, carregar dados de colunas contíguas no cache da CPU pode minimizar falhas de cache e melhorar os tempos de execução de consultas. Isso é particularmente benéfico para análises de séries temporais, onde operações em grandes conjuntos de dados são comuns.

Um ecossistema de dados perfeitamente integrado

Aproveitar a pilha FDAP junto com o InfluxDB facilita a integração perfeita com outras ferramentas e sistemas no ecossistema de dados. Por exemplo, usar o Apache Arrow como ponte permite fácil intercâmbio de dados com outras estruturas analíticas e de aprendizado de máquina, aprimorando os recursos analíticos disponíveis para dados de séries temporais. Essa interoperabilidade ajuda a construir pipelines de dados flexíveis e poderosos que podem se adaptar às crescentes necessidades de processamento de dados.

Por exemplo, muitos sistemas de banco de dados e ferramentas de dados começaram a oferecer suporte ao Apache Arrow para aproveitar seus benefícios de desempenho e se tornarem parte da comunidade. Alguns bancos de dados e ferramentas notáveis ​​neste campo incluem:

  • Dremio: Dremio é um mecanismo de data lake de próxima geração que se integra diretamente ao Arrow e foi um dos primeiros a adotar o Arrow Flight SQL. Ele usa Arrow Flight para aprimorar o desempenho de consulta e a velocidade de transferência de dados.
  • Apache Drill: Apache Drill é um mecanismo de consulta SQL de código aberto e sem esquema para exploração de big data. Apache Drill usa Apache Arrow para realizar consultas na memória.
  • Google BigQuery: o Google BigQuery aproveita o Apache Arrow para ganhos significativos de desempenho ao transportar dados no back-end. O Arrow também permite transferências de dados mais eficientes entre o BigQuery e clientes compatíveis com o Arrow.
  • Snowflake: Snowflake adotou Apache Arrow e Arrow Flight SQL para evitar sobrecarga de serialização e aumentar a interoperabilidade dentro do ecossistema Arrow.
  • InfluxDB: O InfluxDB usa a pilha FDAP para permitir arquitetura de dados aberta, maior desempenho e melhor interoperabilidade com outros bancos de dados e ferramentas de análise de dados.
  • Pandas: Da mesma forma, a integração do Apache Arrow com o Pandas levou a melhorias marcantes de desempenho em operações de dados para cientistas de dados que usam Python.
  • Polars: Polars é uma interface DataFrame baseada em um mecanismo de consulta OLAP implementado em Rust que também usa o formato colunar Apache Arrow, permitindo fácil integração com ferramentas existentes no cenário de dados.

Todos os bancos de dados que utilizam o Arrow Flight permitem que os programadores usem o mesmo padrão para consultar várias fontes. Combine isso com o poder do Pandas e Polars e os desenvolvedores poderão unificar facilmente os dados de vários armazenamentos de dados e realizar análises e transformações de dados em várias plataformas. Dê uma olhada nas seguintes postagens do blog para saber mais: Consultar um banco de dados com Arrow Flight e Ler metadados de tabela com Flight SQL.

O eficiente formato de armazenamento colunar do Apache Parquet o torna uma excelente escolha para fluxos de trabalho de IA e aprendizado de máquina, especialmente aqueles que envolvem conjuntos de dados grandes e complexos. Sua popularidade levou ao suporte a várias ferramentas e plataformas dentro do ecossistema de IA e aprendizado de máquina. aqui estão alguns exemplos:

  • Dask: Dask é uma biblioteca de computação paralela em Python. Dask oferece suporte a arquivos Parquet para processamento distribuído de dados, tornando-o adequado para pré-processar grandes conjuntos de dados antes de alimentá-los em modelos de aprendizado de máquina.
  • Apache Spark: Apache Spark é um mecanismo analítico unificado para processamento de dados em grande escala. Spark MLlib é uma biblioteca escalonável de aprendizado de máquina que fornece uma ampla variedade de algoritmos para classificação, regressão, clustering e muito mais. O Spark pode ler e gravar arquivos Parquet diretamente, permitindo armazenamento e acesso eficiente de dados em projetos de aprendizado de máquina de big data.
  • H2O.ai: H2O é uma plataforma de aprendizado de máquina distribuída e de código aberto na memória, com suporte para uma ampla variedade de algoritmos de aprendizado de máquina. Ele pode importar dados de arquivos Parquet para tarefas de aprendizado de máquina (incluindo previsão e detecção de anomalias), oferecendo uma maneira simples de usar dados armazenados em Parquet em fluxos de trabalho de aprendizado de máquina.

Forte apoio comunitário e inovação

O ecossistema Apache vai muito além da pilha FDAP. Fazer parte do ecossistema Apache e contribuir para projetos upstream oferece muitas vantagens para as empresas, tanto benefícios técnicos quanto benefícios comerciais. Essas vantagens incluem:

  • Acesso a inovações e tecnologias de ponta: A Apache Software Foundation hospeda uma série de projetos na vanguarda da tecnologia em big data, computação em nuvem, gerenciamento de banco de dados, tecnologias de servidor e muitas outras áreas. Fazer parte deste ecossistema proporciona às empresas acesso antecipado a inovações e tecnologias emergentes, permitindo-lhes permanecer competitivas.
  • Melhor qualidade de software: Contribuir para projetos upstream do Apache permite que as empresas influenciem diretamente a qualidade e a direção do software crítico para suas operações comerciais. Como participantes ativos no processo de desenvolvimento, as empresas podem garantir que o software atenda aos seus padrões e requisitos. Os projetos de código aberto geralmente passam por uma rigorosa revisão por pares, levando a padrões de segurança e qualidade de código mais elevados.
  • Apoio e colaboração da comunidade: Fazer parte do ecossistema Apache proporciona acesso a uma vasta comunidade de desenvolvedores e especialistas. Esta comunidade pode oferecer suporte, aconselhamento e oportunidades de colaboração. As empresas podem aproveitar este conhecimento coletivo para resolver problemas complexos, inovar e acelerar ciclos de desenvolvimento.

O ecossistema Apache fez contribuições notáveis ​​para o espaço de séries temporais. Ao oferecer um formato padronizado, eficiente e otimizado para hardware para dados na memória, o Apache Arrow aprimora o desempenho e a interoperabilidade dos sistemas de banco de dados existentes e prepara o terreno para a próxima onda de tecnologias de processamento de dados analíticos. O Apache Parquet fornece um formato de arquivo eficiente e durável, facilitando o transporte de conjuntos de dados entre ferramentas analíticas. E o DataFusion fornece uma maneira unificada de consultar sistemas diferentes.

À medida que o ecossistema Apache evolui e melhora ainda mais, sua influência nas tecnologias de banco de dados continuará a se expandir, enriquecendo o conjunto de ferramentas disponíveis para profissionais de dados que trabalham não apenas com dados de séries temporais, mas com dados de todos os tipos.

Anais Dotis-Georgiou é principal defensora do desenvolvedor na InfluxData.

O New Tech Forum oferece um local para líderes de tecnologia – incluindo fornecedores e outros colaboradores externos – explorarem e discutirem tecnologias empresariais emergentes com profundidade e amplitude sem precedentes. A seleção é subjetiva, baseada na escolha das tecnologias que acreditamos serem importantes e de maior interesse para os leitores do InfoWorld. A InfoWorld não aceita material de marketing para publicação e reserva-se o direito de editar todo o conteúdo contribuído. Envie todos consultas para [email protected].