Les exemples utilisent des données générées (datalines) ou des placeholders pour les connexions à des sources externes (Hive).
1 Bloc de code
CASLIB Data
Explication : Cet exemple montre la création d'un caslib pour se connecter à un serveur Hive sans utiliser la découverte de service dynamique (ZooKeeper) ni l'accès HDFS. L'option `bulkload=false` est spécifiée car l'accès HDFS n'est pas configuré. Remplacez `your_hive_server`, `your_username`, `your_password`, et `your_schema` par vos propres informations de connexion.
Copié !
/* Connexion basique à Hive sans accès HDFS direct */
/* Les valeurs entre crochets angulaires (<>) doivent être remplacées par vos informations */
caslib hvcaslib_basic desc='Caslib Hadoop Basique'
dataSource=(srctype='hadoop',
server='your_hive_server',
username='your_username',
password='your_password',
schema='your_schema',
bulkload=false);
/* Charger et activer le caslib */
proc cas;
session casauto;
caslib _all_ assign;
run;
/* Afficher les informations sur le caslib */
proc cas;
session casauto;
caslib hvcaslib_basic info;
run;
quit;
1
/* Connexion basique à Hive sans accès HDFS direct */
2
/* Les valeurs entre crochets angulaires (<>) doivent être remplacées par vos informations */
Explication : Cet exemple configure un caslib Hadoop qui utilise ZooKeeper pour la découverte de service dynamique. Il est idéal pour les environnements HiveServer2 en mode haute disponibilité. Les options `zooKeeperQuorum`, `zooKeeperNamespace` et `zooKeeperPort` sont utilisées pour spécifier les informations de connexion à ZooKeeper. Assurez-vous de remplacer les placeholders par les valeurs réelles de votre environnement, y compris les chemins vers les répertoires de jars et de configuration Hadoop, ainsi que les informations ZooKeeper et d'authentification.
Copié !
/* Connexion à Hive avec découverte de service dynamique via ZooKeeper */
/* Les valeurs entre crochets angulaires (<>) doivent être remplacées par vos informations */
caslib zoocaslib desc='Caslib ZooKeeper Hadoop'
dataSource=(srctype='hadoop',
username='your_username',
password='your_password',
dataTransferMode='serial',
hadoopJarPath='<Hadoop_jar_path_directory>',
hadoopConfigDir='<Hadoop_configuration_directory>',
zooKeeperQuorum="<node1.company.com>,<node2.company.com>,<node3.company.com>",
zooKeeperNamespace='hiveserver2',
zooKeeperPort=2181,
schema='your_schema');
/* Charger et activer le caslib */
proc cas;
session casauto;
caslib _all_ assign;
run;
/* Afficher les informations sur le caslib */
proc cas;
session casauto;
caslib zoocaslib info;
run;
quit;
1
/* Connexion à Hive avec découverte de service dynamique via ZooKeeper */
2
/* Les valeurs entre crochets angulaires (<>) doivent être remplacées par vos informations */
Explication : Cet exemple illustre la connexion à un serveur Hive configuré avec l'authentification Kerberos. Les options `krbAuthType`, `krbHostFQDN`, `krbRealm`, et `krbServiceName` sont essentielles pour transmettre les propriétés de connexion Kerberos au pilote Simba. Remplacez les placeholders comme `your_hive_server`, `your_schema`, `myhost.company.com`, et `example.com` par les valeurs appropriées de votre environnement Kerberos.
Copié !
/* Connexion à Hive avec authentification Kerberos */
/* Les valeurs entre crochets angulaires (<>) doivent être remplacées par vos informations */
caslib hadoopkrb desc='Caslib Hadoop Kerberos'
dataSource=(srctype='hadoop',
server='your_hive_server',
schema='your_schema',
use_ssl=true,
krbAuthType=2,
krbHostFQDN='<myhost.company.com>',
krbRealm='<example.com>',
krbServiceName='hive',
bulkload=false);
/* Charger et activer le caslib */
proc cas;
session casauto;
caslib _all_ assign;
run;
/* Afficher les informations sur le caslib */
proc cas;
session casauto;
caslib hadoopkrb info;
run;
quit;
1
/* Connexion à Hive avec authentification Kerberos */
2
/* Les valeurs entre crochets angulaires (<>) doivent être remplacées par vos informations */
3
4
caslib hadoopkrb desc='Caslib Hadoop Kerberos'
5
dataSource=(srctype='hadoop',
6
server='your_hive_server',
7
schema='your_schema',
8
use_ssl=true,
9
krbAuthType=2,
10
krbHostFQDN='<myhost.company.com>',
11
krbRealm='<example.com>',
12
krbServiceName='hive',
13
bulkload=false);
14
15
/* Charger et activer le caslib */
16
PROC CAS;
17
SESSION casauto;
18
caslib _all_ assign;
19
RUN;
20
21
/* Afficher les informations sur le caslib */
22
PROC CAS;
23
SESSION casauto;
24
caslib hadoopkrb info;
25
RUN;
26
QUIT;
4 Bloc de code
PROC CASUTIL Data
Explication : Cet exemple illustre la configuration d'un caslib pour le chargement parallèle de données depuis Hive vers CAS, puis utilise `PROC CASUTIL` pour effectuer ce chargement. Pour rendre cet exemple autonome, une table CAS nommée `myHDdata` est d'abord créée pour simuler les données qui seraient normalement lues depuis Hive. Les options `dataTransferMode="parallel"`, `jobManagementURL`, `hadoopConfigDir` et `bulkLoad=false` sont cruciales pour activer le chargement parallèle. Remplacez les placeholders comme `your_hive_server`, `your_schema`, `your_username`, `your_password`, `Livy_URL`, et `path-to-EP-config-files` par les valeurs spécifiques à votre installation Hadoop/Hive.
Copié !
/* Création d'une table CAS de démonstration pour simuler une source Hive */
data casuser.myHDdata;
input id $ name $ value;
datalines;
1 Apple 10
2 Banana 20
3 Cherry 30
4 Date 40
;
run;
/* Connexion à Hive avec chargement parallèle activé */
/* Les valeurs entre crochets angulaires (<>) doivent être remplacées par vos informations */
caslib hvcaslib_parallel desc='Caslib Hadoop avec Chargement Parallèle'
dataSource=(srctype='hadoop',
server='your_hive_server',
schema='your_schema',
username='your_username',
password='your_password',
dataTransferMode="parallel",
jobManagementURL='<Livy_URL>',
hadoopConfigDir='<path-to-EP-config-files>',
bulkLoad=false);
/* Charger et activer le caslib */
proc cas;
session casauto;
caslib _all_ assign;
run;
/* Charger la table 'myHDdata' de Hive (simulée ici par la table CAS) dans CAS */
/* En pratique, 'myHDdata' serait une table existante dans Hive */
proc casutil;
list files incaslib="hvcaslib_parallel";
load casdata="myHDdata" incaslib="hvcaslib_parallel" outcaslib="casuser"
casout="HDdata_from_hvcaslib_parallel";
list tables incaslib="casuser";
contents casdata="HDdata_from_hvcaslib_parallel" incaslib="casuser";
run;
quit;
1
/* Création d'une table CAS de démonstration pour simuler une source Hive */
2
DATA casuser.myHDdata;
3
INPUT id $ name $ value;
4
DATALINES;
5
1 Apple 10
6
2 Banana 20
7
3 Cherry 30
8
4 Date 40
9
;
10
RUN;
11
12
/* Connexion à Hive avec chargement parallèle activé */
13
/* Les valeurs entre crochets angulaires (<>) doivent être remplacées par vos informations */
14
15
caslib hvcaslib_parallel desc='Caslib Hadoop avec Chargement Parallèle'
16
dataSource=(srctype='hadoop',
17
server='your_hive_server',
18
schema='your_schema',
19
username='your_username',
20
password='your_password',
21
dataTransferMode="parallel",
22
jobManagementURL='<Livy_URL>',
23
hadoopConfigDir='<path-to-EP-config-files>',
24
bulkLoad=false);
25
26
/* Charger et activer le caslib */
27
PROC CAS;
28
SESSION casauto;
29
caslib _all_ assign;
30
RUN;
31
32
/* Charger la table 'myHDdata' de Hive (simulée ici par la table CAS) dans CAS */
33
/* En pratique, 'myHDdata' serait une table existante dans Hive */
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.