Sobre o projeto
O Apache Arrow fornece um formato colunar padronizado para a representação em memória de vários tipos de dados, permitindo que os sistemas de dados armazenem, processem e movam dados de maneira eficiente. Ele inclui um conjunto de tecnologias para intercâmbio de dados rápido e análises em ambientes heterogêneos.
Os componentes principais incluem:
- Arrow Columnar Format: Um padrão para representação em memória de tipos de dados simples ou aninhados.
- Arrow IPC Format: Serialização eficiente para comunicação entre processos.
- ADBC (Arrow Database Connectivity): API e drivers para acessar bancos de dados e mecanismos de consulta.
- Arrow Flight RPC: Um protocolo para que serviços remotos troquem dados Arrow.
- Gandiva: Um compilador de expressões baseado em LLVM para Arrow.
O projeto fornece bibliotecas em várias linguagens, incluindo C++, Python, Java, JavaScript, Rust, Go, R, Ruby, .NET, Julia e Swift.
As capacidades técnicas incluem:
- Containers de vetores colunares e semelhantes a tabelas que suportam tipos planos ou aninhados.
- Gerenciamento de memória de buffer off-heap com contagem de referências para compartilhamento de memória zero-copy.
- Interfaces de IO para sistemas de arquivos locais e remotos.
- Leitores e escritores para formatos de arquivo comuns, como Parquet e CSV.
- Uma camada de mensagens de metadados baseada no FlatBuffers do Google.