Das SAS SWAT -Paket ist eine Python-Schnittstelle zur SAS Cloud Analytic Services (CAS) -Engine (dem Kernstück des SAS Viya-Frameworks). Mit diesem Paket können Sie beliebig große Datensätze auf Ihren Desktop oder in die Cloud laden und analysieren. Da CAS auf einem lokalen Desktop oder in einer gehosteten Cloud-Umgebung verwendet werden kann, können Sie extrem große Datensätze mit der benötigten Rechenleistung analysieren und gleichzeitig die Benutzerfreundlichkeit von Python auf der Client-Seite beibehalten.
Mit SWAT können Sie Workflows von CAS- Analyseaktionen ausführen und dann die zusammengefassten Daten abrufen, um sie auf der Clientseite in Python weiterzuverarbeiten oder sie mit Daten aus anderen Quellen unter Verwendung bekannter Pandas-Datenstrukturen zusammenzuführen. Tatsächlich ahmt das SWAT -Paket einen Großteil der API des Pandas-Pakets nach, sodass die Verwendung von CAS für aktuelle Pandas-Benutzer vertraut sein sollte.
Mit der besten SAS -Analyse in der Cloud und der Verwendung von Python und seiner großen Sammlung an Open-Source-Paketen bietet Ihnen das SWAT -Paket Zugriff auf das Beste aus beiden Welten.
Um Aktualisierungen für dieses Projekt anzuzeigen, sehen Sie sich das Änderungsprotokoll an.
Um auf das CAS-Binärprotokoll zuzugreifen (empfohlen), benötigen Sie Folgendes:
Das Binärprotokoll erfordert vorkompilierte Komponenten, die nur im pip
-Installationsprogramm zu finden sind. Diese Teile sind nicht als Quellcode verfügbar und unterliegen einer separaten Lizenz (siehe Dokumentation zu SAS TK). Das Binärprotokoll bietet eine bessere Leistung als REST, insbesondere bei der Übertragung größerer Datenmengen. Es bietet außerdem erweiterte Funktionen zum Laden von Daten vom Client und zur Datenformatierung.
Um nur auf die CAS-REST-Schnittstelle zuzugreifen, können Sie den reinen Python-Code verwenden, der in Python 3.7 bis 3.11 auf allen Plattformen läuft. Die reine Python-Schnittstelle ist zwar nicht so schnell wie das Binärprotokoll, aber portabler.
Einige Linux-Distributionen installieren möglicherweise nicht standardmäßig alle erforderlichen gemeinsam genutzten Bibliotheken. Insbesondere ist die gemeinsam genutzte Bibliothek libnuma.so.1
erforderlich, um binäre Protokollverbindungen zu CAS herzustellen. Wenn Sie diese Bibliothek nicht auf Ihrem Computer haben, können Sie das numactl
Paket für Ihre Distribution installieren, um es SWAT zur Verfügung zu stellen.
Das SWAT-Paket nutzt viele Funktionen des Pandas-Python-Pakets und anderer Abhängigkeiten von Pandas. Wenn Sie nicht bereits Version 0.16.0 oder höher von Pandas installiert haben, installiert oder aktualisiert pip
diese für Sie, wenn Sie SWAT installieren.
Wenn Sie pip
Version 23.1 oder höher für die Installation aus einer tar.gz-Datei verwenden, ist das Python-Wheel-Paket erforderlich. Wenn Sie dieses Paket nicht installiert haben, können Sie es mit pip
installieren.
SWAT kann mit pip
installiert werden:
pip install swat
Sie können die Installation auch über die Dateien auf der Seite mit den SWAT-Projektveröffentlichungen durchführen. Suchen Sie einfach die Datei für Ihre Plattform und installieren Sie sie mit pip
wie folgt:
pip install https://github.com/sassoftware/python-swat/releases/download/vX.X.X/python-swat-X.X.X-platform.tar.gz
Dabei ist XXX
die Version, die Sie installieren möchten, und platform
ist die Plattform, auf der Sie installieren. Sie können die Quellcodeverteilung auch nutzen, wenn Sie nur die CAS REST-Schnittstelle nutzen möchten. Es enthält keine Unterstützung für das Binärprotokoll.
Die vollständige Dokumentation finden Sie unter sassoftware.github.io/python-swat. Ein einfaches Beispiel ist unten dargestellt.
Sobald Sie SWAT installiert haben und über einen CAS-Server verfügen, mit dem Sie eine Verbindung herstellen können, können Sie SWAT importieren und eine Verbindung erstellen:
>>> import swat
>>> conn = swat.CAS(host, port, username, password)
Beachten Sie, dass der Standardport für die Python-SWAT-Verbindung 5570 ist.
Wenn Sie Python-Swat Version 1.8.0 oder höher verwenden, um über Kerberos eine Verbindung zu einem SAS Viya 3.5 CAS-Server herzustellen, müssen Sie vor dem Herstellen der Verbindung den Service Principal Name (SPN) mithilfe der Umgebungsvariablen CASSPN festlegen. Für SAS Viya 3.5 muss die SPN-Zeichenfolge mit „sascas@“ beginnen, gefolgt vom Hostnamen.
export CASSPN=sascas@host
Wenn Sie eine Fehlermeldung zur TCP/IP-Unterstützungsroutine negClientSSL erhalten, liegt wahrscheinlich ein Problem mit der Konfiguration Ihres SSL-Zertifikats vor. Weitere Informationen finden Sie in der Dokumentation zur Verschlüsselung.
Wenn dies erfolgreich ist, sollten Sie in der Lage sein, eine Aktion auf dem CAS-Server auszuführen:
>>> 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()
In der Beitragsvereinbarung wird detailliert beschrieben, wie Beiträge zum Projekt geleistet werden können. Der Abschnitt „Mitwirken“ enthält Anweisungen und Regeln für die Bereitstellung von Beiträgen zum Projekt.
Die Datei LICENSE.md gibt an, wie dieses Paket veröffentlicht und lizenziert wird.