append
Description
L'action table.append est la méthode moderne et distribuée pour concaténer des tables dans SAS Viya (l'équivalent dopé aux stéroïdes de PROC APPENDProcédure SAS utilisée pour ajouter les observations d'un jeu de données à la fin d'un autre. Sur Viya, elle permet de consolider efficacement des tables sans reconstruire l'intégralité du fichier.). Elle permet d'ajouter les lignes d'une table source directement dans une table cible résidant déjà en mémoire. C'est parfait pour l'ingestion incrémentale de données, comme empiler vos nouvelles factures mensuelles sans avoir à recharger tout l'historique (ce qui ferait pleurer votre serveur).
Paramètres Clés
| Nom du paramètre | Description |
|---|---|
| source | Spécifie la table d'entrée contenant les données à ajouter. Inclut des sous-paramètres comme 'name' (nom de la table), 'caslib', et 'where' pour filtrer la donnée avant l'ajout. |
| target | Spécifie la table en mémoire cible qui va recevoir les données. Attention, cette table doit obligatoirement déjà exister en mémoire CAS. |
| singlePass | (Optionnel dans source) Si true, évite la création d'une table temporaire sur le serveur pour une exécution plus rapide, bien que l'ordre des lignes ajoutées ne soit pas garanti. |
Préparation des données
Création des données de test
Avant d'ajouter des lignes, il nous faut une table cible (notre historique) et une table source (nos nouvelles données) en mémoire CAS.
| 1 | PROC CAS; TABLE.loadTable / caslib="casuser" path="historique.sashdat" casout={name="table_cible", caslib="casuser"}; TABLE.loadTable / caslib="casuser" path="nouveau_mois.csv" casout={name="table_source", caslib="casuser"}; RUN; QUIT; |
Exemples d'utilisation
Concaténation basique
Cet exemple illustre l'usage le plus simple de table.append en ajoutant toutes les lignes de la table source à la table cible.
| 1 | PROC CAS; TABLE.append / SOURCE={name="table_source", caslib="casuser"} target={name="table_cible", caslib="casuser"}; RUN; QUIT; |
Résultat Attendu :
Append avancé avec filtrage et optimisation
Ici, nous ajoutons uniquement les lignes pertinentes (par exemple, les ventes validées) à l'aide du paramètre 'where'. Nous utilisons également 'singlePass=true' pour optimiser la mémoire, car créer une table temporaire pour un simple ajout, c'est surfait !
| 1 | PROC CAS; TABLE.append / SOURCE={name="table_source", caslib="casuser", where="Statut = 'Valide'", singlePass=true} target={name="table_cible", caslib="casuser"}; RUN; QUIT; |