Publié le :
ETL CREATION_INTERNE

Gestion des données partitionnées - Exemple 1

Ce code est également disponible en : Deutsch English Español
En attente de validation
Le programme commence par supprimer une table existante nommée 'dpart' de la bibliothèque 'mydblib' pour assurer un environnement propre. Ensuite, il crée une nouvelle table 'dpart' dans 'mydblib' en utilisant un DATA STEP avec des données intégrées via l'instruction DATALINES. La table est spécifiée comme étant partitionnée par la colonne 'dates' avec un format de fichier 'sequencefile'. Enfin, une PROC SQL est utilisée pour interroger la table partitionnée, en filtrant les enregistrements pour une date spécifique, démontrant ainsi l'accès aux données partitionnées.
Analyse des données

Type : CREATION_INTERNE


Les données utilisées pour créer la table 'dpart' sont intégrées directement dans le script SAS via l'instruction DATALINES. Il n'y a pas de dépendance à des fichiers externes ou à des tables SAS préexistantes, à l'exception de la cible 'mydblib' qui est une bibliothèque externe potentiellement liée à Hadoop.

1 Bloc de code
PROC DELETE
Explication :
Ce bloc de code utilise la PROC DELETE pour supprimer la table 'dpart' de la bibliothèque 'mydblib'. Cela permet de nettoyer l'environnement avant de recréer la table, évitant ainsi les erreurs dues à l'existence préalable de la table. 'mydblib' est supposée être une bibliothèque SAS/ACCESS connectée à une source de données externe.
Copié !
1PROC DELETE DATA=mydblib.dpart; RUN;
2 Bloc de code
DATA STEP Data
Explication :
Ce DATA STEP est responsable de la création de la table 'dpart' et de son chargement avec les données spécifiées. L'option `post_table_opts` est cruciale ici : elle est passée à la base de données externe (comme Hadoop) pour indiquer que la table doit être créée avec un partitionnement par la colonne 'dates' et stockée au format 'sequencefile'. Les instructions `input`, `informat`, `format` définissent la structure des colonnes et leurs formats, tandis que `datalines` fournit les valeurs des enregistrements.
Copié !
1 DATA mydblib.dpart (post_table_opts ="partitioned by (dates date)
2 stored as sequencefile") ;
3 INPUT FLIGHT $3. +5 DATES date7. +2 ORIG $3. +3 DEST $3. +3
4 DELAYCAT $15. +2 DESTYPE $15. +8 DELAY;
5 informat DATES date7.;
6 FORMAT DATES date9.;
7 DATALINES;
8114 01MAR98 LGA LAX 1-10 Minutes Domestic 8
9202 01MAR98 LGA ORD No Delay Domestic -5
10219 01MAR98 LGA LON 11+ Minutes International 18
11114 02MAR98 LGA LAX No Delay Domestic 0
12202 02MAR98 LGA ORD 1-10 Minutes Domestic 5
13219 02MAR98 LGA LON 11+ Minutes International 18
14622 02MAR98 LGA FRA No Delay International 0
15114 03MAR98 LGA LAX No Delay Domestic -1
16202 03MAR98 LGA ORD No Delay Domestic -1
17219 03MAR98 LGA LON 1-10 Minutes International 4
18302 03MAR98 LGA WAS 1-10 Minutes Domestic 5
19;
3 Bloc de code
PROC SQL
Explication :
Ce bloc utilise PROC SQL pour interroger la table 'dpart' qui vient d'être créée. La clause `WHERE dates = '01mar99'd` démontre comment filtrer les données en utilisant la colonne partitionnée 'dates'. Le `d` après la date indique une constante de date SAS. L'objectif est de montrer que seules les données correspondant à cette partition sont récupérées, résultant en '3 rows' comme indiqué dans le titre.
Copié !
1title 'SHOULD SEE ONLY 3 ROWS';
2PROC SQL;
3 select flight from mydblib.dpart where dates = '01mar98'd;
4QUIT;
Ce matériel est fourni "tel quel" par We Are Cas. Il n'y a aucune garantie, expresse ou implicite, quant à la qualité marchande ou à l'adéquation à un usage particulier concernant le matériel ou le code contenu dans les présentes. We Are Cas n'est pas responsable des erreurs dans ce matériel tel qu'il existe maintenant ou existera, et We Are Cas ne fournit pas de support technique pour celui-ci.
Informations de Copyright : S A S S A M P L E L I B R A R Y