Créer une caslib avec sas-admin

Dans cet article, je vous montre comment créer simplement une caslib en ligne de commande avec l'utilitaire sas-admin cli de VIYA.

L'interface de ligne de commande (CLI) d'administration (que j'appelle par son petit nom de binaire sas-admin) permet d'effectuer des tâches d'admin VIYA telles que , comme le titre de cet article l'indique, la création de CASLIB dans CAS.

Cet outil est installé en même que votre environnement VIYA, mais vous pouvez également l'installer sur un serveur distant dédié à l'administration.

Pour cela, il suffit de télécharger l'utilitaire sur le site du support : SAS Administration CLI

Les exemples suivants supposent que vous vous êtes déjà connecté à SAS Viya en ligne de commande. Si vous êtes perdu, vous pouvez consulter la documentation Command-Line Interface: Preliminary Instructions


Présentation de la commande

Un exemple vaut mieux que des beaux discours :

/opt/sas/viya/home/bin/sas-admin cas caslibs create path --name caslibnhousset --path /opt/sas/nicolasdata --server cas-shared-default

Dans l'exemple ci-dessus nous créons une caslib de type PATH, portant le nom caslibnhousset, pointant vers le répertoire /opt/sas/nicolasdata . La création se fait dans le CAS server cas-shared-default.

Pour plus d'informations sur les type de caslib qu'il est possible de créer, consultez l'option dataSource pour la CAS Action addCaslib

Création d'une caslib Oracle

Voici un exemple de création d'une caslib Oracle avec sas-admin :

/opt/sas/viya/home/bin/sas-admin cas caslibs create oracle --authentication-domain oradomain  --server cas-shared-default  --name oraXE  --oracle-path oraXE

Création d'une caslib Oracle avec un fichier json

Il est possible d'utiliser un fichier json pour définir les options de création d'une caslib. Ce fichier json peut ensuite être utilisé en argument de sas-admin pour créer la caslib, via l'option --source-file

Dans l'exemple de commande ci-dessous, je génère un fichier json oraXE.json contenant les informations de la caslib oraXE :

/opt/sas/viya/home/bin/sas-admin --output json cas caslibs show-info --name oraXE --server cas-shared-default > ~/oraXE.json

Il est ensuite possible de modifier ce fichier json pour créer une nouvelle caslib Oracle.

Une fois la modification effectué, on utilise donc l'option
--source-file pour créer la nouvelle caslib :

/opt/sas/viya/home/bin/sas-admin cas caslibs create oracle --server cas-shared-default  --source-file ~/oraPRD.json

Lister les caslib

/opt/sas/viya/home/bin/sas-admin cas caslibs list --server cas-shared-default --scope global --limit 10 --superuser --source-type oracle

Et si l'authentification est faite via Kerberos ?

Un article complet pour le fonctionne de CAS Hadoop avec kerberos est dispnible sur mon blog VIYA,CAS et Kerberos

Lorsque vous créez une caslib vers une base de données, le domaine d'authentification est obligatoire. Que ce soit dans les paramètres de la commande sas-admin ou dans le fichier json.

Si vous ne spécifiez pas de domaine en paramètre ou dans le fichier json, vous obtiendrez l'erreur ci-dessous :

ERROR: The authentication domain must be specified.

Cela peut-être contraignant si l'authentification à la base de données utilise Kerberos pour l'authentification, ce qui est souvent le cas avec Hadoop.

Prenons par exemple le json ci-dessous de création d'une caslib hadoop :

Nous constations que l'authentification se fait via Kerberos ( principal=hive/hadoop.nih@NIH dans le paramètre uri) et qu'il n'y a donc pas de domaine d'authentification.

Si l'on tente de créer la caslib à partir de ce fichier json, on obtient l'erreur ci-dessous :

Pour contourner cette limitation, il est possible d'utiliser la datasource other à la place de hadoop :

/opt/sas/viya/home/bin/sas-admin cas caslibs list --server cas-shared-default --scope global --limit 10 --superuser --source-type hadoop

Nicolas Housset

Passionné d'informatique, je suis Consultant et expert technique SAS VIYA, également co-fondateur de la société Flexcelite. Spécialisé dans les technologies SAS (Viya, 9.4) et les infrastructures associées (Linux, Hadoop, Azure), ce blog est mon espace pour partager mes mémos techniques et retours d'expérience.