Veröffentlicht am :
Datenverwaltung CREATION_INTERNE

Tabellendetails (tableDetails-Aktion)

Dieser Code ist auch verfügbar auf: English Español Français
Wartet auf Validierung
Diese Funktionalität ist entscheidend für die Überwachung und Optimierung der Leistung von In-Memory-Tabellen in einer SAS© Viya-Umgebung. Sie bietet einen Überblick über die interne Struktur und den Speicherverbrauch einer CAS-Tabelle. Die Parameter ermöglichen die Steuerung des Detaillierungsgrads der Informationen (Zusammenfassung, pro Knoten oder pro Partition) und die Einbeziehung von Details zur Speichernutzung. Es ist möglich, die CAS-Bibliothek (Caslib) anzugeben, in der sich die Tabelle befindet, und die Menge der pro Knoten zurückgegebenen Informationen für sehr große verteilte Tabellen zu begrenzen, was besonders nützlich für Administratoren und Entwickler ist, um den Zustand der Daten im Speicher zu verstehen.
Datenanalyse

Type : CREATION_INTERNE


Die Beispiele verwenden CAS-Tabellen, die direkt über DATA-Steps oder 'loadTable'-Aktionen erstellt wurden, um die Funktionalität ohne externe Abhängigkeit zu veranschaulichen.

1 Codeblock
PROC CAS Data
Erklärung :
Dieses Beispiel zeigt die einfachste Verwendung der Aktion 'tableDetails'. Es erstellt zunächst eine kleine Tabelle namens 'simple_data' in der Caslib 'casuser' und verwendet dann die Aktion, um zusammenfassende Informationen zu dieser Tabelle anzuzeigen, wie z. B. die Anzahl der Zeilen und Spalten. Standardmäßig ist die Aggregationsebene 'SUM' und Speicherinformationen sind enthalten.
Kopiert!
1PROC CAS;
2 /* Crée une table simple en mémoire dans la caslib 'casuser' */
3 DATA casuser.simple_data;
4 INPUT id name $;
5 DATALINES;
61 Alice
72 Bob
83 Charlie
9;
10 RUN;
11 
12 /* Obtient les détails de base pour la table 'simple_data' */
13 TABLE.tableDetails / name="simple_data";
14QUIT;
2 Codeblock
PROC CAS Data
Erklärung :
Dieser Fall zeigt, wie der Parameter 'caslib' verwendet wird, um eine bestimmte Tabelle anzusprechen, wenn sie sich nicht in der aktiven Caslib befindet. Eine 'product_info'-Tabelle wird erstellt, und ihre Details werden durch Angabe von 'casuser' als Caslib abgerufen. Es veranschaulicht auch die Verwendung des Alias 'table' für den Parameter 'name'.
Kopiert!
1PROC CAS;
2 /* Crée une table 'product_info' dans la caslib 'casuser' */
3 DATA casuser.product_info;
4 INPUT product $ price;
5 DATALINES;
6Apple 1.00
7Banana 0.50
8Orange 0.75
9Mango 2.20
10;
11 RUN;
12 
13 /* Obtient les détails pour 'product_info' en spécifiant explicitement la caslib. */
14 /* Utilisation de l'alias 'table' pour le paramètre 'name'. */
15 TABLE.tableDetails /
16 TABLE="product_info",
17 caslib="casuser";
18QUIT;
3 Codeblock
PROC CAS Data
Erklärung :
Dieses Beispiel verwendet eine größere Tabelle ('large_transactions'), um das Abrufen von Details auf der Ebene jedes Knotens des CAS-Clusters ('level="NODE"') zu veranschaulichen. Es schließt auch detaillierte Informationen zur Speichernutzung ('showMem=FALSE') für eine prägnantere Ausgabe aus, was für große verteilte Tabellen nützlich ist.
Kopiert!
1PROC CAS;
2 /* Crée une table plus grande pour simuler la distribution sur plusieurs nœuds */
3 DATA casuser.large_transactions;
4 DO i = 1 to 10000;
5 region = IF mod(i, 4) = 0 THEN 'North'
6 ELSE IF mod(i, 4) = 1 THEN 'South'
7 ELSE IF mod(i, 4) = 2 THEN 'East'
8 ELSE 'West';
9 amount = 100 + ranuni(0) * 1000;
10 OUTPUT;
11 END;
12 RUN;
13 
14 /* Obtient les détails par nœud sans inclure les informations mémoire */
15 TABLE.tableDetails /
16 name="large_transactions",
17 caslib="casuser",
18 level="NODE",
19 showMem=FALSE;
20QUIT;
4 Codeblock
PROC CAS / table.partition Data
Erklärung :
Dieses fortgeschrittene Beispiel zeigt, wie Details für eine partitionierte Tabelle abgerufen werden. Es erstellt und partitioniert eine Tabelle 'raw_sales' nach der Variablen 'Region' mithilfe der Aktion 'table.partition'. Anschließend verwendet es 'tableDetails' mit 'level="PARTITION"', um Informationen für jede Partition anzuzeigen. Der Parameter 'perNode=2' wird verwendet, um die Menge der pro Knoten gemeldeten Details zu begrenzen, was nützlich ist, um die Größe der Ausgabe bei sehr verteilten Tabellen zu steuern.
Kopiert!
1PROC CAS;
2 /* Crée une table avec des données à partitionner */
3 DATA casuser.raw_sales;
4 INPUT Date:yymmdd. Region $ Sales;
5 FORMAT Date yymmdd10.;
6 DATALINES;
72023-01-01 North 100
82023-01-01 South 150
92023-01-02 East 120
102023-01-02 West 180
112023-01-03 North 110
122023-01-03 South 160
132023-01-04 East 130
142023-01-04 West 190
152023-01-05 North 200
162023-01-05 South 210
172023-01-06 East 220
182023-01-06 West 230
19;
20 RUN;
21 
22 /* Partitionne la table par la variable 'Region' */
23 TABLE.partition /
24 name="raw_sales",
25 caslib="casuser",
26 groupBy={"Region"},
27 casOut={name="partitioned_sales_by_region", caslib="casuser", replace=true};
28 
29 /* Obtient les détails par partition, en limitant la sortie à 2 blocs par nœud */
30 TABLE.tableDetails /
31 name="partitioned_sales_by_region",
32 caslib="casuser",
33 level="PARTITION",
34 perNode=2;
35QUIT;
Dieses Material wird von We Are Cas "wie besehen" zur Verfügung gestellt. Es gibt keine ausdrücklichen oder stillschweigenden Garantien hinsichtlich der Marktgängigkeit oder Eignung für einen bestimmten Zweck in Bezug auf die hierin enthaltenen Materialien oder Codes. We Are Cas ist nicht verantwortlich für Fehler in diesem Material, wie es jetzt existiert oder existieren wird, noch bietet We Are Cas technischen Support dafür an.