Mehr Flexibilität und Anpassungsoptionen: Python und R in SAS Viya

Freitag, 25.8.2023

Bild für Blogpost(2)-1

Die nahtlose Integration von Python und R in SAS Viya eröffnet spannende neue Möglichkeiten in der Datenanalyse. In diesem Blogbeitrag erfahren Sie, wie sie durch die Verwendung von Python oder R auch ohne umfangreiche SAS-Code-Kenntnisse auf die Funktionen von SAS Viya zugreifen können.

 

Motivation 

Durch die Integration von Python und R in SAS Viya eröffnet sich eine neue Dimension der Flexibilität und Anpassungsfähigkeit. Der größte Vorteil dieser Integration besteht darin, dass auch unerfahrene SAS-Code-Entwickler die Möglichkeit erhalten, Datenanalysen durchzuführen. Wenn Sie bereits Kenntnisse in Python oder R besitzen, können Sie direkt in SAS Viya auf diese Sprachen zugreifen, ohne mit SAS-Code vertraut sein zu müssen. In diesem Beitrag bieten wir Ihnen einen Überblick über die verschiedenen Möglichkeiten, wie Sie die Programmiersprachen in Ihrer SAS Viya Instanz integrieren können. 

 

Python-Integration 

Innerhalb der SAS Viya Plattform stehen mehrere Schnittstellen zur Verfügung, um Python zu nutzen. Grundsätzlich lassen sich diese Schnittstellen in zwei Kategorien einteilen, die eine Integration von Python ermöglichen. 

Python-Aufruf innerhalb der SAS-Code-Umgebung: 
  • Proc FCMP 
  • Proc Python 
  • Python Interface in SAS-Studio
SAS-Code-Aufruf ausgehend von Python: 
  • SWAT 
  • SAS Viya REST APIs 
  • SASPY 
  • SAS Visual Interface 
  • CVPY 
  • DLPY 
  • SASOPTPY 
  • SASCTL

Insbesondere CVPY und DLPY sind für Bildanalyse und Deep Learning-Verfahren relevant. SASOPTPY bietet eine Python-Schnittstelle für mathematische Optimierungsfragen im Rahmen von SAS Optimizations. Mit SASCTL kann zusätzlich eine Daten- und Modellverwaltung realisiert werden. Jedes dieser Packages stellt spezifische Funktionen zur Verfügung, deren ausführliche Vorstellung den Rahmen dieses Beitrags sprengen würde. Daher verweisen wir an dieser Stelle auf die entsprechenden Dokumentationen für weitere Informationen. 

Proc FCMP Mit der Prozedur "Proc FCMP" haben Sie die Möglichkeit, Funktionen zu definieren, die an anderen Stellen wiederverwendet werden können, an denen eine SAS-Funktion erwartet wird. Dies ermöglicht beispielsweise die Nutzung umfangreicher Python-Bibliotheken, die ansonsten vollständig in SAS-Code umgewandelt werden müssten. Anstatt diese aufwendige Konvertierung durchzuführen, können die einzelnen Funktionen einfach im SAS-Code mithilfe von "Proc FCMP" aufgerufen werden. 

Proc Python – Die Prozedur "Proc Python" ermöglicht es Ihnen, zusätzlich Python-Funktionen innerhalb des SAS-Codes aufzurufen, die in SAS nicht vorhanden sind. 

Python Interface in SAS-Studio Wenn Sie Ihre Analyse komplett ohne SAS-Code durchführen möchten, bietet sich das Python-Editor-Interface in SAS-Studio an. Hier können Sie direkt auf die Datenbestände Ihrer SAS Viya Instanz zugreifen und herkömmliche Python-Pakete verwenden. 

SASPy SASPy ermöglicht das Schreiben von SAS-Prozeduren in Python-Syntax und die Umwandlung von SAS-Datasets in Python-Dataframes. Ursprünglich für die ältere SAS 9.4 Plattform entwickelt, wird das Python-Package weiterhin auch in SAS Viya unterstützt und bietet nützliche Funktionalitäten, jedoch ohne den Zugriff auf CAS. 

Im Folgenden möchten wir Ihnen einige der wichtigsten SASPy-Operationen vorstellen. Zunächst müssen Sie eine Verbindung zu einer SAS-Sitzung herstellen, was wie folgt umgesetzt werden kann: 

In diesem Statement wird die Standardkonfiguration verwendet, die von Ihnen individuell angepasst werden muss. Wenn Sie SASPy stattdessen nur intern in SAS-Studio verwenden, können Sie diesen Authentifizierungsschritt auch überspringen. Eine zentrale Funktion von SASPy besteht darin, Python-Dataframes in SAS-Datasets umzuwandeln. Dies kann wie folgt realisiert werden: 

Selbstverständlich ist es auch möglich, den umgekehrten Weg zu gehen und ein SAS-Dataset in einen Dataframe umzuwandeln: 

SASPy bietet außerdem Funktionen, mit denen Sie SAS-Datasets direkt erkunden und visualisieren können. Darüber hinaus stehen Ihnen Methoden zur Verfügung, um statistische Modelle, ökonometrische Zeitreihen oder maschinelles Lernen zu erstellen. Eine umfassende Dokumentation der API finden Sie hier.

SWAT – Das SWAT-Paket bietet ähnliche Funktionen wie SASPY, jedoch liegt der Fokus auf der Interaktion mit dem CAS-Server. Es ermöglicht die Übersetzung und Ausführung von R- und Python-Statements direkt auf dem CAS-Server. 


Befehle in SAS, Python oder R werden durch SWAT für den CAS-Server von SAS Viya übersetzt.Quelle: SAS Blogs


Wir möchten Ihnen auch einen kurzen Einblick in die grundlegenden SWAT-Operationen geben. Um eine Verbindung über Python-SWAT herzustellen, muss zunächst eine aktive CAS-Session auf SAS Viya vorhanden sein. Eine mögliche Vorgehensweise zur Erstellung dieser Session mittels SAS-Code könnte folgendermaßen aussehen: 

Anschließend kann eine Verbindung zum CAS-Server hergestellt werden: 

Sobald eine Verbindung hergestellt ist, können CAS-Aktionen ausgeführt werden. Dazu gehört unter anderem das Laden von Daten, der Zugriff auf gespeicherte Daten, die Modifikation dieser Daten und die Visualisierung der Ergebnisse. Wenn Sie beispielsweise Daten aus einem Dataframe in den CAS-Server laden möchten, sollten Sie wie folgt vorgehen: 

Weitere Details finden sie auch in der offiziellen SWAT-Dokumentation.

 

R-Integration 

Ähnlich wie bei Python existiert auch für R ein SWAT-Package, das genutzt werden kann, um über R mit dem CAS-Server zu interagieren. Ergänzend dazu bietet die IML-Prozedur die Möglichkeit R direkt in SAS-Studio in SAS-Code einzubetten. 

R-SWAT – Um eine Verbindung zu einer CAS-Session aufbauen zu können, muss genauso wie bei Python-SWAT bereits eine aktive CAS-Session auf dem Viya-Server laufen, mit der sich verbunden werden kann. Eine Verbindung zur CAS-Session wird dann wie folgt hergestellt: 

Sobald die Verbindung hergestellt wurde, können Aktionen auf dem CAS-Server über R ausgeführt werden. Zum Beispiel können Daten aus CAS-Tabellen in ein R-Dataframe geladen werden:

SAS/IML Möchten Sie R-Funktionen innerhalb eines SAS-Programms aufrufen, weil Sie beispielsweise Teile Ihrer Analyse in R auslagern? Dann können Sie dafür die IML-Prozedur nutzen, die es unter anderem auch ermöglicht R-Code in SAS-Studio zu schreiben. Einzige Voraussetzung hierfür ist, dass die R-Software auf derselben Infrastruktur installiert ist, auf der auch SAS Viya läuft. R-Code kann dann über ein „proc iml“ wie folgt ausgeführt werden: 

Mit der Integration von Python und R in SAS Viya eröffnen sich zahlreiche Möglichkeiten zur erweiterten Datenanalyse und -modellierung. Doch während der Nutzung dieser Programmiersprachen die Flexibilität erhöht, entsteht auch die Herausforderung der effektiven Versionsverwaltung und des Deployments. Um sicherzustellen, dass Ihre Analysen reibungslos funktionieren und stets auf dem neuesten Stand sind, ist es daher entscheidend, sich mit Versionsverwaltung in SAS Viya auseinanderzusetzen. Im nächsten Blogbeitrag werfen wir einen genaueren Blick auf bewährte Praktiken und Tools, mit denen Sie Ihre Analyseprojekte effizient verwalten und bereitstellen können. Seien Sie gespannt!


Jetzt den viadee Blog abonnieren und keine wertvollen Tipps mehr verpassen:

Blog abonnieren


Pascal Lengersdorf hat in seiner Tätigkeit als Werkstudent bei der viadee maßgeblich zu diesem Blogartikel beigetragen.


zurück zur Blogübersicht

Diese Beiträge könnten Sie ebenfalls interessieren

Keinen Beitrag verpassen – viadee Blog abonnieren

Jetzt Blog abonnieren!

Kommentare

Nils Quiring

Nils Quiring

Nils Quiring ist seit 2021 Berater bei der viadee Unternehmensberatung AG. Sein aktueller Schwerpunkt liegt im Bereich Business Intelligence, Data Warehousing und SAS-Entwicklung, besonders im Bereich Banken und Finanzdienstleister.

Nils Quiring auf LinkedIn