Об этом проекте
Apache Arrow предоставляет стандартизированный колоночный формат для представления различных типов данных в оперативной памяти, что позволяет системам данных эффективно хранить, обрабатывать и перемещать данные. Он включает в себя набор технологий для быстрого обмена данными и аналитики в гетерогенных средах.
Ключевые компоненты включают:
- Arrow Columnar Format: стандарт для представления простых или вложенных типов данных в памяти.
- Arrow IPC Format: эффективная сериализация для взаимодействия между процессами.
- ADBC (Arrow Database Connectivity): API и драйверы для доступа к базам данных и движкам запросов.
- Arrow Flight RPC: протокол для обмена данными Arrow между удаленными сервисами.
- Gandiva: компилятор выражений на базе LLVM для Arrow.
Проект предоставляет библиотеки для множества языков, включая C++, Python, Java, JavaScript, Rust, Go, R, Ruby, .NET, Julia и Swift.
Технические возможности включают:
- Колоночные векторы и табличные контейнеры с поддержкой плоских или вложенных типов.
- Управление памятью вне кучи (off-heap) с подсчетом ссылок для совместного использования памяти с нулевым копированием (zero-copy).
- IO-интерфейсы для локальных и удаленных файловых систем.
- Ридеры и райтеры для распространенных форматов файлов, таких как Parquet и CSV.
- Слой передачи метаданных на основе Google FlatBuffers.