Publicado el :
Administración CREATION_INTERNE

Listar los archivos de un origen de datos de caslib

Este código también está disponible en: Deutsch English
En espera de validación
La acción `table.fileInfo` del conjunto de acciones 'table' de CAS (Cloud Analytic Services) se utiliza para recuperar metadatos sobre los archivos almacenados en un directorio o un origen de datos referenciado por una caslib. Es posible aplicar filtros basados en patrones (wildcards) para apuntar a archivos específicos, obtener el tamaño de los archivos en kilobytes y otros atributos como el propietario, el grupo, los permisos y las marcas de tiempo. La adición de una caslib a través de `table.addCaslib` es a menudo un requisito previo para poder interactuar con rutas de datos específicas en el servidor CAS.
Análisis de datos

Type : CREATION_INTERNE


Los ejemplos proponen código SAS que asume la existencia de directorios y archivos. El usuario debe asegurarse de que las rutas especificadas sean válidas en su entorno CAS y que los archivos correspondientes existan, o adaptar las rutas y crear los archivos ficticios si es necesario. La creación real de estos archivos y directorios no es realizada por el script.

1 Bloque de código
PROC CAS / table.addCaslib / table.fileInfo Data
Explicación :
Este ejemplo inicializa una sesión CAS y configura una caslib temporal llamada 'mycaslib' que apunta a un directorio de datos (por ejemplo, `/tmp/my_cas_data`). Es esencial que este directorio exista en el servidor CAS y contenga archivos para que la acción `table.fileInfo` pueda listarlos. La acción se llama sin parámetros de filtrado para mostrar todos los archivos, sus permisos, propietarios, grupos y tamaños.
¡Copiado!
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 Bloque de código
PROC CAS / table.addCaslib / table.fileInfo Data
Explicación :
Este escenario utiliza un filtro por patrón ('%ventes%') en el parámetro `path` de `table.fileInfo` para listar solo los archivos cuyo nombre contiene la cadena 'ventes' en la caslib 'mycaslib'. La opción `kbytes=true` también se especifica para mostrar el tamaño de estos archivos en kilobytes, ofreciendo una vista más concisa de los volúmenes de datos relevantes. El usuario debe asegurarse de que existen archivos que coincidan con este patrón en el directorio `/tmp/my_cas_data` (o la ruta adaptada).
¡Copiado!
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 Bloque de código
PROC CAS / table.addCaslib / table.fileInfo Data
Explicación :
Este ejemplo demuestra cómo utilizar `table.fileInfo` para una exploración más fina de los metadatos. Filtra los archivos usando un patrón genérico (`data_*.txt`), luego ordena los resultados por nombre de archivo en orden ascendente (`sortby={{name="name", order="asc"}}`). La información mostrada incluye el tamaño en kilobytes (`kbytes=true`) y las fechas/horas de modificación detalladas (`showLongTime=true`). El usuario debe asegurarse de que existen archivos que coincidan con el patrón en el directorio `/tmp/my_cas_data`.
¡Copiado!
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 Bloque de código
PROC CAS / table.fileInfo
Explicación :
Este último ejemplo ilustra dos aspectos. Primero, intenta usar `table.fileInfo` con una `caslib` deliberadamente inexistente ('caslib_non_existante') para demostrar cómo el sistema gestiona los errores. Segundo, muestra cómo interactuar con una caslib de sistema existente, como 'Public' (a menudo presente en los entornos SAS Viya), para listar los archivos SASHDAT (`.sashdat`) que contiene, mostrando sus tamaños. Esto resalta el uso de recursos CAS compartidos sin necesidad de configuración previa de caslib.
¡Copiado!
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;
Este material se proporciona "tal cual" por We Are Cas. No hay garantías, expresas o implícitas, en cuanto a la comerciabilidad o idoneidad para un propósito particular con respecto a los materiales o el código contenidos en este documento. We Are Cas no es responsable de los errores en este material tal como existe ahora o existirá, ni We Are Cas proporciona soporte técnico para el mismo.