table attribute

Gestión de Linaje y Gobernanza para Datos de Clientes

Scénario de test & Cas d'usage

Contexto empresarial

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 registrar el propietario de los datos, la fecha de actualización, y añadir descripciones y validaciones a nivel de columna.
Sobre el conjunto : table

Carga, guardado y gestión de tablas en memoria.

Descubrir todas las acciones de table
Preparación de datos

Creación de una tabla de clientes con información de riesgo crediticio. La tabla contiene un identificador de cliente, su saldo, una puntuación de riesgo y la fecha del último contacto.

¡Copiado!
1DATA casuser.CLIENTES_RIESGO;
2 LENGTH CustomerID $10;
3 informat LastContact yymmdd10.;
4 FORMAT LastContact yymmdd10.;
5 INPUT CustomerID $ Balance RiskScore LastContact;
6 DATALINES;
7CUST001 15000 650 2023-05-20
8CUST002 75000 420 2024-11-01
9CUST003 5000 780 2024-01-10
10CUST004 120000 510 .
11;
12RUN;

Étapes de réalisation

1
Cargar la tabla CLIENTES_RIESGO a la memoria de CAS si aún no está cargada (la creación con el data step ya la carga).
¡Copiado!
1 
2PROC CAS;
3TABLE.tableInfo / caslib='casuser', name='CLIENTES_RIESGO';
4RUN;
5 
6QUIT;
7 
2
Añadir atributos iniciales a nivel de tabla para gobernanza. Se crea un conjunto de atributos 'Governance' con el propietario y la fecha de carga inicial.
¡Copiado!
1PROC CAS;
2 TABLE.attribute /
3 task='ADD',
4 caslib='casuser',
5 name='CLIENTES_RIESGO',
6 SET='Governance',
7 attributes={ {key='DataOwner', value='RiskDept'}, {key='LoadDate', value='2025-11-26'} };
8RUN; QUIT;
3
Actualizar un atributo de tabla y añadir nuevos atributos a nivel de columna. Se actualiza la fecha de carga y se documenta la columna 'RiskScore' y se añade una nota de calidad a la columna 'LastContact'.
¡Copiado!
1PROC CAS;
2 TABLE.attribute /
3 task='UPDATE',
4 caslib='casuser',
5 name='CLIENTES_RIESGO',
6 SET='Governance',
7 attributes={
8 {key='LoadDate', value='2025-11-27'},
9 {key='Description', column='RiskScore', value='Puntuación FICO interna'},
10 {key='QualityNote', column='LastContact', value='Contiene nulos, requiere imputación'}
11 };
12RUN; QUIT;
4
Exportar los atributos a una tabla CAS para su revisión y almacenamiento persistente.
¡Copiado!
1PROC CAS;
2 TABLE.attribute /
3 task='EXPORT',
4 caslib='casuser',
5 name='CLIENTES_RIESGO',
6 SET='Governance',
7 casOut={name='GOVERNANCE_ATTRIBUTES', caslib='casuser', replace=true};
8RUN;
9 TABLE.fetch / TABLE={name='GOVERNANCE_ATTRIBUTES', caslib='casuser'};
10RUN; QUIT;

Resultado esperado


Se espera que la tabla final 'GOVERNANCE_ATTRIBUTES' contenga 4 filas: una para 'DataOwner', una para 'LoadDate' con el valor actualizado '2025-11-27', una para 'Description' asociada a la columna 'RiskScore', y una para 'QualityNote' asociada a la columna 'LastContact'. Esto demuestra la capacidad de gestionar un ciclo de vida completo de metadatos.