Algeon intègre des algorithmes GPU dans les requêtes SQL sur DataFusion
Le moteur expérimental Algeon intègre NVIDIA cuGraph, cuVS et cuML à Apache DataFusion pour exécuter des tâches de graphes, vectorielles et de ML directement au sein de requêtes SQL standard.
Traduit automatiquement depuis l'original anglais.
L'utilisateur GitHub algeon-dev a publié Algeon, un moteur de requête expérimental qui exécute des analyses accélérées par GPU directement au sein d'instructions SQL. Construit sur Apache DataFusion, cet outil permet aux développeurs de combiner des opérations relationnelles avec des algorithmes avancés issus des bibliothèques NVIDIA cuGraph, cuVS et cuML, sans avoir à exporter les données vers des pipelines de traitement séparés.
Ce qui s'est passé
Algeon introduit une méthode permettant d'exécuter des charges de travail analytiques complexes, telles que des traversées de graphes et des recherches de similarité vectorielle, en utilisant la syntaxe SQL standard. Le projet permet à ces calculs lourds de s'effectuer in-process, en conservant les données intermédiaires dans la mémoire GPU entre les différentes étapes d'une requête. Cette approche vise à simplifier la création de pipelines ad-hoc pour les données de type lakehouse, en éliminant le besoin de scripts d'exportation externes ou d'outils d'orchestration spécialisés.
La version publiée inclut plusieurs exemples concrets démontrant ses capacités. Un cas notable implique l'exécution de Personalized PageRank sur 45,6 millions d'arêtes de citations pour analyser des articles académiques. Le système calcule les scores sur le GPU, puis utilise SQL pour joindre ces scores aux titres des articles, en filtrant certaines références spécifiques comme BERT. Un autre exemple utilise le jeu de données MerRec pour effectuer une analyse de campagnes d'audience, enchaînant des calculs d'affinité de graphes, des recherches de voisins les plus proches et des prédictions de modèles forestiers dans un seul workflow.
Comment cela fonctionne
Algeon fonctionne comme une extension d'Apache DataFusion, un framework modulaire d'exécution de requêtes. Lorsqu'une requête est soumise via SQL, des DataFrames DataFusion ou Arrow Flight SQL, la règle d'optimisation physique d'Algeon identifie les fragments de plan pouvant être exécutés sur le GPU. Elle remplace ces candidats par une exécution GPU in-process utilisant les bibliothèques NVIDIA, tandis que les opérations non prises en charge continuent de s'exécuter sur le chemin CPU. Les résultats sont renvoyés sous forme de lots Arrow standard, garantissant la compatibilité avec les écosystèmes de données existants.
Le moteur prend en charge trois grandes familles d'algorithmes via des fonctions de table définies par l'utilisateur (UDTF). Les opérations sur les graphes exploitent cuGraph, les tâches de similarité vectorielle utilisent cuVS, et l'inférence machine learning repose sur cuML. Ces fonctions acceptent des entrées provenant de sous-requêtes et renvoient leurs sorties vers des jointures, des agrégations ou des étapes algorithmiques ultérieures au sein de la même instruction SQL. Cette conception permet aux relations intermédiaires de rester dans la mémoire du périphérique, réduisant ainsi la surcharge de transfert de données entre le CPU et le GPU.
Détails clés
- Algeon est construit sur Apache DataFusion et intègre NVIDIA cuGraph, cuVS, cuML et cuDF.
- Les requêtes peuvent être soumises via SQL, des DataFrames DataFusion ou un serveur Arrow Flight SQL.
- Le moteur conserve les résultats intermédiaires dans la mémoire GPU pendant les fragments de plan pris en charge afin de minimiser la latence.
- Les limitations actuelles incluent les jeux de données dépassant la mémoire d'un seul GPU et les sources autres que Parquet.
- Le projet est sous licence Apache License 2.0, certains jeux de données de démonstration étant sous licence CC BY-NC 4.0.
- La validation GPU doit être effectuée localement, car les runners hébergés de GitHub Actions ne prennent actuellement pas en charge les GPU NVIDIA.
Pourquoi c'est important
Pour les ingénieurs logiciels et les data scientists, Algeon réduit la friction liée à l'analyse exploratoire. Traditionnellement, combiner des algorithmes de graphes ou la recherche vectorielle avec des données relationnelles nécessitait de déplacer les données entre plusieurs systèmes, d'écrire du code d'interfaçage personnalisé et de gérer des états complexes. En intégrant ces capacités dans SQL, Algeon permet aux analystes et aux agents IA de tester rapidement des hypothèses. Les utilisateurs peuvent modifier les graines (seeds), comparer des cohortes et appliquer des contrôles en utilisant des structures de requêtes familières, facilitant ainsi la découverte des « unknown unknowns » dans les grands jeux de données.
Cependant, le projet est explicitement marqué comme expérimental. Les API et le comportement des requêtes peuvent changer de manière incompatible, et la stabilité n'est pas encore garantie. Il est conseillé aux développeurs de comparer les sorties avec des résultats de référence fiables avant de s'appuyer dessus pour des décisions de production. L'absence de prise en charge des index vectoriels ou des modèles à longue durée de vie signifie également qu'il est mieux adapté à l'analyse ad-hoc plutôt qu'à la diffusion de recommandations en temps réel à grande échelle. Malgré ces contraintes, il offre une voie prometteuse pour simplifier l'analyse accélérée par GPU dans les applications riches en données.
Ce que vous pouvez faire
- Testez l'image du serveur en utilisant Docker avec la commande
docker run --rm --gpus all -p 127.0.0.1:50051:50051 -v "$PWD:/data:ro" ghcr.io/algeon-dev/algeon-server. - Examinez les exemples SQL fournis pour Personalized PageRank et l'analyse de campagnes d'audience afin de comprendre les motifs de syntaxe.
- Vérifiez que votre matériel répond aux exigences Linux et GPU NVIDIA avant de tenter des builds locaux.
- Intégrez Algeon dans une application Rust en suivant le guide de session DataFusion pour la configuration des dépendances.
- Comparez les sorties de requêtes avec des résultats de référence connus pour tenir compte du statut expérimental actuel du moteur.
- Suivez la feuille de route du projet pour les mises à jour concernant les intégrations de catalogues lakehouse et les améliorations de stabilité.



