Testez toujours la stabilité de votre connexion avec un script ré-exécutable (incluant le nettoyage PROC SQL). C'est la seule façon de mesurer l'impact réel de vos options de chargement sans polluer votre cluster.
Attention : Ce code nécessite des droits administrateur.
La source des données est la table `sashelp.cars`, qui est une table d'exemple interne à SAS. La destination est une base de données externe Hadoop, connectée via un `libname`. Le script ne lit pas de données externes, il y écrit.
1 Bloc de code
LIBNAME
Explication : Définit une connexion à un serveur Hadoop via l'interface SAS/ACCESS to Hadoop. Il active également des options de traçage (`sastrace`) pour enregistrer des informations détaillées sur l'interaction avec la base de données dans le journal SAS.
Explication : Ce bloc charge les données de la table `sashelp.cars` dans une nouvelle table `cars` sur le serveur Hadoop. L'option `bulkload=yes` active le mode de chargement en masse, optimisé pour les transferts de gros volumes de données. La table est ensuite supprimée avec `PROC SQL` pour nettoyer l'environnement.
Explication : Ce bloc effectue le même chargement que le précédent mais sans l'option `bulkload=yes`. Cela permet de comparer la différence de performance entre un chargement standard (potentiellement ligne par ligne) et un chargement en masse. La table est ensuite supprimée.
Explication : Ce bloc charge à nouveau les données, mais utilise l'option `dbcreate_table_opts` pour passer une instruction spécifique à Hadoop lors de la création de la table. Ici, il demande que la table soit stockée au format de fichier 'Parquet', un format de stockage en colonnes très performant. La table est finalement supprimée.
Copié !
proc append base=mycdh.cars (dbcreate_table_opts='stored as parquetfile')
data=sashelp.cars;
run;
proc sql;
drop table mycdh.cars;
quit;
1
PROC APPEND base=mycdh.cars (dbcreate_table_opts='stored as parquetfile')
2
DATA=sashelp.cars;
3
RUN;
4
5
PROC SQL;
6
drop TABLE mycdh.cars;
7
QUIT;
L'Astuce Pro
L'option globale sastrace activée au début du script est vitale pour le débogage des opérations Hadoop : elle force SAS à afficher dans la log les commandes HiveQL ou HDFS exactes générées en arrière-plan, ce qui est souvent le seul moyen de comprendre pourquoi un Bulkload échoue silencieusement.
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.
SAS et tous les autres noms de produits ou de services de SAS Institute Inc. sont des marques déposées ou des marques de commerce de SAS Institute Inc. aux États-Unis et dans d'autres pays. ® indique un enregistrement aux États-Unis. WeAreCAS est un site communautaire indépendant et n'est pas affilié à SAS Institute Inc.
Ce site utilise des cookies techniques et analytiques pour améliorer votre expérience.
En savoir plus.