Veröffentlicht am :

Verwendung von SAS-Engines zur Verarbeitung externer Daten

Dieser Code ist auch verfügbar auf: English Español Français
Wartet auf Validierung
Detaillierte Funktionsanalyse verschiedener Ansätze für den Import und Export externer Daten. Es behandelt die Verwendung von PROC IMPORT für CSV- und Excel-Dateien, die Erstellung von Tabellen in einem DBMS über einen DATA-Schritt, die Integration von LIBNAME-Anweisungen in PROC SQL-Views, die Nutzung der SQL Pass-Through-Funktion sowie den Import von XML- und JSON-Daten mithilfe der XMLV2- bzw. JSON-Engines. Jedes Beispiel ist eigenständig konzipiert und bietet die Mittel zum Erwerb oder zur Erstellung der erforderlichen Daten.
Datenanalyse

Type : GEMISCHT


Die Beispiele verwenden externe Daten (CSV, Excel, XML, JSON), deren Erfassung erläutert wird, oder intern erstellte Daten (Datalines) für DBMS-Demonstrationen.

1 Codeblock
PROC HTTP / PROC IMPORT
Erklärung :
Dieses Beispiel verwendet die FILENAME-Anweisung, um der Fileref 'chol' eine temporäre Datei zuzuweisen. Die HTTP-Prozedur wird anschließend verwendet, um eine CSV-Datei von einer angegebenen URL herunterzuladen und unter der Fileref 'chol' zu speichern. Die IMPORT-Prozedur liest die CSV-Daten und erstellt den SAS-Datensatz 'work.mycholesterol'. Schließlich zeigt PROC PRINT den Inhalt des Datensatzes an, um den Import zu überprüfen.
Kopiert!
1filename chol temp;
2PROC HTTP
3 url="http://support.sas.com/documentation/onlinedoc/viya/exampledatasets/cholesterol.csv"
4 out=chol;
5QUIT;
6PROC IMPORT datafile=chol
7 out=work.mycholesterol
8 dbms=csv
9 replace;
10RUN;
11PROC PRINT DATA=work.mycholesterol;
12RUN;
2 Codeblock
PROC IMPORT
Erklärung :
Dieses Beispiel importiert Daten aus einer Microsoft Excel-Datei (.xlsx) unter Verwendung der IMPORT-Prozedur und der XLSX-Engine. Damit dieses Beispiel eigenständig ist, müssen Sie zuerst eine Excel-Datei namens 'cholesterol.xlsx' erstellen (z. B. durch Speichern der Datei 'cholesterol.csv' aus dem vorherigen Beispiel im .xlsx-Format). Die Option 'VALIDVARNAME=V7' wird verwendet, um Excel-Spaltennamen in gültige SAS-Variablennamen umzuwandeln (Ersetzen von Leerzeichen durch Unterstriche). Die XLSX-Engine erfordert, dass die SAS/ACCESS to PC Files-Schnittstelle konfiguriert ist. Die Option REPLACE ermöglicht das Ersetzen eines vorhandenen SAS-Datensatzes.
Kopiert!
1options validvarname=v7;
2PROC IMPORT datafile='cholesterol.xlsx'
3 dbms=xlsx
4 out=work.mycholesterol
5 replace;
6RUN;
3 Codeblock
LIBNAME / DATA STEP Data
Erklärung :
Dieses Beispiel zeigt, wie eine Tabelle direkt in einem externen Datenbankverwaltungssystem (DBMS), hier Teradata, erstellt wird. Die LIBNAME-Anweisung 'mytddata' wird definiert, um eine Verbindung zum Teradata-Server herzustellen, einschließlich der Anmeldeinformationen. Ein DATA-Schritt wird dann verwendet, um eine Tabelle namens 'grades' in diesem DBMS unter Verwendung von 'Datalines' zur Bereitstellung der Daten zu erstellen. Die DATASETS-Prozedur wird verwendet, um die Informationen der Bibliothek 'mytddata' anzuzeigen und zu bestätigen, dass die Tabelle im DBMS erstellt wurde.
Kopiert!
1LIBNAME mytddata teradata server=mytera user=myid password=mypw;
2DATA mytddata.grades;
3 INPUT student $ test1 test2 final;
4 DATALINES;
5Fred 66 80 70
6Wilma 97 91 98
7;
8PROC DATASETS library=mytddata;
9RUN;
10QUIT;
4 Codeblock
PROC SQL
Erklärung :
Dieses Beispiel veranschaulicht die Erstellung einer SAS-Ansicht (mygrades in der Bibliothek viewlib), die eine LIBNAME-Anweisung für eine Verbindung zu einer Teradata-Datenbank integriert. Die Libref 'viewlib' wird dem Speicherort zugewiesen, an dem die SAS-Ansicht gespeichert wird, unter Verwendung der V9-Engine. Die 'USING'-Klausel der 'CREATE VIEW'-Anweisung ermöglicht die Einbettung der DBMS-Verbindungsdetails, wodurch die Ansicht für den Zugriff auf die Tabelle 'mytddata.grades' autark wird. Schließlich führt PROC PRINT diese Ansicht aus und zeigt ihren Inhalt an.
Kopiert!
1LIBNAME viewlib v9 'library-path';
2PROC SQL;
3 create view viewlib.mygrades as
4 select *
5 from mytddata.grades
6 using LIBNAME mytddata teradata
7 server=mytera
8 user=myid password=mypw;
9QUIT;
10PROC PRINT DATA=viewlib.mygrades noobs;
11RUN;
5 Codeblock
PROC SQL
Erklärung :
Dieses Beispiel verwendet die SQL Pass-Through-Funktion innerhalb von PROC SQL, um SQL-Abfragen direkt an eine externe Datenbank (Teradata) zu senden. Die 'CONNECT TO'-Anweisung stellt eine benannte Verbindung 'myconn' zum Teradata-Server mit den angegebenen Anmeldeinformationen her. Anschließend ermöglicht eine Klausel 'SELECT * FROM CONNECTION TO myconn (...)' die direkte Ausführung einer nativen SQL-Abfrage (Filtern der 'grades' mit 'final gt 90') auf dem DBMS. Die 'DISCONNECT FROM'-Anweisung wird verwendet, um die Verbindung zur Datenbank nach Ausführung der Abfrage zu beenden.
Kopiert!
1PROC SQL;
2 connect to teradata as myconn (server=mytera
3 user=myid password=mypw);
4 select *
5 from connection to myconn
6 (select *
7 from grades
8 where final gt 90);
9 disconnect from myconn;
10QUIT;
6 Codeblock
LIBNAME / PROC PRINT
Erklärung :
Dieses Beispiel importiert Daten aus einer XML-Datei unter Verwendung der XMLV2-Engine. Um dieses Beispiel eigenständig zu machen, erstellen Sie eine Datei namens 'nhl.xml' mit folgendem XML-Inhalt und ersetzen Sie 'file-path' durch den tatsächlichen Pfad:
```xml
<?xml version="1.0" encoding="iso-8859-1" ?>
<NHL>
<CONFERENCE> Eastern
<DIVISION> Southeast
<TEAM name="Thrashers" abbrev="ATL" />
<TEAM name="Hurricanes" abbrev="CAR" />
<TEAM name="Panthers" abbrev="FLA" />
<TEAM name="Lightning" abbrev="TB" />
<TEAM name="Capitals" abbrev="WSH" />
</DIVISION>
</CONFERENCE>

<CONFERENCE> Western
<DIVISION> Pacific
<TEAM name="Stars" abbrev="DAL" />
<TEAM name="Kings" abbrev="LA" />
<TEAM name="Ducks" abbrev="ANA" />
<TEAM name="Coyotes" abbrev="PHX" />
<TEAM name="Sharks" abbrev="SJ" />
</DIVISION>
</CONFERENCE>
</NHL>
```
Die FILENAME-Anweisung weist der Fileref 'nhl' die XML-Datei zu. Eine zweite FILENAME-Anweisung weist der Fileref 'map' eine Datei zu, die die generierte XMLMap speichern wird. Die LIBNAME-Anweisung, zusammen mit der XMLV2-Engine und den Optionen 'AUTOMAP=REPLACE' und 'XMLMAP=map', liest die XML-Datei und generiert eine XMLMap. PROC PRINT zeigt anschließend die Variablen 'TEAM_name' und 'TEAM_abbrev' des in memory erstellten Datensatzes 'nhl.team' an.
Kopiert!
1filename nhl 'file-path/nhl.xml';
2filename map 'file-path/nhlgenerate.map';
3LIBNAME nhl xmlv2 automap=replace xmlmap=map;
4PROC PRINT DATA=nhl.team noobs;
5 var TEAM_name TEAM_abbrev;
6RUN;
7 Codeblock
LIBNAME / PROC DATASETS
Erklärung :
Dieses Beispiel importiert JSON-Daten unter Verwendung der JSON-Engine. Um dieses Beispiel eigenständig zu machen, erstellen Sie eine Datei namens 'example.json' mit gültigem JSON-Inhalt (z. B. ein einfaches JSON-Objekt mit einigen Feldern und Werten) und ersetzen Sie 'file-path' durch den tatsächlichen Pfad. Die LIBNAME-Anweisung 'mydata' wird der JSON-Engine zugewiesen und verweist auf die Datei 'example.json'. Die DATASETS-Prozedur wird anschließend verwendet, um die aus dieser JSON-Datei in memory erstellten SAS-Datensätze aufzulisten und so den Import zu überprüfen.
Kopiert!
1LIBNAME mydata json '/file-path/example.json';
2PROC DATASETS lib=mydata;
3RUN;
4QUIT;
Dieses Material wird von We Are Cas "wie besehen" zur Verfügung gestellt. Es gibt keine ausdrücklichen oder stillschweigenden Garantien hinsichtlich der Marktgängigkeit oder Eignung für einen bestimmten Zweck in Bezug auf die hierin enthaltenen Materialien oder Codes. We Are Cas ist nicht verantwortlich für Fehler in diesem Material, wie es jetzt existiert oder existieren wird, noch bietet We Are Cas technischen Support dafür an.
Urheberrechtsinformationen : Copyright © SAS Institute Inc. All Rights Reserved. Last updated: December 16, 2025