Veröffentlicht am :
ETL CREATION_INTERNE

Verwaltung partitionierter Daten - Beispiel 1

Dieser Code ist auch verfügbar auf: English Español Français
Wartet auf Validierung
Das Programm beginnt damit, eine vorhandene Tabelle namens 'dpart' aus der Bibliothek 'mydblib' zu löschen, um eine saubere Umgebung zu gewährleisten. Anschließend wird eine neue Tabelle 'dpart' in 'mydblib' mithilfe eines DATA STEPs mit integrierten Daten über die DATALINES-Anweisung erstellt. Die Tabelle wird als nach der Spalte 'dates' partitioniert mit einem 'sequencefile'-Dateiformat angegeben. Schließlich wird eine PROC SQL verwendet, um die partitionierte Tabelle abzufragen, indem die Datensätze für ein bestimmtes Datum gefiltert werden, wodurch der Zugriff auf partitionierte Daten demonstriert wird.
Datenanalyse

Type : CREATION_INTERNE


Die zur Erstellung der Tabelle 'dpart' verwendeten Daten sind direkt über die DATALINES-Anweisung in das SAS-Skript integriert. Es gibt keine Abhängigkeit von externen Dateien oder bereits vorhandenen SAS-Tabellen, mit Ausnahme des Ziels 'mydblib', das eine externe Bibliothek ist, die potenziell mit Hadoop verbunden ist.

1 Codeblock
PROC DELETE
Erklärung :
Dieser Codeblock verwendet PROC DELETE, um die Tabelle 'dpart' aus der Bibliothek 'mydblib' zu löschen. Dies dient der Bereinigung der Umgebung, bevor die Tabelle neu erstellt wird, um Fehler aufgrund einer bereits vorhandenen Tabelle zu vermeiden. 'mydblib' wird als eine SAS/ACCESS-Bibliothek angenommen, die mit einer externen Datenquelle verbunden ist.
Kopiert!
1PROC DELETE DATA=mydblib.dpart; RUN;
2 Codeblock
DATA STEP Data
Erklärung :
Dieser DATA STEP ist für die Erstellung der Tabelle 'dpart' und deren Laden mit den angegebenen Daten verantwortlich. Die Option `post_table_opts` ist hier entscheidend: Sie wird an die externe Datenbank (wie Hadoop) übergeben, um anzuzeigen, dass die Tabelle mit einer Partitionierung nach der Spalte 'dates' erstellt und im 'sequencefile'-Format gespeichert werden soll. Die Anweisungen `input`, `informat`, `format` definieren die Struktur der Spalten und ihre Formate, während `datalines` die Werte der Datensätze liefert.
Kopiert!
1 DATA mydblib.dpart (post_table_opts ="partitioned by (dates date)
2 stored as sequencefile") ;
3 INPUT FLIGHT $3. +5 DATES date7. +2 ORIG $3. +3 DEST $3. +3
4 DELAYCAT $15. +2 DESTYPE $15. +8 DELAY;
5 informat DATES date7.;
6 FORMAT DATES date9.;
7 DATALINES;
8114 01MAR98 LGA LAX 1-10 Minutes Domestic 8
9202 01MAR98 LGA ORD No Delay Domestic -5
10219 01MAR98 LGA LON 11+ Minutes International 18
11114 02MAR98 LGA LAX No Delay Domestic 0
12202 02MAR98 LGA ORD 1-10 Minutes Domestic 5
13219 02MAR98 LGA LON 11+ Minutes International 18
14622 02MAR98 LGA FRA No Delay International 0
15114 03MAR98 LGA LAX No Delay Domestic -1
16202 03MAR98 LGA ORD No Delay Domestic -1
17219 03MAR98 LGA LON 1-10 Minutes International 4
18302 03MAR98 LGA WAS 1-10 Minutes Domestic 5
19;
3 Codeblock
PROC SQL
Erklärung :
Dieser Block verwendet PROC SQL, um die gerade erstellte Tabelle 'dpart' abzufragen. Die Klausel `WHERE dates = '01mar99'd` demonstriert, wie Daten mithilfe der partitionierten Spalte 'dates' gefiltert werden können. Das 'd' nach dem Datum kennzeichnet eine SAS-Datumskonstante. Ziel ist es zu zeigen, dass nur die dieser Partition entsprechenden Daten abgerufen werden, was zu '3 Zeilen' führt, wie im Titel angegeben.
Kopiert!
1title 'SHOULD SEE ONLY 3 ROWS';
2PROC SQL;
3 select flight from mydblib.dpart where dates = '01mar98'd;
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 : S A S S A M P L E L I B R A R Y