10. KSFE Hamburg, 23. - 24. Februar 2006 Tipps & Tricks - für einen leichteren Umgang mit der SAS Software AXA Service AG Komprimierung von SAS-Tabellen.

Slides:



Advertisements
Ähnliche Präsentationen
Imperative Programmierung
Advertisements

Strukturen in C Spelz, Sievers, Bethke.
Kap. 7 Sortierverfahren Kap. 7.0 Darstellung, Vorüberlegungen
PC-Senioren Ludwigsburg
Zusammenfassung der Vorwoche
Software Von Webmaster Mario.
Seminar zur Nebenläufigkeit in verteilten Systemen Kodierungsverfahren vorgestellt von Jens Brauckmann.
Suche in Texten (Stringsuche )
der Universität Oldenburg
V04: Definition und Implementierung der Formen. Spieler kann aus Gesamtzahl von 35 Steinen seine Spielsteine wählen Einheitliche Datenstruktur wird benötigt,
C.M. Presents D.A.R. und Ein Bisschen dies und das!
FH-Hof Einbindung von JavaScript Anweisungen
Java: Objektorientierte Programmierung
Sortierverfahren Richard Göbel.
Java: Dynamische Datentypen
Listen Richard Göbel.
Sortierverfahren Richard Göbel.
Indirekte Adressierung
Java: Referenzen und Zeichenketten
C- Syntax. Bestandteile der Sprache C: Ausdrücke Anweisungen.
Strukturen. In einer Struktur kann eine beliebige Anzahl von Komponenten (Daten) mit unterschiedlichen Datentypen (im Gegensatz zu Feldern) zusammengefaßt.
ARRAY oder FELD oder VEKTOR
Dynamischer Speicher und Struktur
Dynamischer Speicher. In einer Funktion wird z.B. mit der Deklaration int i; Speicher auf dem sogenannten Stack reserviert. Wenn die Funktion verlassen.
1 Vorlesung Informatik 2 Algorithmen und Datenstrukturen (02 – Funktionenklassen) Prof. Dr. Th. Ottmann.
Vorlesung Informatik 2 Algorithmen und Datenstrukturen (02 – Funktionenklassen) Tobias Lauer.
Algorithmen und Datenstrukturen
EINI-I Einführung in die Informatik für Naturwissenschaftler und Ingenieure I Kapitel 9 Claudio Moraga; Gisbert Dittrich FBI Unido
Übung zur Vorlesung Theorien Psychometrischer Tests I
Technik Gestaltung Navigation Daten. Übersicht Client Webbrowser InternetServer.
Java-Kurs - 2. Übung Entwicklungsumgebung Struktur von Programmen
PKJ 2005/1 Stefan Dissmann Zusammenfassung der Vorwoche Variable stehen für (einen) Wert, der sich im Programmablauf ändern kann. Variablen besitzen einen.
Zusammenfassung Vorwoche
eXtreme Programming (XP)
Die Skriptsprache Perl (2) Wolfgang Friebel DESY Zeuthen.
Vortrag: Ingo Gensch, Mathias Reich am:
Wismar Business School
© 2005 Pohlig - Taulien Datenströme GK Informatik 1 Datenströme.
Einführung MySQL mit PHP
Tutorium
Eigenschaften der OLS-Schätzer
Multikollinearität Wann spricht man von Multikollinearität?
Externe Bewertung in IB-Biologie
Präsentieren mit Power (Point)
JavaScript.
OMRON 1 FINS Befehle schicken mit CX – Server Lite Aufgabe :
LS 2 / Informatik Datenstrukturen, Algorithmen und Programmierung 2 (DAP2)
Javakurs FSS 2012 Lehrstuhl Stuckenschmidt
Computational Thinking Online Algorithmen [Was ist es wert, die Zukunft zu kennen?] Kurt Mehlhorn Konstantinos Panagiotou.
Black Box Algorithmen Hartmut Klauck Universität Frankfurt SS
Theorie Praktische Beispiele
Kapitel 10 Multikollinearität
HORIZONT 1 XINFO ® Das IT - Informationssystem PL/1 Scanner HORIZONT Software für Rechenzentren Garmischer Str. 8 D München Tel ++49(0)89 / 540.
Institut für Wirtschaftsinformatik – Software Engineering, JKU Linz 1 Algorithmen und Datenstrukturen Übungsmodul 5 Dr. W. Narzt u. Dr. A. Stritzinger.
Wahrscheinlichkeitsrechnung
Theorie Praktische Beispiele
Datenerfassung mit SAS-AF
ADAT©2004 Dipl. - Ing. Walter SabinSeite: 19 Version 1.0a Programme - Zusatzsoftware Oracle: –Forms –Reports –Designer –Jdeveloper –APEX (Application Express)
Theorie Praktische Beispiele
Institut für Wirtschaftsinformatik – Software Engineering, JKU Linz 1 Algorithmen und Datenstrukturen SS 2005 Mag.Th. Hilpold u. Dr. A.Stritzinger Institut.
Softwaretechnologie für Fortgeschrittene Teil Thaller Stunde IV: Bildverarbeitung IV Köln 15. Januar 2015.
TypoScript.
Mag. Thomas Hilpold, Universität Linz, Institut für Wirtschaftsinformatik – Software Engineering 1 Algorithmen und Datenstrukturen 1 SS 2002 Mag.Thomas.
Delphi Chars und Strings
15 Tabellen erstellen und Tabellenstruktur bearbeiten Grundlagen zu Tabellen l Tabelle l Enthält Daten zu einem bestimmten Thema l Beispiele:  Mitarbeiterdaten.
By Thorsten Zisler 1 SQL Datenbank Anbindung an den Supervisor.
Mp3 und co. – Audiobearbeitung am PC. Vorteile Audio am PC Audiofiles lassen sich einfacher verwalten und weiter verarbeiten als Kassettenaufnahmen.
COURSE in Bad Hersfeld 1.6. – Copyright, 2008 Lattwein GmbH Michael Prinz Lattwein GmbH Neues aus dem Hause Lattwein.
SAS Backstage Biljana Gigić1, Andreas Deckert2
Anforderungen an die neue Datenstruktur
 Präsentation transkript:

10. KSFE Hamburg, Februar 2006 Tipps & Tricks - für einen leichteren Umgang mit der SAS Software AXA Service AG Komprimierung von SAS-Tabellen Thomas Rüdiger compress.ppt 1 Tipps & Tricks für einen leichteren Umgang mit der SAS Software Carina Ortseifen, Universität Heidelberg Grischa Pfister, iCASUS GmbH Heidelberg Adolf Quast, Deutsche Bank AG Thomas Rüdiger, AXA Service AG Heinrich Stürzl, Dade Behring Marburg

10. KSFE Hamburg, Februar 2006 Tipps & Tricks - für einen leichteren Umgang mit der SAS Software AXA Service AG Komprimierung von SAS-Tabellen Thomas Rüdiger compress.ppt 2 Inhalt Vorläufig SAS vorläufig 1.Komprimierung von SAS-Tabellen 2.Zugriff auf Excel- und Access-Tabellen 3.Ende gut, alles gut – Grafiken mit True Type Fonts und ODS 4.Temporäre Buffer 5.Java im Data Step 6.??? 7.Publikumsfrage – Auflösung von der 8. KSFE und Neue

10. KSFE Hamburg, Februar 2006 Tipps & Tricks - für einen leichteren Umgang mit der SAS Software AXA Service AG Komprimierung von SAS-Tabellen Thomas Rüdiger compress.ppt 3 Komprimierung von SAS Tabellen Komprimierung in SAS lohnt sich trotz einiger Nachteile. File-Komprimierung ist ein Prozess, der die pro Datensatz benötigten Bytes reduziert. In einem komprimierten File ist für jeden Datensatz die Record-Länge variabel, in einem unkomprimierten File fix. Vorteile von Komprimierung sind idR Speicherreduzierung mehr Daten bei weniger Speicherbedarf weniger I/O-Prozesse zum Lesen oder Schreiben von Daten geringeres Risiko von PROC SORT-Abbrüchen Nachteile von Komprimierung sind erhöhter CPU-Bedarf zum Lesen von Daten aufgrund des Dekomprimierungs-Overheads in einigen Fällen eine Erhöhung des Speichervolumens aufgrund Komprimierung-Patterns im Ausgabefile

10. KSFE Hamburg, Februar 2006 Tipps & Tricks - für einen leichteren Umgang mit der SAS Software AXA Service AG Komprimierung von SAS-Tabellen Thomas Rüdiger compress.ppt 4 Komprimierung von SAS Tabellen Die compress-Option kennt in SAS drei Anwendungs-Ebenen (System, Library und Tabelle) und drei Ausprägungen (NO, BINARY und CHAR). SAS kann seit der Version SAS/V8 drei Komprimierungsarten auf drei SAS-Ebenen.

10. KSFE Hamburg, Februar 2006 Tipps & Tricks - für einen leichteren Umgang mit der SAS Software AXA Service AG Komprimierung von SAS-Tabellen Thomas Rüdiger compress.ppt 5 Komprimierung von SAS Tabellen Optimale Speicheroptimierung findet individuell auf Tabellenebene statt. SAS-Syntax Tabellen-Ebene: data Binary(compress=binary) Char(compress=char) Uncompressed(compress=no);X=1.2345;run; SAS-Syntax Libname-Ebene: libname MYDATA '.' compress=binary; SAS-Syntax System-Ebene: options compress=binary; Gibt man compress auf Tabellenebene an, wird der Default für Library und System überschrieben, die Ebene Library hat höhere Priorität als die Ebene System.

10. KSFE Hamburg, Februar 2006 Tipps & Tricks - für einen leichteren Umgang mit der SAS Software AXA Service AG Komprimierung von SAS-Tabellen Thomas Rüdiger compress.ppt 6 Komprimierung von SAS Tabellen Die optimale compress-Option hängt von der Datenstruktur und den Dateninhalten ab. NO | N läßt die Datensätze in der Ausgabe-Datei unkomprimiert (feste Länge) YES | CHAR | Y | ON staucht die Datensätze in der Ausgabe-Datei mit RLE (Run Length Encoding): RLE reduziert gleiche aufeinanderfolgende Zeichen (einschließlich Blanks) auf 2- oder 3-Byte- Darstellungen. RLE berücksichtigt laut SAS Hilfe insbesondere Textfelder. BINARY staucht die Datensätze in der Ausgabe-Datei mit RDC (Ross Data Compression):RDC kombiniert RLE und Sliding-window compression. Diese Methode eignet sich vor allem bei großen Blöcken von binären Daten/numerischen Variablen (mehrere hundert Bytes oder größer). Die Recordlänge sollte in diesem Fall mehrere hundert Bytes oder größer sein.

10. KSFE Hamburg, Februar 2006 Tipps & Tricks - für einen leichteren Umgang mit der SAS Software AXA Service AG Komprimierung von SAS-Tabellen Thomas Rüdiger compress.ppt 7 Komprimierung von SAS Tabellen Das strings-Kommando auf Linux/UNIX-Systemen erlaubt Einblicke in die physische Struktur von SAS-Dateien. Neben den Daten werden auch System- und Dictionary- Informationen bei der Komprimierung berücksichtigt. UNCOMPRESSEDCHARBINARY siehe compress.sas, Teil 2 (Hyperlink)

10. KSFE Hamburg, Februar 2006 Tipps & Tricks - für einen leichteren Umgang mit der SAS Software AXA Service AG Komprimierung von SAS-Tabellen Thomas Rüdiger compress.ppt 8 Komprimierung von SAS Tabellen Observations 100 Max Obs per Page 101 Data Set Page Size 4096 number of data pages = 1 + (floor( Observations / Max Obs per Page )) size = (Data Set Page Size * number of data pages) Für die Schätzung der Dateigröße von komprimierten SAS-Tabellen ist derzeit keine Formel in der SAS Hilfe hinterlegt: Der Wert für Max Obs per Page ist im PROC CONTENTS bei komprimierten SAS-Tabellen missing. In Einzelfällen gab es bei unkomprimierten SAS- Tabellen Ungenauigkeiten in der Schätzung. Um die Dateigröße von unkomprimierten Ausgabe-Datei zu schätzen, gibt die SAS Hilfe eine Formel mit Angaben aus dem PROC CONTENTS an: Je kleiner Data Set Page Size und Anzahl Datensätze und je größer Max Obs per Page, desto kleiner die Size.

10. KSFE Hamburg, Februar 2006 Tipps & Tricks - für einen leichteren Umgang mit der SAS Software AXA Service AG Komprimierung von SAS-Tabellen Thomas Rüdiger compress.ppt 9 Komprimierung von SAS Tabellen Die Speicheroptimierung läßt sich testen mit unterschiedlicher Anzahl Datensätzen und unterschiedlichen Datenstrukturen. I N P U T -Parameter: MacroVariable Beschreibung (Testwerte) VarOrder array) Variablen-Reihenfolge array-weise (smallnum bigchar bignum) var) Variablen-Reihenfolge entsprechend Variablentyp Anz_Big_Num_Var Anz_Obs Anzahl Datensätze (1|1000) Anz_Small_Num_Var Anzahl numerischer Felder mit 3 Byte-Genauigkeit (0|10) Anz_Big_Num_Var Anzahl numerischer Felder mit 8 Byte-Genauigkeit (0|10) Anz_Char_Var Anzahl Textfelder (0|10) Max_Small_Num_Length Länge (3-8) für numerische Felder mit 3-Byte-Genauigkeit (3|8) Max_Char_Length Länge für max. 16-stellige Textfelder (16|32767) O U T P U T : MacroVariable Beschreibung (Testwerte) Compress Berechneter optimaler Kompressions-Typ (Zielvariable) Factor Berechneter Faktor Speicherreduzierung MinBytes Benötigte Bytes bei optimaler Komprimierung DataSetPageSize DataSet Page Size MaxObsPerPage Max Obs Per Page Estimated_Size Benötigte Bytes bei optimaler Komprimierung, geschätzt

10. KSFE Hamburg, Februar 2006 Tipps & Tricks - für einen leichteren Umgang mit der SAS Software AXA Service AG Komprimierung von SAS-Tabellen Thomas Rüdiger compress.ppt 10 Komprimierung von SAS Tabellen Hinweise für eine mögliche Vorhersage des optimalen Compress-Typs ergeben sich per Entscheidungsbaum.

10. KSFE Hamburg, Februar 2006 Tipps & Tricks - für einen leichteren Umgang mit der SAS Software AXA Service AG Komprimierung von SAS-Tabellen Thomas Rüdiger compress.ppt 11 Komprimierung von SAS Tabellen Der optimale Compress-Typ läßt sich aufgrund von Datenstruktur und Anzahl erwartbarer Datensätze in der Ausgabe-Datei nur in etwa vorhersagen. siehe Ergebnistabelle compress.xls siehe Ergebnistabelle compress.xls (Hyperlink)Hyperlink)

10. KSFE Hamburg, Februar 2006 Tipps & Tricks - für einen leichteren Umgang mit der SAS Software AXA Service AG Komprimierung von SAS-Tabellen Thomas Rüdiger compress.ppt 12 Komprimierung von SAS Tabellen Die optimale Compress-Option läßt sich nur durch direkten Vergleich über alle Input-Datensätze hinweg ermitteln. Beim Dateneinlesen kristallisiert sich die optimale Komprimierungsvariante mit wachsender Observation Number heraus. In der Regel ist -geschätzt- bereits ab dem Datensatz die optimale Komprimierung sichtbar. *SAS-Syntax für parallelen Compress-Output; data BINARY(compress=binary) CHAR(compress=char) UNCOMPRESSED (compress=no); set INPUT_DATEI; run; siehe compress.sas, Teil 1 (Hyperlink)

10. KSFE Hamburg, Februar 2006 Tipps & Tricks - für einen leichteren Umgang mit der SAS Software AXA Service AG Komprimierung von SAS-Tabellen Thomas Rüdiger compress.ppt 13 Komprimierung von SAS Tabellen Es gibt zwar keine Formel für den optimalen Compress-Typ, jedoch gewisse von der SAS Hilfe abweichende Spielregeln. Compress=BINARY: BINARY hat sich bei großen Datenmengen und bei entweder einem hohen Anteil von numerischen Variablen mit hoher Rechengenauigkeit (8-Byte-Felder) oder vielen Textfeldern mit großer Feldlänge bewährt. Bei großen Datenmengen spricht einiges dafür, BINARY als System-Default zu verwenden (options compress=binary;). Lediglich bei wenigen Textfeldern konkurriert COMPRESS=NO. Selbst wenn nur Textvariablen in der SAS-Tabelle vorhanden sind, kann u.U. BINARY besser als CHAR komprimieren. Compress=CHAR: Wenn alle Textfelder pro Datensatz konstante Länge haben (z.B. bei ausschließlich kategoriellen Feldern), schnitt die Option CHAR im Vorab-Test immer schlechter ab als die beiden anderen Optionen. Ansonsten schneidet bei großer Anzahl Datensätzen und vielen Textfeldern mit kleiner Länge CHAR am besten ab. Compress=NO: Je weniger Datensätze, desto klarer geht die Tendenz in Richtung COMPRESS=NO, allerdings gibt es auch weniger Speicherplatz-Unterschiede pro Compress-Typ.

10. KSFE Hamburg, Februar 2006 Tipps & Tricks - für einen leichteren Umgang mit der SAS Software AXA Service AG Komprimierung von SAS-Tabellen Thomas Rüdiger compress.ppt 14 Komprimierung von SAS Tabellen Die positionelle Anordnung von Variablen nach Variablentyp (z.B. zunächst numerische, dann Textvariablen) bringt keinen zusätzlichen Effekt, jedoch kann es in Einzelfällen bei gleicher Datenstruktur und gleichen Daten bei unterschiedlichen Betriebssystemen zu Unterschieden bezüglich des optimalen Compress-Typs kommen. VarOrder=array Anz_Obs=1 Anz_Small_Num_Var=10 Max_Small_Num_Length=3 Anz_Big_Num_Var=10 Anz_Char_Var=0 Max_Char_Length=16 LINUX Compress=BINARY CHAR UNCOMPRESSED WIN_PRO Compress2=UNCOMPRESSED VarOrder=array Anz_Obs=1 Anz_Small_Num_Var=10 Max_Small_Num_Length=3 Anz_Big_Num_Var=10 Anz_Char_Var=0 Max_Char_Length=32764 LINUX Compress=BINARY CHAR UNCOMPRESSED WIN_PRO Compress2=UNCOMPRESSED VarOrder=array Anz_Obs=1 Anz_Small_Num_Var=10 Max_Small_Num_Length=8 Anz_Big_Num_Var=10 Anz_Char_Var=10 Max_Char_Length=16 LINUX Compress=BINARY CHAR UNCOMPRESSED WIN_PRO Compress2=UNCOMPRESSED VarOrder=array Anz_Obs=1000 Anz_Small_Num_Var=10 Max_Small_Num_Length=8 Anz_Big_Num_Var=0 Anz_Char_Var=10 Max_Char_Length=16 LINUX Compress=BINARY CHAR WIN_PRO Compress2=BINARY VarOrder=var Anz_Obs=1 Anz_Small_Num_Var=10 Max_Small_Num_Length=8 Anz_Big_Num_Var=10 Anz_Char_Var=10 Max_Char_Length=16 LINUX Compress=BINARY CHAR UNCOMPRESSED WIN_PRO Compress2=UNCOMPRESSED

10. KSFE Hamburg, Februar 2006 Tipps & Tricks - für einen leichteren Umgang mit der SAS Software AXA Service AG Komprimierung von SAS-Tabellen Thomas Rüdiger compress.ppt 15 Komprimierung von SAS Tabellen Die Reduzierung auf maximal notwendige Feldlängen reduziert zusätzlich den Speicherbedarf. Maximal notwendige Feldlängen lassen sich mit max(length(Text_Variable)) und max(trunc(Numerische_Variable)) ermitteln. Anz_Obs=1000,Anz_Small_Num_Var=10,Anz_Big_Num_Var=10,Anz_Char_Var=10: reduzierte Feldlänge: Max_Small_Num_Length=3,Max_Char_Length=16: 1.) CHAR ) BINARY ) UNCOMPRESSED fache Reduktion durch optimalen Compress-Typ Default-Feldlänge (nicht-reduziert): Max_Small_Num_Length=3,Max_Char_Length=32767: 1.) BINARY ) CHAR ) UNCOMPRESSED fache Reduktion durch optimalen Compress-Typ /173056=5.7-fache Reduktion bei zusätzlich reduzierter Feldlängen

10. KSFE Hamburg, Februar 2006 Tipps & Tricks - für einen leichteren Umgang mit der SAS Software AXA Service AG Komprimierung von SAS-Tabellen Thomas Rüdiger compress.ppt 16 Komprimierung von SAS Tabellen Die Reduzierung auf maximal notwendige Feldlängen bedeutet leider auch zusätzlich notwendige attrib-Statements beim set|merge|update von Dateien mit gleichen Variablen. Datei A, Feldlänge Variable1 $35 Datei B, Feldlänge Variable1 $70 falsch (Truncation-Fehler): data C;set A B;run; richtig: data C;attrib Variable1 length=$70;set A B;run;

10. KSFE Hamburg, Februar 2006 Tipps & Tricks - für einen leichteren Umgang mit der SAS Software AXA Service AG Komprimierung von SAS-Tabellen Thomas Rüdiger compress.ppt 17 Komprimierung von SAS Tabellen Fazit: Kontrollierbares compress ist gut. Vertraubares compress=best wäre besser!