Компанія Apple випустила плагін із відкритим кодом, який допоможе Apache Spark ефективніше виконувати векторний пошук, зробивши платформу обробки даних із відкритим кодом більш привабливою для великомасштабної обробки даних машинного навчання. Про це повідомляє The News Stack.
Інженери Apple, які створили плагін на основі Rust під назвою Apache Spark DataFusion Comet, подали його на проєкт Apache Software Foundation під егідою Apache Arrow. Він створений на основі розширюваної системи запитів Apache DataFusion (також написаної на Rust) і формату даних Arrow.
«Наша мета – пришвидшити виконання запитів Spark шляхом делегування виконання фізичного плану Spark високомодульній структурі виконання DataFusion, зберігаючи ту саму семантику для користувачів Spark», – пояснив інженер програмного забезпечення компанії Apple Чао Сун.
Він зазначив, що проєкт ще не повністю завершений, але його частини вже використовуються у виробництві.
«Це чудовий приклад концепції компонованої системи даних, про яку, здається, останнім часом усі говорять», – написав голова комітету з управління проєктами Apache Arrow Енді Гроув у соцмережі X.
Що таке Apache Arrow DataFusion Comet?
Використовуючи середовище Apache Arrow DataFusion, Comet може запитувати дані у стовпцевому форматі Apache Arrow. Цей підхід призначений для підвищення ефективності запитів і часу на виконання запитів за допомогою власного векторизованого виконання.
Apache Spark був створений у 2010 році для обробки великих обсягів розподілених даних у різноманітних форматованих і неформатованих структурах (Big Data).
Векторна обробка стала улюбленою технікою у спільноті машинного навчання завдяки тому, що вона може скоротити час на аналіз великих обсягів даних.
«Векторизовані запити покращують продуктивність, ефективність, масштабованість та обсяг пам’яті аналітичних запитів завдяки роботі з пакетами даних і паралельній обробці кількох елементів даних. Вони нерозривно пов’язані зі стовпцевою архітектурою бази даних, оскільки це дозволяє завантажувати цілі стовпці в регістр CPU й обробляти їх», – зауважив Чарльз Ван, Senior Product Evangelist у Fivetran.
Comet було розроблено, щоб підтримувати паритет функцій із самим Spark (наразі він підтримує версії Spark 3.2–3.4). Це означає, що користувачі можуть виконувати ті самі запити незалежно від того, чи використовується розширення Comet.
Filter/Project/Aggregation/Join/Exchange можуть працювати з Comet, як і стовпцевий формат зберігання Apache Parquet, у режимі читання та запису.
Comet також потребує JDK 8 і вище та GLIBC 2.17 і може працювати як на Linux, так і на Mac OS.
Інші плагіни Spark, які прискорюють векторну обробку
Не тільки компанія Apple цікавиться векторною обробкою. Минулого року Meta також випустила свій власний проєкт векторної обробки Spark із відкритим кодом під назвою Velox.
Подібні проєкти включають Gluten від Intel, прискорювач RAPIDS Spark від NVIDIA для графічних процесорів, Blaze (який також працює з Apache Arrow DataFusion) і систему розподілених запитів SQL Ballista.
Читайте також на ProIT про 10 плагінів ChatGPT, які варто спробувати.
Підписуйтеся на ProIT у Telegram, щоб не пропустити жодної публікації!