?>
Die Aktion `alterTable` im `table` Action Set ist ein vielseitiges Werkzeug zur Verwaltung von In-Memory-Tabellen in SAS Viya. Sie ermöglicht es Benutzern, Metadaten und die Struktur einer vorhandenen CAS-Tabelle zu ändern, ohne die Daten neu laden zu müssen. Zu den Hauptfunktionen gehören das Umbenennen von Tabellen, das Ändern von Tabellen- und Spaltenbezeichnungen, das Anwenden oder Ändern von Formaten für Spalten, das Löschen von Spalten und das Neuanordnen der Spaltenreihenfolge. Diese Aktion ist besonders nützlich für die Datenaufbereitung und -verwaltung direkt auf dem CAS-Server, was die Effizienz durch die Vermeidung unnötiger Datenverschiebungen verbessert.
| Parameter | Beschreibung |
|---|---|
| caslib | Gibt die Caslib für die Eingabetabelle an, die Sie mit der Aktion verwenden möchten. Standardmäßig wird die aktive Caslib verwendet. Geben Sie nur dann einen Wert an, wenn Sie auf eine Tabelle aus einer anderen Caslib zugreifen müssen. |
| columnOrder | Gibt die Reihenfolge der Spalten in den Tabellenmetadaten an. |
| columns | Gibt an, wie Spalten geändert werden sollen. Nachdem Sie den Spaltennamen angegeben haben, können Sie eine Spalte löschen oder ein neues Format, eine neue Bezeichnung oder einen neuen Namen zuweisen. Spalten werden umbenannt, bevor die Parameter `drop`, `keep` oder `columnOrder` ausgewertet werden. |
| binaryType | Gibt den Binärtyp für die Spalte an. |
| drop (in columns) | Wenn auf TRUE gesetzt, wird die angegebene Spalte aus der Tabelle gelöscht. |
| format | Weist der Spalte ein neues Format zu. |
| label (in columns) | Weist der Spalte eine neue Bezeichnung zu. |
| name (in columns) | Gibt den Namen der zu ändernden Spalte an. |
| newType | Ändert den Datentyp der Spalte in VARBINARY oder VARCHAR. |
| rename (in columns) | Gibt einen neuen Namen für die Spalte an. |
| drop | Eine Liste von Spalten, die aus der Tabelle gelöscht werden sollen. |
| keep | Eine Liste von Spalten, die in der Tabelle beibehalten werden sollen; alle anderen werden gelöscht. |
| label | Gibt eine neue Bezeichnung für die Tabelle an. |
| lifetime | Gibt die Anzahl der Sekunden an, die die Tabelle im Speicher verbleibt, nachdem zuletzt darauf zugegriffen wurde. Die Tabelle wird gelöscht, wenn für die angegebene Anzahl von Sekunden kein Zugriff erfolgt. |
| name | Gibt den Namen der zu ändernden Tabelle an. |
| rename | Gibt einen neuen Namen für die Tabelle an. |
| tableRedistUpPolicy | Gibt die Richtlinie zur Tabellenumverteilung an, wenn die Anzahl der Worker-Pods auf einem laufenden CAS-Server zunimmt. |
Dieser Code erstellt eine Tabelle namens 'CARS_MODIFIABLE' in der Caslib 'CASUSER', die in den folgenden Beispielen verwendet wird. Diese Tabelle ist eine Kopie der Tabelle 'CARS' aus der Bibliothek 'SASHELP' und enthält verschiedene Spalten, die umbenannt, deren Formate geändert oder die gelöscht werden können.
proc cas; dataStep.runCode / code='data casuser.CARS_MODIFIABLE; set sashelp.cars; run;'; run; quit;
Dieses Beispiel benennt die Tabelle 'CARS_MODIFIABLE' in 'CARS_RENAMED' um.
| 1 | PROC CAS; TABLE.alterTable / caslib='casuser' name='CARS_MODIFIABLE' rename='CARS_RENAMED'; RUN; QUIT; |
Dieses Beispiel fügt der Tabelle 'CARS_RENAMED' die Bezeichnung 'Geänderte Fahrzeugdaten' hinzu.
| 1 | PROC CAS; TABLE.alterTable / caslib='casuser' name='CARS_RENAMED' label='Geänderte Fahrzeugdaten'; RUN; QUIT; |
Dieses Beispiel verwendet den Parameter `drop`, um die Spalte 'EngineSize' aus der Tabelle zu entfernen.
| 1 | PROC CAS; TABLE.alterTable / caslib='casuser' name='CARS_RENAMED' drop={'EngineSize'}; RUN; QUIT; |
Dieses Beispiel führt mehrere Änderungen an der Tabelle 'CARS_RENAMED' durch: Die Spalte 'Cylinders' wird gelöscht, die Spalte 'MSRP' wird in 'Listenpreis' umbenannt und erhält ein Dollar-Format, und die Spalte 'Invoice' erhält eine neue Bezeichnung.
| 1 | PROC CAS; TABLE.alterTable / caslib='casuser' name='CARS_RENAMED' columns={{name='Cylinders', drop=true}, {name='MSRP', rename='Listenpreis', FORMAT='DOLLAR12.2'}, {name='Invoice', label='Rechnungsbetrag'}}; RUN; QUIT; |
Dieses Beispiel ordnet die Spalten neu an, um 'Make', 'Model' und 'Type' an den Anfang zu stellen, und löscht gleichzeitig die Spalten 'Horsepower' und 'Weight' mithilfe des `drop`-Parameters.
| 1 | PROC CAS; TABLE.alterTable / caslib='casuser' name='CARS_RENAMED' drop={'Horsepower', 'Weight'} columnOrder={'Make', 'Model', 'Type'}; RUN; QUIT; |