Database

SAS und Impala: Wie man einen Request Pool über eine ODBC-Verbindung definiert

Simon 9 Aufrufe

Bei der Arbeit mit SAS© zur Interaktion mit Big-Data-Umgebungen wie Hadoop Impala ist die Ressourcenverwaltung entscheidend. Eine häufige Anforderung ist es, eine Sitzung einem bestimmten "Request Pool" (Ressourcenpool) zuzuweisen, um sicherzustellen, dass die Abfragen vom Cluster priorisiert oder korrekt verwaltet werden.

Obwohl die Verwendung von SQL Pass-Through die Ausführung von Konfigurationsbefehlen über eine EXECUTE-Anweisung ermöglicht, bietet diese Methode nicht immer die Flexibilität einer SAS©-Bibliothek (LIBNAME).

Hier erfahren Sie, wie Sie einen Abfragepool direkt bei der Deklaration einer Bibliothek über ODBC konfigurieren.

SAS und Impala: Wie man einen Request Pool über eine ODBC-Verbindung definiert -

Die Problematik

Das Ziel ist es, eine SAS©-Bibliothek (und keine einfache Pass-Through-Abfrage) zu erstellen, die auf ein Impala-Schema verweist, während die Sitzung gezwungen wird, bei der Initialisierung einen bestimmten request_pool zu verwenden.

Eine Standard-ODBC-Verbindung überträgt diese Sitzungsparameter nicht automatisch ohne explizite Konfiguration.

Die Lösung: Der Parameter dbconinit

Der Schlüssel liegt in der Verwendung der Option dbconinit (Database Connection Initialization). Diese Option ermöglicht es, einen SQL-Befehl anzugeben, der unmittelbar nach dem Herstellen der Verbindung, aber vor jedem Lese- oder Schreibzugriff auf Daten ausgeführt wird.

Dies ist der ideale Ort, um den Impala-Befehl SET request_pool zu platzieren.

Implementierung

Hier ist die vollständige Syntax zur Deklaration Ihrer Bibliothek. In diesem Beispiel verbinden wir uns mit einer DSN-Quelle namens MYIMPALA und setzen den Pool auf einen bestimmten Wert.

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;
Detail der Parameter:

noprompt="dsn=..." : Definiert die ODBC-Datenquelle, ohne ein Dialogfenster zu öffnen.

schema : Zielt auf das spezifische Datenbankschema ab.

dbconinit : Hier geschieht die Magie. Der Befehl set request_pool='...' wird an den Impala-Server gesendet, um die Sitzungsumgebung zu konfigurieren.

access=readonly : Eine bewährte Methode, um sicherzustellen, dass der Zugriff auf Analysedaten schreibgeschützt bleibt.

Dank der Option dbconinit müssen Sie für einfache Sitzungskonfigurationen nicht auf komplexe Pass-Through-Methoden zurückgreifen. So behalten Sie den Vorteil einer navigierbaren und direkt in Ihren Data Steps oder Prozeduren verwendbaren Standard-SAS©-Bibliothek, während Sie die Ressourcenzuweisungsregeln Ihres Hadoop-Clusters einhalten.