Опубликован исходный код BlazingSQL, использующего GPU для ускорения обработки данных
Опубликован исходный код BlazingSQL, использующего GPU для ускорения обработки данных
Объявлено об открытии исходных текстов SQL-движка BlazingSQL, использующего GPU для ускорения обработки данных. BlazingSQL не является полноценной СУБД, а позиционируется как движок для анализа и обработки больших наборов данных, сравнимый по своим задачам с Apache Spark. Код написан на языке Python и открыт под лицензией Apache 2.0.
BlazingSQL подходит для выполнения единичных аналитических запросов над большими наборами данных (десятки гигабайт), хранимых в табличных форматах (например, логи, статистика NetFlow и т.п.). BlazingSQL может выполнять запросы из raw-файлов в форматах CSV и Apache Parquet, размещённых в сетевых и облачных ФС, подобных HDSF и AWS S3, напрямую передавая результат в память GPU. Благодаря распараллеливанию операций в GPU и использованию более быстрой видеопамяти выполнение запросов в BlazingSQL осуществляется до 20 раз быстрее, чем в Apache Spark.
Для работы с GPU применяется развиваемый при участии компании NVIDIA набор открытых библиотек RAPIDS, позволяющий создавать приложения для обработки данных и аналитики, выполняемые целиком на стороне GPU (предоставляется Python-интерфейс для использования низкоуровневых примитивов CUDA и распараллеливания вычислений).
BlazingSQL предоставляет возможность использования SQL вместо API обработки данных cuUDF (на базе Apache Arrow), применяемого в RAPIDS. BlazingSQL является дополнительной прослойкой, работающей поверх cuDF и использующей для чтения данных с диска библиотеку cuIO. SQL-запросы транслируются в вызовы функций cuUDF, позволяющие загружать данные в GPU и выполнять над ними операции слияния, агрегирования и фильтрации. Поддерживается создание распределённых конфигураций, охватывающих тысячи GPU.
BlazingSQL существенно упрощает работу с данными - вместо сотни вызовов функций cuDF можно обойтись одним SQL-запросом. Применение SQL даёт возможность обеспечить интеграцию RAPIDS с существующими системами аналитики, без написания специфичных обработчиков и не прибегая к промежуточной загрузке данных в дополнительную СУБД, но сохраняя при этом полную совместимость со всеми частями RAPIDS, транслируя в SQL имеющуюся функциональность и обеспечивая производительность на уровне cuDF. В том числе обеспечена поддержка интеграции с библиотеками XGBoost и cuML для решения задач аналитики и машинного обучения.