table alterTable

Bereinigung von Sensor-Rohdaten und Test der Fehlerbehandlung

Scénario de test & Cas d'usage

Geschäftskontext

IoT-Sensordaten werden in CAS aufgenommen. Die Tabelle enthält inkonsistente Spaltennamen und eine vollständig leere Spalte, die entfernt werden muss. Das Ziel ist es, einen Standard anzuwenden und gleichzeitig zu überprüfen, ob die Aktion korrekt fehlschlägt, wenn versucht wird, eine nicht existierende Spalte zu ändern.
Über das Set : table

Laden, Speichern und Verwalten von Tabellen im Arbeitsspeicher.

Entdecken Sie alle Aktionen von table
Datenaufbereitung

Erstellt eine Tabelle 'SENSOR_ROHDATEN' mit inkonsistenten Namen und einer Spalte ('UNUSED_FLAG'), die nur fehlende Werte enthält, um einen Grenzfall zu testen.

Kopiert!
1DATA casuser.SENSOR_ROHDATEN;
2 LENGTH device_id $ 12;
3 INPUT device_id $ ts temp_celsius humidity_pct UNUSED_FLAG;
4 DATALINES;
5SENSOR_A_01 1672531200 22.5 45 .
6SENSOR_A_02 1672531260 22.6 45.1 .
7SENSOR_B_01 1672531320 -5.0 88 .
8;
9RUN;

Étapes de réalisation

1
Laden der Sensordaten in CAS.
Kopiert!
1PROC CAS;
2 TABLE.loadTable /
3 caslib='CASUSER'
4 path='SENSOR_ROHDATEN.sashdat'
5 casOut={name='sensor_input', replace=true};
6RUN;
2
Erfolgreiche Bereinigung: Umbenennung von Spalten und Entfernen der leeren Spalte 'UNUSED_FLAG'.
Kopiert!
1PROC CAS;
2 TABLE.alterTable /
3 name='sensor_input'
4 columns={
5 {name='device_id', rename='SensorID'},
6 {name='ts', rename='Zeitstempel', label='UNIX-Zeitstempel'},
7 {name='UNUSED_FLAG', drop=true}
8 };
9RUN;
10 
11 TABLE.columnInfo / TABLE='sensor_input';
12RUN; QUIT;
3
Fehlgeschlagener Versuch: Versuch, eine nicht existierende Spalte ('NON_EXISTENT_COL') zu ändern, um die Fehlerbehandlung der Aktion zu validieren.
Kopiert!
1PROC CAS;
2 TABLE.alterTable /
3 name='sensor_input'
4 columns={{name='NON_EXISTENT_COL', label='Dieser Test wird fehlschlagen'}};
5RUN; QUIT;

Erwartetes Ergebnis


Der erste `alterTable`-Aufruf (Schritt 2) wird erfolgreich ausgeführt. Die Tabelle 'sensor_input' hat nun die Spalten 'SensorID' und 'Zeitstempel', und die Spalte 'UNUSED_FLAG' ist nicht mehr vorhanden. Der zweite `alterTable`-Aufruf (Schritt 3) schlägt erwartungsgemäß fehl. Das SAS-Log sollte einen Fehler anzeigen, der besagt, dass die Spalte 'NON_EXISTENT_COL' in der Tabelle nicht gefunden werden konnte. Dies bestätigt, dass die Aktion ungültige Spaltennamen korrekt abfängt und die Tabellenintegrität nicht beeinträchtigt.