table alterTable

Optimierung einer großen Transaktionstabelle für die Risikoanalyse

Scénario de test & Cas d'usage

Geschäftskontext

Eine Risikoabteilung arbeitet mit einer sehr breiten Tabelle von Finanztransaktionen. Um die Leistung nachfolgender Analyseschritte zu verbessern, müssen viele unnötige Spalten schnell entfernt, Schlüsselspalten für einen einfacheren Zugriff nach vorne sortiert und eine Sitzungslebensdauer für diese temporäre, optimierte Tabelle festgelegt werden.
Über das Set : table

Laden, Speichern und Verwalten von Tabellen im Arbeitsspeicher.

Entdecken Sie alle Aktionen von table
Datenaufbereitung

Erstellt eine große und breite Tabelle 'TRANSAKTIONEN_VOLL' mit 1 Million Zeilen und vielen Füllspalten, um ein Performance-Szenario zu simulieren.

Kopiert!
1DATA casuser.TRANSAKTIONEN_VOLL;
2 array fillers{45} filler1-filler45;
3 DO i = 1 to 1000000;
4 TransID = uuidgen();
5 Zeitstempel = datetime();
6 Betrag = rand('UNIFORM') * 10000;
7 STATUS = ceil(rand('UNIFORM') * 3);
8 DO j = 1 to 45;
9 fillers{j} = rand('NORMAL');
10 END;
11 OUTPUT;
12 END;
13 keep TransID Zeitstempel Betrag STATUS filler:;
14RUN;

Étapes de réalisation

1
Laden der großen Tabelle in CAS.
Kopiert!
1PROC CAS;
2 TABLE.loadTable /
3 caslib='CASUSER'
4 path='TRANSAKTIONEN_VOLL.sashdat'
5 casOut={name='transaktionen_breit', replace=true};
6RUN;
2
Verwendung von `keep`, `columnOrder` und `lifetime` zur drastischen Reduzierung und Optimierung der Tabelle.
Kopiert!
1PROC CAS;
2 TABLE.alterTable /
3 name='transaktionen_breit'
4 rename='RISIKO_ANALYSE_TEMP'
5 keep={'TransID', 'Zeitstempel', 'Betrag', 'Status'}
6 columnOrder={'TransID', 'Zeitstempel', 'Betrag', 'Status'}
7 lifetime=600;
8RUN;
9 
10 TABLE.tableInfo / caslib='casuser', name='RISIKO_ANALYSE_TEMP';
11 TABLE.columnInfo / TABLE='RISIKO_ANALYSE_TEMP';
12RUN; QUIT;

Erwartetes Ergebnis


Eine neue, viel schlankere Tabelle 'RISIKO_ANALYSE_TEMP' wird erstellt. Sie enthält nur die vier im `keep`-Parameter angegebenen Spalten. Die Spaltenreihenfolge entspricht der in `columnOrder` festgelegten. Die Metadaten der Tabelle zeigen eine 'lifetime' von 600 Sekunden an, was bedeutet, dass sie 10 Minuten nach dem letzten Zugriff automatisch aus dem Speicher entfernt wird, um Ressourcen freizugeben.