Veröffentlicht am :
Administration CREATION_INTERNE

Dateien einer Caslib-Datenquelle auflisten

Dieser Code ist auch verfügbar auf: English Español
Wartet auf Validierung
Die Aktion `table.fileInfo` aus dem 'table'-Aktionssatz von CAS (Cloud Analytic Services) wird verwendet, um Metadaten über Dateien abzurufen, die in einem Verzeichnis oder einer von einer Caslib referenzierten Datenquelle gespeichert sind. Es ist möglich, Filter basierend auf Mustern (Wildcards) anzuwenden, um spezifische Dateien anzuzeigen, die Dateigröße in Kilobytes zu erhalten und andere Attribute wie Eigentümer, Gruppe, Berechtigungen und Zeitstempel abzurufen. Das Hinzufügen einer Caslib über `table.addCaslib` ist oft eine Voraussetzung, um mit spezifischen Datenpfaden auf dem CAS-Server interagieren zu können.
Datenanalyse

Type : CREATION_INTERNE


Die Beispiele enthalten SAS-Code, der die Existenz von Verzeichnissen und Dateien voraussetzt. Der Benutzer muss sicherstellen, dass die angegebenen Pfade in seiner CAS-Umgebung gültig sind und die entsprechenden Dateien existieren, oder die Pfade anpassen und bei Bedarf Dummy-Dateien erstellen. Die tatsächliche Erstellung dieser Dateien und Verzeichnisse wird nicht durch das Skript vorgenommen.

1 Codeblock
PROC CAS / table.addCaslib / table.fileInfo Data
Erklärung :
Dieses Beispiel initialisiert eine CAS-Sitzung und konfiguriert eine temporäre Caslib namens 'mycaslib', die auf ein Datenverzeichnis zeigt (z.B. `/tmp/my_cas_data`). Es ist entscheidend, dass dieses Verzeichnis auf dem CAS-Server existiert und Dateien enthält, damit die Aktion `table.fileInfo` diese auflisten kann. Die Aktion wird ohne Filterparameter aufgerufen, um alle Dateien, ihre Berechtigungen, Eigentümer, Gruppen und Größen anzuzeigen.
Kopiert!
1/* Préparation de l'environnement */
2/* Assurez-vous que le serveur CAS est démarré et qu'une session est active */
3options cashost="localhost" casport=5570; /* Adaptez cashost et casport à votre environnement */
4cas casauto; /* Démarre la session CAS 'casauto' si elle n'est pas déjà active */
5 
6/* Pour que cet exemple fonctionne, créez un répertoire '/tmp/my_cas_data' sur votre serveur CAS */
7/* et placez-y quelques fichiers (ex: file1.txt, file2.csv, etc.) */
8 
9PROC CAS;
10 SESSION casauto;
11 
12 /* Supprimer la caslib si elle existe déjà pour éviter les erreurs (optionnel) */
13 /* et nettoyer les fichiers, mais ceci n'est qu'un exemple illustratif */
14 /* table.dropCaslib / caslib="mycaslib" nozap; run; */
15 
16 /* Ajouter une caslib temporaire pointant vers le répertoire de données */
17 /* Adaptez le chemin '/tmp/my_cas_data' à un répertoire existant et accessible par votre serveur CAS */
18 TABLE.addCaslib /
19 caslib="mycaslib",
20 active=true,
21 datasource={srctype="PATH"},
22 path="/tmp/my_cas_data";
23RUN;
24 
25 /* Lister tous les fichiers dans la nouvelle caslib */
26 TABLE.fileInfo /
27 caslib="mycaslib";
28RUN;
29QUIT;
2 Codeblock
PROC CAS / table.addCaslib / table.fileInfo Data
Erklärung :
Dieses Szenario verwendet einen Musterfilter ('%ventes%') im `path`-Parameter von `table.fileInfo`, um nur die Dateien in der Caslib 'mycaslib' aufzulisten, deren Name die Zeichenkette 'ventes' enthält. Die Option `kbytes=true` wird ebenfalls angegeben, um die Größe dieser Dateien in Kilobytes anzuzeigen, was eine prägnantere Ansicht der relevanten Datenmengen bietet. Der Benutzer muss sicherstellen, dass Dateien, die diesem Muster entsprechen, im Verzeichnis `/tmp/my_cas_data` (oder dem angepassten Pfad) existieren.
Kopiert!
1/* Préparation de l'environnement */
2/* Assurez-vous que le serveur CAS est démarré et qu'une session est active */
3options cashost="localhost" casport=5570; /* Adaptez cashost et casport à votre environnement */
4cas casauto; /* Démarre la session CAS 'casauto' si elle n'est pas déjà active */
5 
6/* Pour que cet exemple fonctionne, assurez-vous que le répertoire '/tmp/my_cas_data' sur votre serveur CAS */
7/* contient des fichiers dont le nom inclut 'ventes', par exemple 'rapport_ventes_2023.txt', 'analyse_ventes_Q1.csv'. */
8 
9PROC CAS;
10 SESSION casauto;
11 
12 /* Supprimer et recréer la caslib si nécessaire (pour s'assurer qu'elle pointe bien) */
13 /* table.dropCaslib / caslib="mycaslib" nozap; run; */
14 TABLE.addCaslib /
15 caslib="mycaslib",
16 active=true,
17 datasource={srctype="PATH"},
18 path="/tmp/my_cas_data"; /* Adaptez le chemin */
19RUN;
20 
21 /* Filtrer les fichiers contenant 'ventes' et afficher la taille en kBytes */
22 TABLE.fileInfo /
23 caslib="mycaslib",
24 path='%ventes%', /* Motif générique pour filtrer les fichiers contenant 'ventes' */
25 kbytes=true; /* Afficher la taille en kilo-octets */
26RUN;
27QUIT;
3 Codeblock
PROC CAS / table.addCaslib / table.fileInfo Data
Erklärung :
Dieses Beispiel zeigt, wie `table.fileInfo` für eine feinere Metadaten-Exploration verwendet wird. Es filtert Dateien mithilfe eines generischen Musters (`data_*.txt`) und sortiert dann die Ergebnisse nach Dateinamen in aufsteigender Reihenfolge (`sortby={{name="name", order="asc"}}`). Die angezeigten Informationen umfassen die Größe in Kilobytes (`kbytes=true`) und detaillierte Änderungsdaten/Uhrzeiten (`showLongTime=true`). Der Benutzer muss sicherstellen, dass Dateien, die dem Muster entsprechen, im Verzeichnis `/tmp/my_cas_data` existieren.
Kopiert!
1/* Préparation de l'environnement */
2/* Assurez-vous que le serveur CAS est démarré et qu'une session est active */
3options cashost="localhost" casport=5570; /* Adaptez cashost et casport à votre environnement */
4cas casauto; /* Démarre la session CAS 'casauto' si elle n'est pas déjà active */
5 
6/* Pour que cet exemple fonctionne, assurez-vous que le répertoire '/tmp/my_cas_data' sur votre serveur CAS */
7/* contient des fichiers nommés par exemple 'data_A.txt', 'data_Z.txt', 'data_M.txt'. */
8 
9PROC CAS;
10 SESSION casauto;
11 
12 /* Supprimer et recréer la caslib si nécessaire */
13 /* table.dropCaslib / caslib="mycaslib" nozap; run; */
14 TABLE.addCaslib /
15 caslib="mycaslib",
16 active=true,
17 datasource={srctype="PATH"},
18 path="/tmp/my_cas_data"; /* Adaptez le chemin */
19RUN;
20 
21 /* Lister les fichiers, trier par nom, afficher taille et date/heure détaillée */
22 TABLE.fileInfo /
23 caslib="mycaslib",
24 path='data_*.txt', /* Filtrer les fichiers commençant par 'data_' et se terminant par '.txt' */
25 kbytes=true,
26 sortby={{name="name", order="asc"}}, /* Trier par nom de fichier en ordre croissant */
27 showLongTime=true; /* Afficher la date et l'heure complètes */
28RUN;
29QUIT;
4 Codeblock
PROC CAS / table.fileInfo
Erklärung :
Dieses letzte Beispiel veranschaulicht zwei Aspekte. Erstens versucht es, `table.fileInfo` mit einer absichtlich nicht existierenden `caslib` ('caslib_non_existante') zu verwenden, um zu demonstrieren, wie das System Fehler behandelt. Zweitens zeigt es, wie man mit einer vorhandenen System-Caslib, wie 'Public' (oft in SAS Viya Umgebungen vorhanden), interagiert, um die darin enthaltenen SASHDAT-Dateien (`.sashdat`) aufzulisten und deren Größen anzuzeigen. Dies verdeutlicht die Nutzung gemeinsamer CAS-Ressourcen ohne vorherige Caslib-Konfiguration.
Kopiert!
1/* Préparation de l'environnement */
2/* Assurez-vous que le serveur CAS est démarré et qu'une session est active */
3options cashost="localhost" casport=5570; /* Adaptez cashost et casport à votre environnement */
4cas casauto; /* Démarre la session CAS 'casauto' si elle n'est pas déjà active */
5 
6PROC CAS;
7 SESSION casauto;
8 
9 /* Tentative de listage dans une caslib inexistante */
10 /* Cette action est intentionnelle pour montrer la gestion des erreurs. */
11 /* Elle devrait générer un avertissement ou une erreur dans le log CAS. */
12 TABLE.fileInfo /
13 caslib="caslib_non_existante"; /* Caslib supposée ne pas exister */
14 RUN;
15 
16 /* Lister les fichiers dans la caslib 'Public' (une caslib système courante sur SAS Viya) */
17 /* 'Public' est une caslib souvent disponible par défaut sur SAS Viya pour les données partagées. */
18 /* Aucune création de caslib n'est nécessaire pour cet exemple. */
19 /* Adaptez le motif '%.sashdat' si vous recherchez d'autres types de fichiers dans 'Public'. */
20 TABLE.fileInfo /
21 caslib="Public", /* Utilisation d'une caslib système courante */
22 kbytes=true,
23 path='%.sashdat'; /* Filtrer pour les fichiers SASHDAT (fichiers de données CAS) */
24RUN;
25QUIT;
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.