Apache Arrow был обновлен с добавлением механизма запросов DataFusion Rust-Native для столбчатого формата Arrow.
Apache Arrow — это столбчатый слой аналитики в памяти, который разрешает произвольный доступ. Он не зависит от языка, может использоваться для плоских и иерархических данных, а хранилище данных организовано для эффективных аналитических операций. Он также предоставляет вычислительные библиотеки. В настоящее время поддерживаются следующие языки: C, C ++, C #, Go, Java, JavaScript, MATLAB, Python, R, Ruby и Rust.
Arrow — это не отдельная программа. Он используется в качестве компонента в системах для ускорения аналитики и позволяет системам с поддержкой Arrow обмениваться данными с низкими накладными расходами. Он достаточно гибкий, чтобы поддерживать самые сложные модели данных.
Новый механизм запросов Rust-Native был включен после того, как DataFusion был передан проекту Apache Arrow. DataFusion поддерживает запросы SQL к итераторам RecordBatch и поддерживает файлы CSV. Планируется добавить поддержку файлов Parquet.
На данный момент поддержка SQL ограничена Select, Where и простыми агрегатами для Min, Max и Sum с дополнительным предложением Group By. Поддерживаемые выражения: идентификаторы, литералы, простые математические операции (+, -, *, /), двоичные выражения (And и Or), операторы равенства и сравнения (=,! =, <, <=,> =,>) И Бросать.
Разработчики Arrow говорят, что в этом текущем выпуске они добились значительного прогресса в Arrow Flight, фреймворке для обмена данными с Arrow. В Flight теперь есть интеграционные тесты для проверки совместимости C ++ и Java, а для библиотеки C ++ добавлены привязки Python. Flight разработан для решения проблемы, заключающейся в том, что основным носителем Apache Arrow являются данные в памяти, но не все системы могут быть размещены вместе. Arrow нужен слой RPC, и это то, что добавляет Apache Flight.
Flight обеспечивает управление потоками. Данные обрабатываются как «полеты», которые представляют собой поток пакетов записей Arrow, с которыми вы можете взаимодействовать, используя методы Get Stream и Put Stream. Flight также поддерживает простую Generic Messaging Framework. Клиенты Arrow Flight могут быть написаны без знания внутреннего устройства обработки Daya, или разработчики могут просто использовать существующие инструменты JSON поверх универсального Flight API.