table

attribute

Descripción

La acción `attribute` del conjunto de acciones `table` se utiliza para gestionar los atributos extendidos de una tabla en memoria en CAS. Estos atributos son metadatos adicionales, en formato de pares clave-valor, que se pueden asociar tanto a una tabla completa como a columnas específicas dentro de esa tabla. Permite añadir, actualizar, eliminar y exportar estos atributos, proporcionando una forma flexible de almacenar información contextual o de linaje directamente con los datos.

proc cas; table.attribute / attributes={{column="string", key="string", value="string" | 64-bit-integer | integer | double | binary-large-object}, ...} caslib="string" name="string" set="string" table="string" task="ADD" | "CONVERT" | "DROP" | "EXPORT" | "UPDATE" xml="string" xmlPath="string"; run;
Parámetros
ParámetroDescripción
attributesEspecifica los atributos extendidos a gestionar. Debe especificar el parámetro `set` si utiliza este parámetro.
columnDentro de un bloque `attributes`, especifica el nombre de una columna para asociar el atributo. Si se omite, el atributo se aplica a nivel de tabla.
keyDentro de un bloque `attributes`, especifica el nombre de la clave para el atributo. Es un parámetro obligatorio dentro de `attributes`.
valueDentro de un bloque `attributes`, especifica el valor para la clave del atributo.
caslibEspecifica la caslib donde se encuentra la tabla de destino.
nameEspecifica el nombre de la tabla en memoria cuyos atributos se van a gestionar. Es un parámetro obligatorio.
setEspecifica el nombre del conjunto de atributos. Un conjunto es un agrupamiento lógico de varios atributos.
tableEspecifica el nombre de una tabla de atributos extendidos existente para usar con las tareas ADD, UPDATE o CONVERT. Para CONVERT, este parámetro nombra la tabla a usar para almacenar los atributos extendidos.
taskEspecifica la tarea a realizar. Los valores posibles son ADD (añadir), CONVERT (convertir), DROP (eliminar), EXPORT (exportar) o UPDATE (actualizar). El valor predeterminado es ADD.
xmlEspecifica los atributos extendidos como un documento XML en una cadena de texto.
xmlPathEspecifica la ruta en el servidor a un archivo que contiene los atributos extendidos en formato XML.
Creación de Datos de Ejemplo

Este bloque de código DATA step crea una tabla simple llamada `CARS_ATTRIBUTES` en la caslib `casuser`. Esta tabla contiene información sobre diferentes modelos de coches y se utilizará en los ejemplos para demostrar cómo gestionar sus atributos extendidos.

¡Copiado!
1DATA casuser.CARS_ATTRIBUTES;
2 LENGTH Make Model Type $10;
3 INFILE DATALINES delimiter=',';
4 INPUT Make $ Model $ Type $ Origin $ MSRP;
5 DATALINES;
6Acura,MDX,SUV,Asia,36945
7Acura,RSX,Sedan,Asia,23820
8Audi,A4,Sedan,Europe,25940
9BMW,325i,Sedan,Europe,28495
10Chevrolet,Corvette,Sports,USA,44635
11Ford,Mustang,Sports,USA,24495
12;
13RUN;

Ejemplos

Este ejemplo añade un único atributo llamado 'DataOwner' con el valor 'SalesDept' a un nuevo conjunto de atributos llamado 'Ownership' para la tabla `CARS_ATTRIBUTES`.

Código SAS® / CAS Código en espera de validación por la comunidad
¡Copiado!
1PROC CAS;
2 TABLE.attribute /
3 name="CARS_ATTRIBUTES",
4 caslib="casuser",
5 SET="Ownership",
6 attributes={{key="DataOwner", value="SalesDept"}};
7RUN; QUIT;
Resultado :
La acción añade el atributo al conjunto especificado para la tabla. No se muestra una tabla de resultados, pero una nota en el log de SAS confirma que la tabla de atributos ha sido creada o actualizada.

Este ejemplo muestra cómo eliminar completamente el conjunto de atributos 'Ownership' y todos los pares clave-valor que contiene de la tabla `CARS_ATTRIBUTES`.

Código SAS® / CAS Código en espera de validación por la comunidad
¡Copiado!
1PROC CAS;
2 TABLE.attribute /
3 task="DROP",
4 name="CARS_ATTRIBUTES",
5 caslib="casuser",
6 SET="Ownership";
7RUN; QUIT;
Resultado :
El conjunto de atributos 'Ownership' se elimina de la tabla. El log de SAS indicará que la operación se ha completado con éxito.

Este ejemplo realiza varias operaciones: primero, añade dos atributos ('Confidentiality' y 'UpdateDate') a un conjunto llamado 'Metadata'. Luego, en una segunda llamada, actualiza el valor de 'UpdateDate' y añade un nuevo atributo específico para la columna 'MSRP' para documentar su moneda.

Código SAS® / CAS Código en espera de validación por la comunidad
¡Copiado!
1PROC CAS;
2 /* Añadir atributos iniciales */
3 TABLE.attribute /
4 name="CARS_ATTRIBUTES", caslib="casuser", SET="Metadata",
5 attributes={ {key="Confidentiality", value="Internal"}, {key="UpdateDate", value="2024-01-15"} };
6 
7 /* Actualizar un atributo y añadir uno nuevo a una columna */
8 TABLE.attribute /
9 task="UPDATE",
10 name="CARS_ATTRIBUTES", caslib="casuser", SET="Metadata",
11 attributes={ {key="UpdateDate", value="2025-11-25"}, {key="Currency", column="MSRP", value="USD"} };
12RUN; QUIT;
Resultado :
Después de la primera llamada, la tabla tiene dos atributos. Después de la segunda, el atributo 'UpdateDate' se actualiza al nuevo valor y se añade un atributo 'Currency' específicamente a la columna 'MSRP'. Las notas en el log confirmarán cada operación.

Este ejemplo exporta todos los atributos contenidos en el conjunto 'Metadata' de la tabla `CARS_ATTRIBUTES` a un archivo XML. La ruta especificada en `xmlPath` debe ser accesible desde el servidor CAS.

Código SAS® / CAS Código en espera de validación por la comunidad
¡Copiado!
1PROC CAS;
2 TABLE.attribute /
3 task="EXPORT",
4 name="CARS_ATTRIBUTES",
5 caslib="casuser",
6 SET="Metadata",
7 xmlPath="/cas/data/shared/cars_metadata.xml";
8RUN; QUIT;
Resultado :
Se crea un archivo `cars_metadata.xml` en la ruta del servidor `/cas/data/shared/`. Este archivo contendrá una representación XML de todos los atributos del conjunto 'Metadata'. El log de SAS mostrará una nota indicando el éxito de la exportación.

Suponiendo que el archivo `cars_metadata.xml` del ejemplo anterior existe, este ejemplo utiliza la tarea `ADD` con el parámetro `xmlPath` para leer los atributos del archivo y añadirlos a un nuevo conjunto de atributos llamado 'MetadataFromFile' en la misma tabla.

Código SAS® / CAS Código en espera de validación por la comunidad
¡Copiado!
1PROC CAS;
2 TABLE.attribute /
3 task="ADD",
4 name="CARS_ATTRIBUTES",
5 caslib="casuser",
6 SET="MetadataFromFile",
7 xmlPath="/cas/data/shared/cars_metadata.xml";
8RUN; QUIT;
Resultado :
Se crea un nuevo conjunto de atributos, 'MetadataFromFile', en la tabla `CARS_ATTRIBUTES`, poblado con los atributos leídos desde el archivo XML. El log confirmará la creación y población de la tabla de atributos.

FAQ

¿Cuál es el propósito de la acción 'attribute' en el conjunto de acciones 'table'?
¿Qué especifica el parámetro 'attributes'?
¿Para qué se utiliza el parámetro 'caslib'?
¿Qué define el parámetro 'name'?
¿Cuál es la función del parámetro 'set'?
¿Cuándo se debe usar el parámetro 'table'?
¿Qué tareas se pueden realizar con el parámetro 'task'?
¿Cómo se pueden proporcionar atributos extendidos usando XML?

Escenarios asociados

Caso de uso
Gestión de Linaje y Gobernanza para Datos de Clientes

Una entidad financiera necesita documentar el linaje y la calidad de su tabla principal de clientes (CLIENTES_RIESGO) para cumplir con normativas de auditoría. Se requiere regis...

Caso de uso
Actualización Masiva de Metadatos de Productos vía XML

Una empresa de retail gestiona un catálogo de miles de productos. Diariamente, un sistema externo genera un archivo XML con metadatos actualizados (descripciones, estado de inve...

Caso de uso
Prueba de Casos Límite y Manejo de Errores

Un analista de datos junior está aprendiendo a usar la acción 'attribute' y comete errores comunes. Este escenario prueba la robustez de la acción frente a entradas incorrectas ...