Database

SAS et Impala : Comment définir un Request Pool via une connexion ODBC

Simon 13 vistas
Nivel de dificultad
Confirmé
Publicado el :
Michael

Consejo del experto

Michael

Interagir avec des clusters Hadoop (Impala) via SAS demande une gestion fine des ressources. Une problématique revient souvent : comment forcer l'utilisation d'un "Request Pool" spécifique pour garantir la priorité de ses traitements, tout en conservant la souplesse d'une LIBNAME classique ?

L'erreur courante est de penser que seul le SQL Pass-Through (EXECUTE) permet de configurer la session.

Lorsqu'on travaille avec SAS© pour interagir avec des environnements Big Data comme Hadoop Impala, la gestion des ressources est cruciale. Une exigence courante consiste à assigner une session à un "Request Pool" (pool de ressources) spécifique pour garantir que les requêtes sont prioritaires ou gérées correctement par le cluster.

Bien que l'utilisation de SQL Pass-Through permette d'exécuter des commandes de configuration via une instruction EXECUTE, cette méthode ne permet pas toujours de bénéficier de la flexibilité d'une bibliothèque SAS© (LIBNAME).

Voici comment configurer directement un pool de requêtes lors de la déclaration d'une bibliothèque via ODBC.

SAS et Impala : Comment définir un Request Pool via une connexion ODBC -

La problématique

L'objectif est de créer une librairie SAS© (et non une simple requête pass-through) qui pointe vers un schéma Impala, tout en forçant la session à utiliser un request_pool spécifique dès l'initialisation.

Une connexion ODBC standard ne transmet pas automatiquement ces paramètres de session sans une configuration explicite.

La solution : Le paramètre dbconinit

La clé réside dans l'utilisation de l'option dbconinit (Database Connection Initialization). Cette option permet de spécifier une commande SQL qui sera exécutée immédiatement après l'établissement de la connexion, mais avant toute lecture ou écriture de données.

C'est l'endroit idéal pour placer la commande Impala SET request_pool.

Implémentation

Voici la syntaxe complète pour déclarer votre bibliothèque. Dans cet exemple, nous nous connectons à une source DSN nommée MYIMPALA et définissons le pool sur une valeur spécifique.

1LIBNAME eap32 odbc
2 noprompt="dsn=MYIMPALA;"
3 schema=pc_anltcclientref_analysis
4 dbconinit="set request_pool='ACE-S-FRA-EAP-PROD-PC_ANLTCCLIENTREF'"
5 access=readonly;
Détail des paramètres :

noprompt="dsn=..." : Définit la source de données ODBC sans ouvrir de fenêtre de dialogue.

schema : Cible le schéma de base de données spécifique.

dbconinit : C'est ici que la magie opère. La commande set request_pool='...' est envoyée au serveur Impala pour configurer l'environnement de la session.

access=readonly : Une bonne pratique pour s'assurer que l'accès aux données analytiques reste en lecture seule.

Grâce à l'option dbconinit, vous n'avez pas besoin de recourir à des méthodes complexes de Pass-Through pour de la simple configuration de session. Vous conservez ainsi l'avantage d'avoir une bibliothèque SAS© standard, navigable et utilisable directement dans vos étapes Data ou vos procédures, tout en respectant les règles d'allocation de ressources de votre cluster Hadoop.