Database

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

Simon 26/05/2024 1 views

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.

Illustration

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.