Scénario de test & Cas d'usage
Carga, guardado y gestión de tablas en memoria.
Descubrir todas las acciones de tableSe crea una tabla de destino 'sensores_diario' y una tabla de origen 'sensores_hora_14' que simula un gran volumen de datos (1 millón de filas).
| 1 | DATA casuser.sensores_diario (promote=yes); |
| 2 | stop; |
| 3 | RUN; |
| 4 | |
| 5 | DATA casuser.sensores_hora_14; |
| 6 | DO ID_TURBINA = 1 to 100; |
| 7 | DO i = 1 to 10000; |
| 8 | TIMESTAMP = '25NOV2025:14:00:00'dt + i; |
| 9 | VELOCIDAD_VIENTO = 15 + rand('normal', 0, 2); |
| 10 | PRODUCCION_KWH = 1.5 + rand('normal', 0, 0.3); |
| 11 | OUTPUT; |
| 12 | END; |
| 13 | END; |
| 14 | RUN; |
| 1 | |
| 2 | PROC CAS; |
| 3 | TABLE.loadTable / caslib='casuser' path='sensores_diario.sashdat' casout={name='sensores_diario', replace=true}; |
| 4 | RUN; |
| 5 |
| 1 | PROC CAS; |
| 2 | TABLE.append / |
| 3 | SOURCE={name='sensores_hora_14', caslib='casuser', singlePass=TRUE}, |
| 4 | target={name='sensores_diario', caslib='casuser'}; |
| 5 | RUN; |
| 1 | |
| 2 | PROC CAS; |
| 3 | TABLE.rowCount / TABLE={name='sensores_diario', caslib='casuser'}; |
| 4 | RUN; |
| 5 |
La operación de 'append' debe completarse eficientemente. El log de CAS debe indicar que 1,000,000 de filas fueron añadidas. La acción 'rowCount' debe confirmar que la tabla 'sensores_diario' ahora contiene 1,000,000 de filas. El tiempo de ejecución debe ser notablemente rápido, demostrando el beneficio de 'singlePass'.