?> append - WeAreCAS
table

append

Descripción

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.

table.append { source={caslib='string', dataSourceOptions={key-1=any-list-or-data-type-1, ...}, name='table-name', singlePass=TRUE | FALSE, where='where-expression'}, target={caslib='string', name='table-name'} };
Parámetros
ParámetroDescripción
sourceEspecifica la tabla de origen que se añadirá. Es un parámetro obligatorio.
targetEspecifica la tabla de destino a la que se añadirán las filas. Esta tabla debe estar en memoria. Es un parámetro obligatorio.
caslibDentro de 'source' o 'target', especifica la caslib donde se encuentra la tabla. Si se omite, se utiliza la caslib activa.
nameDentro de 'source' o 'target', especifica el nombre de la tabla.
dataSourceOptionsPermite especificar opciones adicionales para fuentes de datos externas cuando la tabla de origen no está en memoria.
singlePassSi 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.
whereEspecifica una expresión para filtrar las filas de la tabla de origen antes de añadirlas a la tabla de destino.
Preparación de datos
Creación de Datos de Ejemplo

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'.

1DATA 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;
8RUN;
9 
10DATA 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;
17RUN;

Ejemplos

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'.

Código SAS® / CAS
¡Copiado!
1PROC CAS;
2TABLE.append /
3 source={name='ventas_q2', caslib='casuser'},
4 target={name='ventas_q1', caslib='casuser'};
5RUN;
Resultado :
La tabla 'ventas_q1' ahora contendrá las filas originales más todas las filas de 'ventas_q2'. El número de filas en 'ventas_q1' será la suma de las filas de ambas tablas antes de la operación.

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.

Código SAS® / CAS
¡Copiado!
1PROC CAS;
2TABLE.append /
3 source={name='ventas_q2', caslib='casuser', where='ventas > 50'},
4 target={name='ventas_q1', caslib='casuser'};
5RUN;
Resultado :
La tabla 'ventas_q1' se actualizará para incluir solo las filas de 'ventas_q2' que cumplen con la condición 'ventas > 50'. El resultado mostrará el número de filas que se han añadido.

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.

Código SAS® / CAS
¡Copiado!
1PROC CAS;
2TABLE.append /
3 DATA={name='ventas_q2'},
4 base={name='ventas_q1'};
5RUN;
Resultado :
El resultado es el mismo que en el primer ejemplo. La tabla 'ventas_q1' contendrá todas las filas de 'ventas_q2'. Esto demuestra la flexibilidad de la sintaxis.

FAQ

¿Qué hace la acción 'append' del conjunto de acciones 'table'?
¿Cuál es el requisito principal para la tabla de destino al usar la acción 'append'?
¿Cuáles son los parámetros obligatorios para la acción 'append'?
¿Cómo puedo anexar solo un subconjunto de datos de la tabla de origen?
¿Qué hace el subparámetro 'singlePass' dentro del parámetro 'source'?
¿Puedo especificar opciones de fuente de datos al anexar una tabla?