Faire cohabiter Python et SAS Studio sous Viya 4 (sans se faire mordre)

Cet article en deux mots :

Fini le choix entre SAS et Python ! Ce guide technique détaille l'intégration d'un interpréteur Python dans SAS Viya 4 sur Kubernetes. Configuration des volumes persistants, ajustement de Kustomize et sécurité : maîtrisez la PROC PYTHON pour décupler vos pipelines de Data Science.

L'époque où l'on devait choisir douloureusement entre coder en SAS ou en Python est révolue. Dans SAS Viya 4SAS Viya 4 est une plateforme d'IA, de data management et d'analytics de pointe, nativement conçue pour le Cloud (Cloud-Native). Contrairement aux versions précédentes, elle repose sur une architecture de microservices orchestrée par Kubernetes.

Elle permet de gérer l'intégralité du cycle de vie de la donnée — de l'ingestion à la mise en production des modèles (ModelOps) — en offrant une élasticité totale, une intégration transparente avec l'open-source (Python, R) et une interface unifiée pour les data scientists et les décideurs métiers.
, la procédure magique `PROC PYTHON` vous permet d'exécuter du code Python directement au cœur de vos programmes SAS StudioInterface de développement Web intégrée à SAS Viya, SAS Studio permet d'écrire du code, de construire des flux visuels et d'analyser des données via un simple navigateur, sans installation locale.. Mais attention, KubernetesKubernetes est l'orchestrateur open source gérant le déploiement, la mise à l'échelle et l'exécution conteneurisée des microservices de l'architecture cloud-native de SAS Viya. ne fournit pas d'interpréteur Python par l'opération du Saint-Esprit : il faut intégrer votre propre distribution dans vos pods éphémères. 

Voici le guide pas-à-pas pour inviter le serpent dans votre clusterEnsemble de nœuds (machines) interconnectés, gérés par Kubernetes, qui collaborent pour exécuter les microservices et le moteur CAS de SAS Viya, assurant haute disponibilité et passage à l'échelle. KubernetesKubernetes est l'orchestrateur open source gérant le déploiement, la mise à l'échelle et l'exécution conteneurisée des microservices de l'architecture cloud-native de SAS Viya. sans vous faire mordre !

Préparer le nid : Le Volume Persistant (PV)

Les pods SAS (Compute Server, CAS, Micro Analytic Service) naissent et meurent au gré des mises à l'échelle. Installer Python "à la main" dans un pod est donc la pire idée de l'année. La bonne pratique ? Stocker votre installation Python (et ses précieux paquets `pandasBibliothèque Python incontournable pour la manipulation et l'analyse de données structurées via des DataFrames. Elle offre des performances optimales pour le nettoyage et l'exploration de données.`, `scikit-learn`...) sur un stockage réseau performant, comme un NFS ou un Azure File Share.

Ce volume sera ensuite "monté" dans tous les pods SAS qui en ont besoin.

Copier les assets de configuration

Comme toujours avec l'approche déclarative (Kustomize) de Viya 4SAS Viya 4 est une plateforme d'IA, de data management et d'analytics de pointe, nativement conçue pour le Cloud (Cloud-Native). Contrairement aux versions précédentes, elle repose sur une architecture de microservices orchestrée par Kubernetes.

Elle permet de gérer l'intégralité du cycle de vie de la donnée — de l'ingestion à la mise en production des modèles (ModelOps) — en offrant une élasticité totale, une intégration transparente avec l'open-source (Python, R) et une interface unifiée pour les data scientists et les décideurs métiers.
, on ne touche jamais aux fichiers d'origine fournis par SAS. On copie d'abord les modèles dans notre répertoire local :

TERMINAL BASH
mkdir -p $deploy/site-config/sas-open-source-config/python
cp $deploy/sas-bases/examples/sas-open-source-config/python/* $deploy/site-config/sas-open-source-config/python/

Pointer vers l'exécutable (kustomization.yaml)

Dans votre nouveau dossier `site-config/sas-open-source-config/python`, éditez le fichier `kustomization.yaml`. Il faut renseigner les chemins vers votre binaire Python. 

Pour que SAS StudioInterface de développement Web intégrée à SAS Viya, SAS Studio permet d'écrire du code, de construire des flux visuels et d'analyser des données via un simple navigateur, sans installation locale. (qui s'appuie en réalité sur le composant *Compute Server*) puisse utiliser `PROC PYTHON`, la variable reine s'appelle `PROC_PYPATH`. Remplacez les balises `{{ PYTHON-EXE-DIR }}/{{ PYTHON-EXECUTABLE }}` par le chemin d'accès au sein du conteneur (ex: `/python/bin/python3.8`).

Bonus : Si vos Data ScientistsExperts extrayant des connaissances via des méthodes statistiques, algorithmes et IA. Ils transforment les données brutes en insights stratégiques pour résoudre des problèmes métier complexes. utilisent le composant visuel VDMML (Open Source Code node), renseignez également la variable `DM_PYPATH`.*

Connecter le stockage (python-transformer.yaml)

C'est ici que la magie de KubernetesKubernetes est l'orchestrateur open source gérant le déploiement, la mise à l'échelle et l'exécution conteneurisée des microservices de l'architecture cloud-native de SAS Viya. opère. Éditez le fichier `python-transformer.yaml` pour brancher virtuellement votre volume NFS au pod SAS.

Cherchez le bloc qui définit le `python-volume` et remplacez `{{ VOLUME-ATTRIBUTES }}` par vos paramètres réseau. Exemple pour un NFS :

TERMINAL BASH
patch: |-
# Add Python Volume
- op: add
path: /spec/template/spec/volumes/-
value: { name: python-volume, nfs: {path: /vol/python, server: monserveur.nfs.com} }

Autoriser l'exécution : Le Java Security Policy

Par défaut, l'environnement d'exécution SAS est verrouillé à double tour (et c'est une excellente chose pour la sécurité). Il refusera d'exécuter un binaire non répertorié. 

Toujours dans `python-transformer.yaml`, cherchez le patch `add-python-sas-java-policy-allow-list` et spécifiez le chemin exact de votre binaire Python. 

TERMINAL BASH
- op: add
path: /data/SAS_JAVA_POLICY_ALLOW_DM_PYPATH
value: /python/bin/python3.8

Si vous sautez cette étape, votre premier appel à PROC PYTHON se soldera par un mur de texte rouge et un "Access Denied" impitoyable.*

Assembler le puzzle (kustomization.yaml principal)

Revenez à la racine de votre dossier de déploiement (`$deploy`) et ouvrez le grand `kustomization.yaml` central.

Dans la section `resources:`, ajoutez :

TERMINAL BASH
- site-config/sas-open-source-config/python

Dans la section `transformers:`, ajoutez la ligne suivante (attention, elle doit être placée **avant** les transformers requis par SAS) :

TERMINAL BASH
- site-config/sas-open-source-config/python/python-transformer.yaml

Le mot de la fin

Reconstruisez vos manifestes avec Kustomize et appliquez les changements sur votre clusterEnsemble de nœuds (machines) interconnectés, gérés par Kubernetes, qui collaborent pour exécuter les microservices et le moteur CAS de SAS Viya, assurant haute disponibilité et passage à l'échelle. OpenShiftOpenShift est la plateforme Kubernetes d'entreprise de Red Hat conçue pour orchestrer, sécuriser et gérer le cycle de vie des applications conteneurisées.

Pour SAS Viya 4, OpenShift agit comme la fondation "Cloud Native" indispensable : il automatise le déploiement des microservices SAS, garantit la haute disponibilité des calculs analytiques et permet une portabilité totale entre le cloud public (Azure, AWS, GCP) et les infrastructures sur site.
(`oc apply`). 

Ouvrez SAS StudioInterface de développement Web intégrée à SAS Viya, SAS Studio permet d'écrire du code, de construire des flux visuels et d'analyser des données via un simple navigateur, sans installation locale., démarrez un nouveau programme, et lancez la magie :

1
2
3
4
5
6
proc python;
submit;
import sys
print(f"Hello World depuis Kubernetes ! Python version: {sys.version}")
endsubmit;
run;

Et voilà, Python et SAS discutent joyeusement au sein du même pipelineChaîne de flux de données automatisée intégrant prétraitement, sélection de variables et modèles supervisés pour comparer leurs performances et déployer le meilleur candidat dans SAS Viya. analytique. Félicitations, vous êtes prêt à conquérir la Data Science moderne !

Nicolas Housset

Passionné d'informatique, je suis Consultant et expert technique SAS VIYA, également co-fondateur de la société Flexcelite. Spécialisé dans les technologies SAS (Viya, 9.4) et les infrastructures associées (Linux, Hadoop, Azure), ce blog est mon espace pour partager mes mémos techniques et retours d'expérience.