WAS IST DS2?

Werbung
[email protected]:
SAS Data Step 2 – next generation
Karin Gross
C op yr i g h t © 2 0 1 4 , S A S I n s t i t u t e I n c . A l l r i g h t s r es er v e d .
[email protected] HERZLICH WILLKOMMEN BEI [email protected]
Moderation
Training
Anne K. Bogner-Hamleh
Karin Gross
SAS Institute GmbH
Education Consultant
SAS Institute GmbH
Manager SAS Education
Services
Xing-Profil:
Xing-Profil:
http://www.xing.com/profile/AnneKatrin_BognerHamleh?key=0.0
http://www.xing.com/profile/Karin_Gross2
Hinweise zum Ablauf des Webinars:
• Teilnehmer sind automatisch “stumm” geschaltet
• Sie können Nachrichten an den Moderator senden und Fragen stellen
• die Veranstaltung wird aufgezeichnet
C op yr i g h t © 2 0 1 4 , S A S I n s t i t u t e I n c . A l l r i g h t s r es er v e d .
[email protected] AGENDA
•
•
•
•
•
•
Was ist DS2?
Warum DS2?
Was ist neu in DS2?
Wo kann der DS2 ausgeführt werden?
Wann nutze ich DS2?
Einführung in ein DS2-Programm
C op yr i g h t © 2 0 1 4 , S A S I n s t i t u t e I n c . A l l r i g h t s r es er v e d .
FRAGE (MEHRFACHAUSWAHL MÖGLICH)
FRAGE
Mögliche
Antworten
C op yr i g h t © 2 0 1 4 , S A S I n s t i t u t e I n c . A l l r i g h t s r es er v e d .
Welche dieser SAS Programmiersprachen nutzen Sie?
a.Base SAS
b.SQL
c. Makro
d.DS2
[email protected] WAS IST DS2?
•
Ersetzt NICHT den Base SAS Data Step
• Data Step DNA ist klar erkennbar
• DATA und SET Anweisungen
• IF...THEN...ELSE, DO Schleifen
• Ausdrücke und Funktionen
• Arrays
•
Aber es ist ein neuer DATA Step
• Keine INFILE, INPUT, MERGE, UPDATE, MODIFY Anweisung
• Methoden, Packages und Variablen-Gültigkeitsbereiche
C op yr i g h t © 2 0 1 4 , S A S I n s t i t u t e I n c . A l l r i g h t s r es er v e d .
[email protected] WAS IST DS2?
•
DS2 ist eine neue SAS Programmiersprache:
• ist Bestandteil von Base SAS
• hat eine ähnliche Syntax wie der Base SAS DATA Step
• bietet weiterführende Techniken zum Datenmanagement
Base SAS DATA Step
data _null_;
Text='Hello, World!';
put Text=;
run;
C op yr i g h t © 2 0 1 4 , S A S I n s t i t u t e I n c . A l l r i g h t s r es er v e d .
DS2 DATA Step
proc ds2;
data _null_;
method init();
Text='Hello, World!';
put Text=;
end;
enddata;
run;
quit;
[email protected] WARUM DS2?
•
SASige Dinge ausführen an bisher unbekannten Orten
•
Moderne Programmiertechniken und -strukturen
•
Strikte Variablendeklaration (optional)
• Gültigkeitsbereiche von Variablen
• Methoden
• Vordefinierte (INIT, RUN, TERM)
• Benutzerdefinierte
• Variablenkapselung
• Packages
• Vordefinierte (HASH, SQLSTMT, Logger, FCMP, …)
• Benutzerdefinierte
C op yr i g h t © 2 0 1 4 , S A S I n s t i t u t e I n c . A l l r i g h t s r es er v e d .
[email protected] WAS IST NEU IN DS2?
•
DS2 verbessert die Erweiterbarkeit und Wiederverwendbarkeit von Code
durch den Einsatz von Methoden und Packages.
Package
Method A
… method code …
Method B
… method code …
Methoden und Packages können vordefiniert oder benutzerdefiniert sein.
C op yr i g h t © 2 0 1 4 , S A S I n s t i t u t e I n c . A l l r i g h t s r es er v e d .
[email protected] WAS IST NEU IN DS2?
•
DS2 unterstützt ANSI SQL Datentypen für das exakte Datenmanagement.
•
Beispiele:
Datentyp
Beispiele
Rationale Zahlen
DECIMAL, DOUBLE, FLOAT, REAL
Ganzzahlen
BIGINT, INTEGER, SMALLINT, TINYINT
Datum und Zeit
DATE, TIME, TIMESTAMP
Text
CHAR, NCHAR, VARCHAR,
NVARCHAR
Numerische Variablen im “alten” DS: DOUBLE
Alphanumerische Variablen im “alten” DS: CHAR
C op yr i g h t © 2 0 1 4 , S A S I n s t i t u t e I n c . A l l r i g h t s r es er v e d .
[email protected] WAS IST NEU IN DS2?
•
Base SAS DATA Step verarbeitet alle Beobachtungen sequentiell.
• DS2 kann Beobachtungen parallel verarbeiten.
DS2 DS2 DS2
C op yr i g h t © 2 0 1 4 , S A S I n s t i t u t e I n c . A l l r i g h t s r es er v e d .
[email protected] WAS IST NEU IN DS2?
•
Mit dem SAS In-Database Code Accelerator kann DS2-Code in Datenbanken
ausgeführt werden (Greenplum, Teradata, Netezza, HADOOP).
DS2 DS2 DS2
RDBMS
C op yr i g h t © 2 0 1 4 , S A S I n s t i t u t e I n c . A l l r i g h t s r es er v e d .
[email protected] WIE WERDEN DS2 PROGRAMME ERSTELLT?
•
DS2-Programme werden in einer dieser Prozeduren erstellt:
•
PROC DS2
• PROC HPDS2
C op yr i g h t © 2 0 1 4 , S A S I n s t i t u t e I n c . A l l r i g h t s r es er v e d .
[email protected] WANN NUTZE ICH DS2?
•
DS2 kann auf Daten aus den folgenden Datenquellen zugreifen:






•
Aster
DB2
Greenplum
MYSQL
Netezza
ODBC-kompatible
Datenbanken







SAS Dateien
SAP
SPD Engine Dateien
Sybase IQ
Teradata
Hadoop
Oracle
Für den Zugriff auf Daten des DBMS wird FedSQL genutzt.
C op yr i g h t © 2 0 1 4 , S A S I n s t i t u t e I n c . A l l r i g h t s r es er v e d .
[email protected] WANN NUTZE ICH DS2?
•
DS2 Einsatz am besten in folgenden Situationen:
•
Nutzen der verteilten Verarbeitung
• komplexe Berechnungen
• Ausführung in Massively Parallel Processing (MPP) Datenbanken
• DS2 Datentypen für die Exaktheit der Berechnungen erforderlich
• Einsatz der Wiederverwendbarkeit von DS2 Methoden und Packages.
DS2?
C op yr i g h t © 2 0 1 4 , S A S I n s t i t u t e I n c . A l l r i g h t s r es er v e d .
[email protected] GRUNDLEGENDE SYNTAX
•
PROC DS2 kann drei verschiedene Elemente enthalten:
•
•
•
•
DATA Step
Package
Thread
PROC DS2 verwendet Run-Group Verarbeitung.
proc ds2;
package work.pgk;
<more program statements>
endpackage;
run;
thread work.thread;
<more program statements>
endthread;
run;
Data work.newDataset;
<more program statements>
enddata;
run;
quit;
C op yr i g h t © 2 0 1 4 , S A S I n s t i t u t e I n c . A l l r i g h t s r es er v e d .
[email protected] GRUNDLEGENDE SYNTAX
•
DS2 DATA Step
•
beginnt mit einer DATA Anweisung
• endet mit einer ENDDATA Anweisung
• benötigt zur Ausführung eine RUN Anweisung.
proc ds2;
data _null_;
method init();
Text = 'Hello, World!';
put Text=;
end;
enddata;
run;
quit;
ds2_helloWorld
C op yr i g h t © 2 0 1 4 , S A S I n s t i t u t e I n c . A l l r i g h t s r es er v e d .
[email protected] GRUNDLEGENDE SYNTAX
•
Neu in DS2: Methoden
•
Methoden sind benannte ausführbare Codeblöcke.
•
•
•
Die METHOD Anweisung benennt die Methode.
Die END Anweisung beendet die Methode.
Ausführbarer Code steht immer IN einer Methode.
•
•
Methoden sind global.
Variablen können global oder lokal sein.
proc ds2;
data _null_;
method init();
Text = 'Hello, World!';
put Text=;
end;
enddata;
run;
quit;
C op yr i g h t © 2 0 1 4 , S A S I n s t i t u t e I n c . A l l r i g h t s r es er v e d .
[email protected] GRUNDLEGENDE SYNTAX
•
Systemmethoden werden automatisch ausgeführt.
INIT() –
• RUN() –
• TERM() –
•
einmal zu Beginn
einmal für jede Zeile
einmal am Ende
data _null_;
/* Section 1 */
if _n_ =1 then do;
Text='**> Starting';
put Text;
end;
/* Section 2 */
set orion.banks end=last;
put _all_;
/* Section 3 */
if last then do;
Text='**> All done!';
put Text;
end;
run;
C op yr i g h t © 2 0 1 4 , S A S I n s t i t u t e I n c . A l l r i g h t s r es er v e d .
data _null_;
method init();
dcl varchar(20) Text;
Text='**> Starting';
put Text;
end;
method run();
set orion.banks;
put _all_;
end;
method term();
dcl char(11) Text;
Text='**> All done!';
put Text;
end;
enddata;
run;
ds2_basicMethods
[email protected] BEISPIEL EINER EINFACHEN DS2 METHODE
•
Benutzerdefinierte Methoden
•
können Argumente haben
• können einen Wert liefern
• werden beim Aufruf ausgeführt
• können mehrmals aufgerufen werden.
PROC DS2;
data c2f_conv(overwrite=yes);
declare double degC degF;
method c2f(double tC) returns double;
declare double tempValue;
/* Celsius to Farenheit */
tempValue = ( ( tC * 9 ) / 5 ) + 32;
return ( tempValue );
end;
method init();
do degC = 0 to 30 by 2;
degF = c2f(degC);
output;
end;
end;
enddata;
run;
QUIT;
ds2_user_method_example
C op yr i g h t © 2 0 1 4 , S A S I n s t i t u t e I n c . A l l r i g h t s r es er v e d .
[email protected] GEMEINSAMKEITEN MIT DEM DATA STEP
Vieles ist ähnlich:
•
Set Anweisung: Tabelle einlesen
• BY Group Verarbeitung mit
•
•
First. und Last.
DO Gruppen & Schleifen
•
•
•
DO I= start TO stop BY interval
DO WHILE () / DO UNTIL ()
CONTINUE, LEAVE, END
•
RETURN, GOTO, STOP, OUTPUT
• KEEP, DROP, RETAIN, RUN
•
DS2: nur außerhalb von Methoden
C op yr i g h t © 2 0 1 4 , S A S I n s t i t u t e I n c . A l l r i g h t s r es er v e d .
[email protected] SECHS „KLEINE UNTERSCHIEDE“
1.
2.
3.
4.
5.
6.
Ausführbarer Code muss innerhalb einer Methode stehen.
Dateien, Threads und Packages werden nicht automatisch überschrieben,
Einsatz von overwrite=yes.
Neue Variablen sollten deklariert werden, s. SCOND Option für Proc DS2
oder DS2SCOND System Option.
Schlüsselwörter sind Reservierte Wörter (da gibt es eine ganze Liste… )
Ausgabe mit Zeilensteuerung in der PUT Anweisung wird nicht unterstützt,
PUTLOG gibt es nicht.
‘ bzw. “ – jetzt ANSI Standard:
 doppelte Anführungszeichen ⇒ Name (Case sensitive)
 einfaches Hochkomma ⇒ Textkonstante
 %TSLIT macht einfache Hochkommata um aufgelöste Makrovariablenwerte.
C op yr i g h t © 2 0 1 4 , S A S I n s t i t u t e I n c . A l l r i g h t s r es er v e d .
[email protected] ZUSAMMENFASSUNG
Was?
•
Neue SAS Programmiersprache
• DATA Step ähnliche Syntax mit verteilter Verarbeitung
Warum?
SAS an Stellen, die nie zuvor ein SAS gesehen haben 
• Viel mehr Datentypen
• Moderne Programmmiertechniken und -strukturen
• Gültigkeitsbereiche von Variablen
• Packages
• Methods
• Threads
•
C op yr i g h t © 2 0 1 4 , S A S I n s t i t u t e I n c . A l l r i g h t s r es er v e d .
[email protected] ZUSÄTZLICHE INFORMATIONEN
•
DS2 and FedSQL
• SAS 9.4 DS2 Language Reference, Second Edition
PDF (24.47MB) | HTML
• SAS 9.4 FedSQL Language Reference, Second Edition
PDF (13.13MB) | HTML
C op yr i g h t © 2 0 1 4 , S A S I n s t i t u t e I n c . A l l r i g h t s r es er v e d .
FRAGE (MEHRFACHAUSWAHL MÖGLICH)
FRAGE
Mögliche
Antworten
C op yr i g h t © 2 0 1 4 , S A S I n s t i t u t e I n c . A l l r i g h t s r es er v e d .
Welche Eigenschaft des DS2 ist für Sie am
spannendsten?
a.Wiederverwendbarkeit des Codes durch Packages
b.Verteilte Verarbeitung mit Threads
c. Gleiche Datentypen wie in der Datenbank
d.Ausführung von Programmen mit dem SAS In-Database
Code Accelerator
FRAGEN?
C op yr i g h t © 2 0 1 4 , S A S I n s t i t u t e I n c . A l l r i g h t s r es er v e d .
[email protected] VIELEN DANK FÜR IHRE TEILNAHME
Interesse an weiterem Austausch?
•
Diskutieren Sie mit uns in der XING-Gruppe
Business Analytics mit SAS
•
Sprechen Sie uns direkt an:
[email protected]
•
Advanced Analytics Course Series 2015:
•
September – Oktober 2015
•
International bekannte Referenten
•
spannende Kurse zu Data Mining und Text Mining,
SAS Visual Analytics und SAS Visual Statistics,
Forecasting und Fraud Detection
C op yr i g h t © 2 0 1 4 , S A S I n s t i t u t e I n c . A l l r i g h t s r es er v e d .
[email protected] WEITERE INFORMATIONEN UND KURSE ZU DIESEM THEMA…
•
Wissen kompakt: SAS® Programmierung mit dem Data Step 2
11.09.15
02.12.15
•
Köln
Heidelberg
SAS® Programmierung mit dem Data Step 2 für Hadoop
C op yr i g h t © 2 0 1 4 , S A S I n s t i t u t e I n c . A l l r i g h t s r es er v e d .
NÄCHSTES [email protected]:
WHAT‘S NEW IM SAS ENTERPRISE GUIDE 7.11
22. SEPTEMBER 2015
C op yr i g h t © 2 0 1 4 , S A S I n s t i t u t e I n c . A l l r i g h t s r es er v e d .
FOLIEN ZUM DOWNLOAD UNTER
WWW.SAS.DE/LUNCHTIME
WIE HAT IHNEN UNSER WEBINAR GEFALLEN?
C op yr i g h t © 2 0 1 4 , S A S I n s t i t u t e I n c . A l l r i g h t s r es er v e d .
www.SAS.com
Herunterladen