In-Memory auch mal ganz klassisch mit In-Memory-Bibliotheken

0

Mit immer größeren Datenmengen, die es bei BI Reports und Analysen zu bewältigen gibt, sieht man sich immer öfter mit Performance-Engpässen konfrontiert. Nicht ohne Grund werden deshalb In-Memory-Lösungen, in denen ganze riesige Dateien in Arbeitsspeicherfarmen immer beliebter, die performanceoptimiert zusammenarbeiten und Techniken wie Load Balancing und Multi-Threading nutzen. Doch auch wenn die Daten nicht so groß sind, kann es sinnvoll sein, In-Memory-Techniken zu nutzen. Das kann man so ganz ohne High Performance Analytics mit klassischem SAS schon seit geraumer Zeit tun. Und das kann sogar ausgesprochen performant sein. Seit SAS Version 8.1 gibt es hierfür schon das SASFILE Statement, was aber selbst unter erfahrenen Programmierern oft wenig bekannt ist.

Etwas neuer ist die Möglichkeit mit sogenannten In-Memory-Bibliotheken zu arbeiten. Hierfür fügt man, wie im u.g. Beispiel demonstriert, einer Libname-Anweisung die Memlib-Option hinzu. Die entsprechenden Dateien werden dann direkt in den Arbeitsspeicher geladen und dort gehalten. Was das bringt? Der größte Engpass bei der Verarbeitung von Dateien, ist der Weg der Datei in den Arbeitsspeicher. Eine SAS Datei teilt sich in mehrere sogenannte Data Set Pages auf. Diese werden dann nach und nach in den Arbeitsspeicher des Computers geladen, verarbeitet und in die neu erstellte Datei ausgegeben. Ändert man dieses Verhalten und lädt die Datei in einem ersten Schritt schon mal komplett in den Arbeitsspeicher, spart man sich diese andauernden Input Output Operationen. Damit laufen dann die SAS Programme schneller. Aber Vorsicht! Die meisten unserer Kunden sind nicht ganz allein auf ihrem SAS-Server, d.h. bevor Sie die Memlib-Option verwenden, sollten Sie zunächst abklären, ob das in Ihrem Unternehmen und in Ihrer SAS-Umgebung überhaupt möglich ist. Außerdem müssen die Dateien Ihrer Memory Library natürlich auch in den Arbeitsspeicher passen. Man hat maximal die Hälfte des gesamten Arbeitsspeichers zu Verfügung, um dort Dateien abzulegen. Ich würde eher empfehlen, maximal ein Viertel des Arbeitsspeichers mit Dateien zu belegen.

Falls Ihre Daten also sehr groß sind und sie lange Wartezeiten haben, bis SAS Programme durchgelaufen sind, dann empfiehlt es sich vielleicht, sich mal die High Performance Lösungen von SAS anzuschauen. Nur am Rande: In 9.4 sind für alle Lizenznehmer von SAS-Statistikprodukten direkt die HPA-Prozeduren enthalten (die auch neu geschrieben sind, eben um die neuen Rechnerarchitekturen auszunutzen).

Für alles, was mit performantem Programmieren zu tun hat, können Sie meine Kollegen und mich ab dem 13. Oktober in verschiedenen Städte in Deutschland, Österreich und der Schweiz in unserem Education on Tour besuchen, wo neben dem Thema Performance, auch der Data Step 2, effektive Makroprogrammierung und der richtige Umgang mit SAS Datumswerten besprochen wird.

Nähere Infos hierzu, finden Sie hier:  http://www.sas.com/de_de/events/14/sas-education-on-tour-dach/overview.html

Und hier noch das versprochene SAS-Programm:

memlib_code

 

 

Tags
Share

About Author

Thomas Wende

SAS Trainer

Thomas Wende ist seit 2006 Trainer bei SAS. Seine Schwerpunktthemen sind SAS Business Analytics und Visual Analytics. Er ist verheiratet und hat 2 Töchter. In seiner Freizeit trainiert er Krav Maga und spielt Gitarre.

Leave A Reply

Back to Top