Actian Vector a été rebaptisé Actian Analytics Engine en 2026.

Actian a récemment intégré une fonctionnalité permettant d'utiliser des fonctions scalaires utilisateur(FDU) dans La plateforme de données Actian, VectorH et Vector 6.0. Cette nouveauté offre La plateforme de données Actian, à VectorH et à Vector une nouvelle dimension pour l'exécution de modèles d'apprentissage automatique (ML) en Python JavaScript au sein d'une base de données. En savoir plus sur FDU .

La création de modèles est simplifiée grâce aux nombreuses bibliothèques disponibles, telles que Spark, TensorFlow et Python (SKlearn), qui est la plus couramment utilisée. Une fois qu'un modèle prêt pour la production a été créé, il doit être déployé en production. C'est là que La plateforme de données Actian, Vector et VectorH se distinguent en déployant ces modèles directement dans la base de données, ce qui permet d'utiliser le modèle pour évaluer les données directement au sein de la base de données.

Pour le démontrer, nous avons utilisé Python SKlearn pour entraîner modèle. L'objectif de ce blog est de démontrer le fonctionnement d'un UDF dans le contexte du déploiement d'un modèle d'apprentissage automatique.

Nous avons découvert un projet très intéressant appelé sklearn-porter, qui transcompile le modèle en JavaScript, ainsi que m2cgen, qui permet de transcompiler le modèle à la fois en JavaScript et en Python. La plateforme de données Actian, Vector et VectorH support FDU JavaScript support Python ; c'est pourquoi nous avons choisi la bibliothèque m2cgen.  Nos FDU FDU scalaire, nous avons dû écrire du code supplémentaire pour que m2cgen renvoie des valeurs scalaires.

Pour présenter la fonction UDF ML, j'ai choisi le jeu de données Iris. Il ne comporte que 4 colonnes et 150 lignes, ce qui rend le cas d'usage à comprendre. Je vais vous présenter un scénario de test de bout en bout qui consiste à créer la table, à charger les données dans la base de données, à construire le modèle à partir des données de la base de données, puis à exécuter le modèle au sein de la base de données.

Iris jeu de données

Le jeu de données Iris est facilement disponible. Il peut être téléchargé à partir de Kaggle : https://www.kaggle.com/uciml/iris/data#

Ses champs sont les suivants : ID (int), SepalLengthCm (float), SepalWidthCm(float), PetalLengthCm(float), PetalWidthCm (float), Species (varchar (20)).

Détails sur la connexion de Python avec Vector/VectorH

Dans ce tutoriel, j'utiliserai des connexions ODBC.

Connexion à la base de données

import pyodbc as pdb
import pandas sous le nom de pd
import numpy as np
conn = pdb.connect("dsn=Vector6;uid=actian;pwd=passwd" )
conn.setdecoding(pdb.SQL_CHAR, encoding='utf-8')
conn.setdecoding(pdb.SQL_WCHAR, encoding='utf-8')
conn.setencoding(encodage='utf-8')
cursor = conn.cursor()
iristbl='''create table iris1(
id integer,
sepallengthcm float,
sepalwidthcm float,
petallengthcm float,
petalwidthcm float,
species varchar(20))''''
conn.execute(iristbl)
conn.commit()

Je n'ai pas pris de partition car le jeu de données ne comporte que 150 lignes.

Chargement des données dans la base de données

Cela aidera à charger en masse les données pour le CSV que nous avons téléchargé de Kaggle.

requête = "COPY iris() VWLOAD FROM '/home/actian/vidisha/jeux dejeux de données.csv' with fdelim=',', insertmode = 'Bulk' ,header"
conn.executerequête)
conn.commit()

Note : jeux de données.csv est le jeu de données que j'ai téléchargé depuis Kaggle et j'ai utilisé vwload pour charger les données dans la base de données.

Construction du modèle

La classification et la prédiction sont les deux aspects les plus importants de l'apprentissage automatique. Avec le jeu de données Iris, nous allons créer un modèle de régression logistique simple pour la classification des Iris. Il ne s'agit pas ici de construire un modèle, mais de montrer comment le modèle peut être exécuté dans la base de données.

Vérification des données

sql_case="select sepallengthcm ,sepalwidthcm, petalwidthcm ,petalwidthcm , 
CASE 
WHEN species='Iris-setosa' THEN '1' 
WHEN species='Iris-versicolor' THEN '2' 
ELSE '3' 
END as speciesclass 
FROM iris"
iris_case=pd.read_sql(sql_case, conn)
print(iris_case.shape)
iris_case.info(verbose=True)
iris_case.describe()
iris_case.head(10)

Diviser le test et entraîner données

sql_case="select sepallengthcm ,sepalwidthcm, petalwidthcm ,petalwidthcm , 
CASE 
WHEN species='Iris-setosa' THEN '1' 
WHEN species='Iris-versicolor' THEN '2' 
ELSE '3' 
END as speciesclass 
FROM iris"
iris_case=pd.read_sql(sql_case, conn)
print(iris_case.shape)
iris_case.info(verbose=True)
iris_case.describe()
iris_case.head(10)

Dans la deuxième partie de cet article en deux parties, nous verrons les étapes de la création de l'FDU dans la base de données.

Pour en savoir plus sur les Fonctionnalités tous les produits Actian, visitez notre site web.