table

attribute

L'essentiel
En resumen
Optimizar la usabilidad de las tablas en memoria requiere un control exhaustivo de sus propiedades, algo que la acción attribute gestiona con una precisión excepcional en SAS Viya. Esta herramienta permite a los arquitectos de datos asignar metadatos enriquecidos, como reglas de validación o etiquetas de negocio personalizadas, facilitando una comprensión profunda del contexto de los datos sin necesidad de alterar las filas o columnas existentes. Al implementar estos atributos de tipo clave-valor, se garantiza una mayor agilidad en los procesos de integración y auditoría. Para resolver cualquier duda sobre su implementación, hemos preparado una guía de preguntas frecuentes que aborda desde la eliminación de metadatos obsoletos hasta la exportación masiva de configuraciones.

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
attributes Especifica los atributos extendidos a gestionar. Debe especificar el parámetro `set` si utiliza este parámetro.
column Dentro 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.
key Dentro de un bloque `attributes`, especifica el nombre de la clave para el atributo. Es un parámetro obligatorio dentro de `attributes`.
value Dentro de un bloque `attributes`, especifica el valor para la clave del atributo.
caslib Especifica la caslib donde se encuentra la tabla de destino.
name Especifica el nombre de la tabla en memoria cuyos atributos se van a gestionar. Es un parámetro obligatorio.
set Especifica el nombre del conjunto de atributos. Un conjunto es un agrupamiento lógico de varios atributos.
table Especifica 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.
task Especifica 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.
xml Especifica los atributos extendidos como un documento XML en una cadena de texto.
xmlPath Especifica 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 ...