?>
La acción 'append' se utiliza para añadir las filas de una tabla de origen (source) a una tabla de destino (target) en memoria. Esta operación es fundamental para la consolidación de datos, permitiendo combinar conjuntos de datos que comparten una estructura similar. Es importante que la tabla de destino ya exista en memoria en el servidor CAS. La acción puede manejar grandes volúmenes de datos de manera eficiente, ya que la operación se realiza en paralelo en el clúster de CAS.
| Parámetro | Descripción |
|---|---|
| source | Especifica la tabla de origen que se añadirá. Es un parámetro obligatorio. |
| target | Especifica la tabla de destino a la que se añadirán las filas. Esta tabla debe estar en memoria. Es un parámetro obligatorio. |
| caslib | Dentro de 'source' o 'target', especifica la caslib donde se encuentra la tabla. Si se omite, se utiliza la caslib activa. |
| name | Dentro de 'source' o 'target', especifica el nombre de la tabla. |
| dataSourceOptions | Permite especificar opciones adicionales para fuentes de datos externas cuando la tabla de origen no está en memoria. |
| singlePass | Si se establece en TRUE, la tabla de origen se lee en una sola pasada sin crear una tabla transitoria, lo que puede mejorar la eficiencia. Sin embargo, el orden de los datos puede no ser estable entre ejecuciones. El valor predeterminado es FALSE. |
| where | Especifica una expresión para filtrar las filas de la tabla de origen antes de añadirlas a la tabla de destino. |
Se crean dos tablas, 'ventas_q1' y 'ventas_q2', en la caslib 'casuser'. Estas tablas contienen datos de ventas trimestrales y se utilizarán para demostrar la acción 'append'.
1 DATA casuser.ventas_q1; 2 DO producto = 'A', 'B'; 3 DO mes = 1 to 3; 4 ventas = floor(rand('uniform') * 100); 5 OUTPUT; 6 END; 7 END; 8 RUN; 9 10 DATA casuser.ventas_q2; 11 DO producto = 'A', 'B', 'C'; 12 DO mes = 4 to 6; 13 ventas = floor(rand('uniform') * 120); 14 OUTPUT; 15 END; 16 END; 17 RUN;
Este ejemplo añade todas las filas de la tabla 'ventas_q2' a la tabla 'ventas_q1'. Ambas tablas están en la caslib 'casuser'.
| 1 | PROC CAS; |
| 2 | TABLE.append / |
| 3 | source={name='ventas_q2', caslib='casuser'}, |
| 4 | target={name='ventas_q1', caslib='casuser'}; |
| 5 | RUN; |
Este ejemplo utiliza el parámetro 'where' para añadir solo las filas de 'ventas_q2' donde las ventas son superiores a 50 a la tabla 'ventas_q1'. Esto permite una consolidación de datos condicional.
| 1 | PROC CAS; |
| 2 | TABLE.append / |
| 3 | source={name='ventas_q2', caslib='casuser', where='ventas > 50'}, |
| 4 | target={name='ventas_q1', caslib='casuser'}; |
| 5 | RUN; |
Este es un ejemplo sintáctico que muestra el uso de los alias 'data' para 'source' y 'base' para 'target', que son comunes en otras acciones de SAS. La funcionalidad es idéntica al primer ejemplo.
| 1 | PROC CAS; |
| 2 | TABLE.append / |
| 3 | DATA={name='ventas_q2'}, |
| 4 | base={name='ventas_q1'}; |
| 5 | RUN; |