Le package SAS SWAT est une interface Python pour le moteur SAS Cloud Analytic Services (CAS) (la pièce maîtresse du framework SAS Viya). Avec ce package, vous pouvez charger et analyser des ensembles de données de n'importe quelle taille sur votre bureau ou dans le cloud. Étant donné que CAS peut être utilisé sur un bureau local ou dans un environnement cloud hébergé, vous pouvez analyser des ensembles de données extrêmement volumineux en utilisant autant de puissance de traitement que nécessaire, tout en conservant la facilité d'utilisation de Python côté client.
À l'aide de SWAT , vous pouvez exécuter des flux de travail d'actions analytiques CAS , puis extraire les données résumées pour les traiter davantage côté client en Python, ou les fusionner avec des données provenant d'autres sources à l'aide des structures de données Pandas familières. En fait, le package SWAT imite une grande partie de l'API du package Pandas, de sorte que l'utilisation de CAS devrait sembler familière aux utilisateurs actuels de Pandas.
Avec les meilleures analyses SAS dans le cloud et l'utilisation de Python et sa vaste collection de packages open source, le package SWAT vous donne accès au meilleur des deux mondes.
Pour afficher les mises à jour de ce projet, consultez le journal des modifications.
Pour accéder au protocole binaire CAS (recommandé), vous avez besoin des éléments suivants :
Le protocole binaire nécessite uniquement des composants précompilés trouvés dans le programme d'installation pip
. Ces éléments ne sont pas disponibles sous forme de code source et sont sous une licence distincte (voir la documentation sur SAS TK). Le protocole binaire offre de meilleures performances que REST, notamment lors du transfert de plus grandes quantités de données. Il offre également des fonctionnalités de chargement de données plus avancées à partir du client et de formatage des données.
Pour accéder uniquement à l'interface CAS REST, vous pouvez utiliser le code Python pur qui s'exécute en Python 3.7 à 3.11 sur toutes les plateformes. Bien qu'elle ne soit pas aussi rapide que le protocole binaire, l'interface Python pure est plus portable.
Certaines distributions Linux peuvent ne pas installer par défaut toutes les bibliothèques partagées nécessaires. Plus particulièrement, la bibliothèque partagée libnuma.so.1
est requise pour établir des connexions de protocole binaire avec CAS. Si vous n'avez pas cette bibliothèque sur votre machine, vous pouvez installer le package numactl
pour votre distribution afin de la rendre disponible pour SWAT.
Le package SWAT utilise de nombreuses fonctionnalités du package Pandas Python et d'autres dépendances de Pandas. Si vous n'avez pas déjà installé la version 0.16.0 ou supérieure de Pandas, pip
l'installera ou la mettra à jour pour vous lorsque vous installerez SWAT.
Si vous utilisez pip
version 23.1 ou ultérieure pour installer à partir d'un fichier tar.gz, le package python wheel est requis. Si ce package n'est pas installé, vous pouvez l'installer en utilisant pip
.
SWAT peut être installé en utilisant pip
:
pip install swat
Vous pouvez également installer à partir des fichiers sur la page des versions du projet SWAT. Localisez simplement le fichier correspondant à votre plate-forme et installez-le à l'aide pip
comme suit :
pip install https://github.com/sassoftware/python-swat/releases/download/vX.X.X/python-swat-X.X.X-platform.tar.gz
Où XXX
est la version que vous souhaitez installer et platform
est la plate-forme sur laquelle vous effectuez l'installation. Vous pouvez également utiliser la distribution du code source si vous souhaitez utiliser uniquement l'interface CAS REST. Il ne prend pas en charge le protocole binaire.
Pour la documentation complète, rendez-vous sur sassoftware.github.io/python-swat. Un exemple simple est présenté ci-dessous.
Une fois que SWAT est installé et que vous disposez d'un serveur CAS auquel vous connecter, vous pouvez importer swat et créer une connexion : :
>>> import swat
>>> conn = swat.CAS(host, port, username, password)
Notez que le port par défaut pour la connexion Python SWAT est 5570.
Si vous utilisez python-swat version 1.8.0 ou ultérieure pour vous connecter à un serveur SAS Viya 3.5 CAS à l'aide de Kerberos, avant de vous connecter, vous devez définir le nom principal du service (SPN) à l'aide de la variable d'environnement CASSPN. Pour SAS Viya 3.5, la chaîne SPN doit commencer par « sascas@ », suivi du nom d'hôte.
export CASSPN=sascas@host
Si vous recevez un message d'erreur concernant la routine de support TCP/IP negClientSSL , vous avez probablement un problème avec la configuration de votre certificat SSL. Consultez la documentation sur le chiffrement pour plus d'informations.
Si cela réussit, vous devriez pouvoir exécuter une action sur le serveur CAS : :
>>> out = conn.serverstatus()
NOTE: Grid node action status report: 1 nodes, 6 total actions executed.
>>> print(out)
[About]
{'CAS': 'Cloud Analytic Services',
'Copyright': 'Copyright © 2014-2016 SAS Institute Inc. All Rights Reserved.',
'System': {'Hostname': 'cas01',
'Model Number': 'x86_64',
'OS Family': 'LIN X64',
'OS Name': 'Linux',
'OS Release': '2.6.32-504.12.2.el6.x86_64',
'OS Version': '#1 SMP Sun Feb 1 12:14:02 EST 2015'},
'Version': '3.01',
'VersionLong': 'V.03.01M0D08232016',
'license': {'expires': '20Oct2016:00:00:00',
'gracePeriod': 62,
'site': 'SAS Institute Inc.',
'siteNum': 1,
'warningPeriod': 31}}
[server]
Server Status
nodes actions
0 1 6
[nodestatus]
Node Status
name role uptime running stalled
0 cas01 controller 4.836 0 0
+ Elapsed: 0.0168s, user: 0.016s, sys: 0.001s, mem: 0.287mb
>>> conn.close()
L'accord de contribution détaille la manière dont les contributions peuvent être apportées au projet. La contribution comprend des instructions et des règles en ce qui concerne la contribution au projet.
Le LICENSE.md indique comment ce package est publié et sous licence.