Fügt eine Tabelle hinzu, indem sie vom Client an den Server gesendet wird. Diese Aktion wird normalerweise nicht direkt aufgerufen, sondern über eine client-spezifische Funktion oder Methode (z. B. `add_table` in Python SWAT oder `as.cas.ctable` in R) genutzt, die den Datentransfer vom Client-Speicher zum CAS-Server kapselt. Sie ist grundlegend für die Erstellung von In-Memory-Tabellen aus lokalen Datenstrukturen wie Pandas DataFrames oder R Data Frames.
| Parameter | Beschreibung |
|---|---|
| append | Gibt an, ob Zeilen aus der Tabelle zu einer vorhandenen Tabelle hinzugefügt werden sollen. |
| caslib | Gibt die Ziel-Caslib für die Tabelle an. |
| columnar | Gibt an, ob die In-Memory-Tabelle im spaltenorientierten Format erstellt werden soll. |
| commitRecords | Gibt die Anzahl der Zeilen an, die der Server empfangen soll, bevor die Zeilen in die Tabelle geschrieben werden. |
| commitSeconds | Gibt die Anzahl der Sekunden an, die der Server Zeilen empfangen soll, bevor die Zeilen in die Tabelle geschrieben werden. |
| compress | Wenn auf True gesetzt, wird die Zieltabelle komprimiert. |
| copies | Gibt die Anzahl der redundanten Kopien für die Zeilen an. Höhere Werte bieten eine größere Fehlertoleranz bei Knotenausfällen, verbrauchen aber mehr Speicher. |
| descending | Gibt an, die Sortierreihenfolge für die angegebenen Variablen umzukehren, sodass die Ergebnisse vom größten zum kleinsten Wert sortiert werden. Sie müssen die Variablennamen im Parameter orderBy angeben. |
| label | Gibt die Beschriftung an, die der Variablen zugeordnet werden soll. |
| maxMBytes | Gibt die maximale Menge an physischem Speicher in Megabyte an, die für die Tabelle zugewiesen werden soll. Nach diesem Schwellenwert verwendet der Server temporäre Dateien und Betriebssystemfunktionen zur Speicherverwaltung. |
| memoryFormat | Gibt das Speicherformat für die Ausgabetabelle an. |
| orderBy | Gibt die Variablennamen an, die zur Sortierung der Zeilen innerhalb von Partitionen verwendet werden sollen. |
| partition | Gibt die Variablennamen an, die als Partitionierungsschlüssel verwendet werden sollen. Die Tabelle wird entsprechend den formatierten Werten der angegebenen Variablen partitioniert. |
| promote | Wenn auf True gesetzt, wird die Tabelle mit einem globalen Geltungsbereich hinzugefügt. Dies ermöglicht anderen Sitzungen den Zugriff auf die Tabelle, vorbehaltlich der Zugriffskontrollen. Die Ziel-Caslib muss ebenfalls einen globalen Geltungsbereich haben. |
| recLen | Gibt die Länge einer Zeile in Bytes an. Dieser Parameter ist erforderlich. |
| repeat | Wenn auf True gesetzt, werden die Zeilen der Tabelle auf jeder Maschine eines verteilten Servers dupliziert. Das Erstellen von Duplikatkopien von Tabellen kann in Fällen wie einer Dimensionstabelle, die in einem Join verwendet wird, nützlich sein. |
| replace | Wenn auf True gesetzt, wird eine vorhandene Tabelle mit demselben Namen überschrieben. |
| table | Gibt den Namen der Ausgabetabelle an. |
| vars | Gibt die Attribute für jede Variable an. Dies ist eine Liste von Wörterbüchern, wobei jedes Wörterbuch eine Variable beschreibt. |
Dieser SAS-Code erstellt eine lokale SAS-Tabelle namens 'CARS_DATA'. Diese Tabelle kann dann mit einer Client-Anwendung wie Python oder R in eine CAS-In-Memory-Tabelle hochgeladen werden, um die Funktionalität der `addTable`-Aktion zu demonstrieren. Beachten Sie, dass `addTable` selbst die Datenübertragung vom Client zum Server durchführt und keine Daten aus einer serverseitigen Quelle liest.
| 1 | DATA CARS_DATA; |
| 2 | LENGTH Make $ 8 Model $ 15; |
| 3 | INPUT Make Model Year; |
| 4 | DATALINES; |
| 5 | Ford Mustang 2022 |
| 6 | Toyota Camry 2023 |
| 7 | Honda Civic 2023 |
| 8 | Ford F-150 2021 |
| 9 | Chevrolet Silverado 2022 |
| 10 | ; |
| 11 | RUN; |
Dieses Beispiel zeigt den konzeptionellen Aufruf von `addTable` in CASL. In der Praxis wird diese Aktion nicht direkt so verwendet. Stattdessen würde ein Client wie Python die Methode `s.add_table(casout={'name':'CARS'}, table=my_pandas_dataframe)` verwenden, um ein lokales DataFrame in CAS hochzuladen. Der hier gezeigte Code veranschaulicht die Parameter, die der Server bei einem solchen Aufruf intern erhält.
| 1 | PROC CAS; |
| 2 | TABLE.addTable / |
| 3 | casOut={caslib="CASUSER", name="CARS", replace=true}, |
| 4 | recLen=31, |
| 5 | vars={ |
| 6 | {name="Make", offset=0, LENGTH=8, rType="CHAR", type="CHAR"}, |
| 7 | {name="Model", offset=8, LENGTH=15, rType="CHAR", type="CHAR"}, |
| 8 | {name="Year", offset=23, LENGTH=8, rType="NUMERIC", type="SAS"} |
| 9 | }; |
| 10 | RUN; |
Dieses Beispiel zeigt, wie man eine Tabelle hinzufügt, dabei eine bereits existierende Tabelle gleichen Namens ersetzt (`replace=true`) und sie für alle anderen CAS-Sitzungen verfügbar macht (`promote=true`). Dies ist nützlich, um Referenzdaten global zu teilen. Die Ziel-Caslib ('Public') muss ebenfalls einen globalen Geltungsbereich haben.
| 1 | PROC CAS; |
| 2 | TABLE.addTable / |
| 3 | casOut={caslib="Public", name="CARS_GLOBAL", replace=true, promote=true}, |
| 4 | recLen=31, |
| 5 | vars={ |
| 6 | {name="Make", offset=0, LENGTH=8, rType="CHAR", type="CHAR", label="Hersteller"}, |
| 7 | {name="Model", offset=8, LENGTH=15, rType="CHAR", type="CHAR", label="Modell"}, |
| 8 | {name="Year", offset=23, LENGTH=8, rType="NUMERIC", type="SAS", label="Jahr", FORMAT="BEST4."} |
| 9 | }; |
| 10 | RUN; |
Dieses Beispiel zeigt, wie man eine Tabelle hinzufügt, die nach der Spalte 'Make' partitioniert ist. Innerhalb jeder Partition werden die Daten absteigend nach 'Year' sortiert. Dies kann die Leistung bei nachfolgenden Abfragen, die diese Spalten verwenden, erheblich verbessern.
| 1 | PROC CAS; |
| 2 | TABLE.addTable / |
| 3 | casOut={caslib="CASUSER", name="CARS_PARTITIONED"}, |
| 4 | partition={"Make"}, |
| 5 | orderBy={name="Year", order="DESC"}, |
| 6 | recLen=31, |
| 7 | vars={ |
| 8 | {name="Make", offset=0, LENGTH=8, rType="CHAR", type="CHAR"}, |
| 9 | {name="Model", offset=8, LENGTH=15, rType="CHAR", type="CHAR"}, |
| 10 | {name="Year", offset=23, LENGTH=8, rType="NUMERIC", type="SAS"} |
| 11 | }; |
| 12 | RUN; |
Eine Marketingabteilung muss eine neu erstellte Kundensegmentierungsliste in die CAS-Umgebung hochladen. Diese Tabelle muss für andere Analysten und Data Scientists in verschied...
Ein Fertigungsunternehmen sammelt Millionen von Sensordatenpunkten von seinen Maschinen. Um eine schnelle Fehleranalyse und vorausschauende Wartung zu ermöglichen, müssen diese ...
Ein automatisierter Job soll täglich eine Snapshot-Tabelle laden. Um versehentliches Überschreiben von Daten zu verhindern, falls der Job fälschlicherweise zweimal ausgeführt wi...