Veröffentlicht am :
ETL CREATION_INTERNE

VARCHAR-Datenverwaltung in CAS

Dieser Code ist auch verfügbar auf: English Español Français
Wartet auf Validierung
Attention : Dieser Code erfordert Administratorrechte.
Das Skript initialisiert eine CAS-Sitzung und konfiguriert die CASLIBs. Anschließend erstellt es eine temporäre SAS©-Tabelle (`saswork_table_with_char300`) mit Zeichenvariablen von 300, 15 und 16 Byte Länge. Nach der Untersuchung ihrer Struktur über PROC CONTENTS wird ein CASLIB `sas©7bdat` so manipuliert, dass es auf das SAS© `WORK`-Verzeichnis verweist. Schließlich lädt es die erstellte Tabelle mit `PROC CASUTIL` und der Option `varcharconversion=16` in CAS, um die Zeichenvariablen zu verwalten, und zeigt dann die Spalteninformationen der geladenen Tabelle in CAS an. Die CASLIB-Operationen (`_all_ assign`, `dropCaslib`, `addcaslib`) sind Verwaltungsaktionen.
Datenanalyse

Type : CREATION_INTERNE


Die Tabelle `saswork_table_with_char300` wird direkt im Skript über einen DATA-Step mit impliziten `datalines` erstellt.

1 Codeblock
CAS Session Management
Erklärung :
Dieser Block initialisiert eine CAS-Sitzung, weist der Sitzung alle verfügbaren CASLIBs zu und definiert eine Makrovariable `workpath`, die den Pfad zum SAS WORK-Verzeichnis enthält. Dies ist für die Datenverwaltung zwischen SAS und CAS unerlässlich. Die Zuweisung von `caslib _all_` ist eine Verwaltungsaktion.
Kopiert!
1/*
2Copyright © 2021, SAS Institute Inc., Cary, NC, USA. All Rights Reserved.
3SPDX-License-Identifier: Apache-2.0
4*/
5/* cas casauto terminate; */
6cas;
7caslib _all_ assign;
8 
9/* WORKPATH contains the path to SASWORK */
10%let workpath = %sysfunc(quote(%sysfunc(pathname(work)))) ;
11%put &workpath;
2 Codeblock
DATA STEP Data
Erklärung :
Dieser DATA-Schritt erstellt die temporäre Tabelle `saswork_table_with_char300` in der WORK-Bibliothek. Er definiert drei Zeichenvariablen (`a`, `b`, `c`) mit anfänglichen Längen von 300, 15 und 16 Byte und fügt dann drei Beobachtungen ein. Diese Tabelle wird verwendet, um die VARCHAR-Konvertierung in CAS zu demonstrieren.
Kopiert!
1DATA saswork_table_with_char300;
2 LENGTH a $ 300 b $ 15 c $ 16;
3 a='a300'; b='b15' ; c='c16' ;
4 OUTPUT;
5 a='a300300'; b='b151515'; c='c161616';
6 OUTPUT;
7 c='c161616161616161';
8 b='b15151515151515';
9 a="a300qzwsxedcrfvtgbyhnujmiklopqazwsxedcrfvtgbyhnujmikolp1234567890123456789012345678901234567890";
10 OUTPUT;
11RUN;
3 Codeblock
PROC CONTENTS
Erklärung :
Diese Prozedur zeigt die Metadaten der Tabelle `saswork_table_with_char300` an, einschließlich Variablennamen, Typen und Längen. Dies ermöglicht die Überprüfung der Struktur der SAS-Tabelle vor der Übertragung an CAS und die Bestätigung der Längen der Zeichenvariablen.
Kopiert!
1 
2PROC CONTENTS
3DATA=saswork_table_with_char300;
4title "Contents of WORK.SASWORK_TABLE_WITH_CHAR300";
5RUN;
6 
4 Codeblock
PROC CAS (CASLIB Management)
Erklärung :
Dieser Block verwendet `PROC CAS`, um ein CASLIB namens `sas7bdat` zu verwalten. Er versucht zunächst, dieses CASLIB zu löschen, falls es bereits existiert (`dropCaslib`), und erstellt es dann neu (`addcaslib`), wobei es auf den Pfad des SAS WORK-Verzeichnisses (`&workpath`) verweist. Dieser Schritt ist notwendig, damit CAS auf die im WORK-Verzeichnis gespeicherten SAS-Dateien zugreifen kann. Die direkte Manipulation von CASLIBs ist eine Verwaltungsaktion.
Kopiert!
1PROC CAS;
2 file log;
3 TABLE.dropCaslib /
4 caslib='sas7bdat' quiet = true;
5 RUN;
6 addcaslib /
7 datasource={srctype="path"}
8 name="sas7bdat"
9 path=&workpath ;
10 RUN;
5 Codeblock
PROC CASUTIL Data
Erklärung :
Diese Prozedur lädt die Tabelle `saswork_table_with_char300` (die auf der Festplatte im WORK-Verzeichnis als `saswork_table_with_char300.sas7bdat` gespeichert ist) in den CAS-Server unter dem Namen `cas_table_with_varchar` im CASLIB `casuser`. Die Option `varcharconversion=16` ist hier entscheidend: Sie zwingt SAS-Zeichenvariablen, deren Länge größer als 16 Byte ist, in den VARCHAR-Typ in CAS konvertiert zu werden, was eine effizientere Speicherung von Zeichenketten variabler Länge ermöglicht und die Speichernutzung in CAS optimiert.
Kopiert!
1PROC CASUTIL;
2 load casdata="saswork_table_with_char300.sas7bdat"
3 casout="cas_table_with_varchar"
4 outcaslib="casuser"
5 importoptions=(filetype="basesas", dtm="auto", debug="dmsglvli", varcharconversion=16) ;
6RUN;
7QUIT;
8 
9title;
6 Codeblock
PROC CAS (Table Inspection)
Erklärung :
Dieser letzte Block verwendet `PROC CAS`, um die Sitzungsoptionen für das CASLIB `casuser` festzulegen, und ruft dann die CAS-Aktion `table.columninfo` auf, um die detaillierten Metadaten der Spalten der CAS-Tabelle `cas_table_with_varchar` anzuzeigen. Dies ermöglicht die Überprüfung, wie die Zeichenvariablen nach der VARCHAR-Konvertierung behandelt wurden, insbesondere um zu bestätigen, dass die Variablen 'a' und 'c' in VARCHAR konvertiert wurden.
Kopiert!
1PROC CAS;
2 sessionProp.setSessOpt /
3 caslib="casuser";
4RUN;
5 TABLE.columninfo / TABLE="cas_table_with_varchar";
6QUIT;
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 © 2021, SAS Institute Inc., Cary, NC, USA. All Rights Reserved. SPDX-License-Identifier: Apache-2.0