Le développeur base de données
Une instruction SQL, les mêmes tables, les mêmes permissions. Rien à déployer.
PQL ajoute TRAIN MODEL et PREDICT à DuckDB. Vos agents répondent à « que va-t-il se passer ? » dans le SQL qu'ils parlent déjà. Pas de pipeline, pas d'export, pas de second système.
INSTALL pql FROM community; LOAD pql;TRAIN MODEL lapse
PREDICT EXISTS(transactions)
FOR customers AT last_seen_at
HORIZON 30 DAYS;
-- peu après : score, baseline
PREDICT EXISTS(transactions)
FOR customers USING MODEL lapse;Une instruction SQL, les mêmes tables, les mêmes permissions. Rien à déployer.
Un premier modèle défendable en quelques secondes, pas en semaines. Les fuites sont traitées par construction.
Il entraîne, évalue et prédit par lui-même, dans le SQL qu'il écrit déjà. Ni Python ni stack d'entraînement à lui confier.
Renouvellements SaaS, réachats e-commerce, impayés, tickets de support : la forme est toujours la même.
TRAIN MODEL lapse
PREDICT EXISTS(transactions)
FOR customers AT last_seen_at
HORIZON 30 DAYS;TRAIN MODEL risk
PREDICT EXISTS(scan_events
WHERE scan_events.type = 'exception')
FOR shipments AT dispatched_at
HORIZON 3 DAYS;PQL coupe le temps à la valeur AT de chaque ligne. Les features viennent uniquement d'avant cet instant, et le moteur compte le label après.
RelBench est le benchmark de Stanford pour la prédiction relationnelle.
| Tâche rel-f1 | PQL | Gradient boostingBoostingfeatures faites main | Réseau de neurones sur grapheGNNRelBench RDL, GPU |
|---|---|---|---|
| Qualifié dans le top 3 le mois prochain ?AUROC | 0,809 | 0,842 | 0,809 |
| Abandon en course ?AUROC | 0,707 | 0,701 | 0,741 |
| Position à l'arrivée ?MAE, plus bas = mieux | 4,123 | 4,403 | 4,259 |
| Matériel, temps d'entraînement | CPU de portable 3 à 15 s | CPU de portable ~1 s | GPU NVIDIA L4 17 à 78 s |
Une victoire, une égalité, une défaite face à chacun, sans déplacer une seule ligne.
Chargez l'extension dans n'importe quel shell DuckDB et entraînez votre premier modèle sur les tables que vous avez déjà.
INSTALL pql FROM community; LOAD pql;