?>Array ( [lang] => de [id] => 71 )
Scénario de test & Cas d'usage
Simuliert eine Verzeichnisstruktur für IoT-Daten, die über mehrere Tage gesammelt wurden, und erstellt in jedem Unterverzeichnis eine CSV-Datei.
| 1 | DATA _null_; |
| 2 | rc = fileexist('/tmp/iot_data/day1'); IF rc=0 THEN rc=mkdir('/tmp/iot_data/day1'); |
| 3 | rc = fileexist('/tmp/iot_data/day2'); IF rc=0 THEN rc=mkdir('/tmp/iot_data/day2'); |
| 4 | RUN; |
| 5 | filename s1 temp '/tmp/iot_data/day1/sensors_day1.csv'; |
| 6 | DATA _null_; |
| 7 | file s1 dsd dlm=','; |
| 8 | put 'SensorID,Zeitstempel,Temperatur,Druck'; |
| 9 | DO i=1 to 50; put 'A' || i ',' datetime() ',' 80+ranuni(0) ',' 15+ranuni(0); END; |
| 10 | RUN; |
| 11 | filename s2 temp '/tmp/iot_data/day2/sensors_day2.csv'; |
| 12 | DATA _null_; |
| 13 | file s2 dsd dlm=','; |
| 14 | put 'SensorID,Zeitstempel,Temperatur,Druck'; |
| 15 | DO i=1 to 50; put 'B' || i ',' datetime() ',' 82+ranuni(0) ',' 14+ranuni(0); END; |
| 16 | RUN; |
| 1 | PROC CAS; |
| 2 | TABLE.addCaslib / |
| 3 | name='IoTSensorenGlobal', |
| 4 | path='/tmp/iot_data', |
| 5 | dataSource={srcType='PATH'}, |
| 6 | SESSION=false, |
| 7 | subDirectories=true, |
| 8 | description='Globale Caslib für IoT-Sensordaten'; |
| 9 | RUN; |
| 1 | PROC CAS; |
| 2 | TABLE.caslibInfo / caslib='IoTSensorenGlobal'; |
| 3 | RUN; |
| 1 | PROC CAS; |
| 2 | TABLE.fileInfo / caslib='IoTSensorenGlobal'; |
| 3 | RUN; |
| 4 | QUIT; |
Eine globale, persistente Caslib `IoTSensorenGlobal` wird erstellt. Sie bietet Zugriff auf alle Dateien im Hauptpfad `/tmp/iot_data` und allen seinen Unterverzeichnissen. Datenwissenschaftler aus verschiedenen Sitzungen können auf diese Caslib zugreifen, um den gesamten Sensordatenbestand zu analysieren.