È possibile connettersi a un database IBM DB2 senza utilizzare ODBC?Ciao,
Utilizziamo un database IBM DB2 tramite una connessione SSL. La connessione OCBC al DB funziona bene, ma è piuttosto complessa da configurare per la maggior parte degli utenti. Se un software può utilizzare una "connessione db2 di tipo 4", odbc non è richiesto. Solo una "stringa di connessione" viene inviata direttamente al server remoto. I parametri di questa stringa sono solitamente configurati direttamente nel software. Una configurazione di connessione viene creata nel software con i parametri appropriati, il che è davvero semplice da documentare da parte dell'IT e da eseguire da parte degli utenti.
Penso che JMP non supporti direttamente una "connessione di tipo 4", ma R e Python sì. Ed è anche possibile estrarre dati in uno script JSL, come nell'esempio seguente. Potremmo creare un piccolo script Python che crei una connessione al database che sarebbe poi disponibile per JSL o per il generatore di query?
// JSL Script to extract some IBM DB2 data
New SQL Query(
Connection(
"ODBC:DSN=DBPROD1;MODE=SHARE;PWD=%_PWD_%;SECURITY=SSL;SSLCLIENTKEYSTASH=C:\BRMDB2\ssl\truststore.sth;SSLCLIENTKEYSTOREDB=C:\BRMDB2\ssl\truststore.kdb;SSLSERVERCERTIFICATE=C:\BRMDB2\ssl\carootcert.der;UID=%_UID_%;"
),
QueryName( "Extract exemple" ),
CustomSQL(
"SELECT NAME
,EMPLOYEE_NB
,DEPARTMENT
,SALARY
FROM
EMPLOYEE_TABLE
WHERE
DEPARTMENT = 'MFG02'"
)
) << RunGrazie per l'aiuto!
Accesso ai datiR: È possibile connettersi a un database IBM DB2 senza utilizzare ODBC?Sulla base di questi Data Connectors dovresti utilizzare ODBC. Un'altra opzione sarebbe quella di utilizzare Python Integration per effettuare le query. Scrivi una funzione che prenda ad esempio la query e al suo interno esegua uno script Python per eseguire la query e restituisca il risultato come tabella dati.
R: È possibile connettersi a un database IBM DB2 senza utilizzare ODBC?CIAO,
Questo è più o meno ciò che avevo in mente, ma speravo che la connessione potesse essere un oggetto creato in modo indipendente e reso disponibile per le query SQL. Metterò alla prova il tuo suggerimento e fornirò un feedback qui. Immagino di poter scrivere un "modello" di script Python che i miei colleghi potrebbero incollare nel loro JMP, aggiungendo il codice SQL in base alle loro esigenze. Sono convinto che dovrebbe funzionare. Tuttavia, controllerò se questa soluzione è funzionale e utilizzabile dai miei colleghi. Se lo è, fornirò un feedback qui e accetterò la risposta come una soluzione accettabile. Dipende da quanto sono bravi con SQL e dalle dimensioni delle tabelle.
Grazie per la risposta,
R: È possibile connettersi a un database IBM DB2 senza utilizzare ODBC?Non sono sicuro se questo tipo di connettori possa essere fatto in JMP18 poiché questo componente aggiuntivo ha la versione minima di JMP19 EA 3, S3 Data Connector (JMP Marketplace) , ma sembra che utilizzi Python come connettore per AWS S3. Se può essere usato in JMP18, potrebbe dare qualche idea su cosa potresti fare. Dovresti essere in grado di scaricare il componente aggiuntivo e quindi estrarlo usando 7zip ad esempio.
R: È possibile connettersi a un database IBM DB2 senza utilizzare ODBC?Ciao,
Per i database Oracle e PostgreSQL, possiamo inviare solo la stringa di connessione.
Penso che questo metodo dovrebbe essere possibile anche per DB2 senza dover configurare l'ODBC con un nome per ogni computer.
Potrei provare a farlo questo mese o il mese prossimo.
Saluti,
Guglielmo
R: È possibile connettersi a un database IBM DB2 senza utilizzare ODBC?CIAO,
Mi dispiace per la mia risposta tardiva.
Puoi fare così (testato da me).
db2_connect =
"DRIVER={IBM DB2 ODBC DRIVER};
DATABASE= strDatabase;
HOSTNAME= strHostname;
PORT= strPort;
PROTOCOL=TCPIP;
UID= strUser;
PWD= strPassword;";
OpenDatabase(db2_connect, "SELECT * FROM SYSIBM.SYSDUMMY1;", "sysdummy1");You have to define the DRIVER and all other varaibles strDatabase, strHostname, strPort, strUser, strPassword
Utilizzando SSL, potresti provare questo (non testato):
"DRIVER={IBM DB2 ODBC DRIVER};
DATABASE=strDatabase;
HOSTNAME=strHostname;
PORT=strPort;
PROTOCOL=TCPIP;
SECURITY=SSL;
UID=strUser;
PWD=strPassword;
SSLCLIENTKEYSTOREDB=/path/to/client/keystore.kdb;
SSLCLIENTKEYSTASH=/path/to/client/keystore.sth;
SSLCLIENTKEYPASSWORD=keystore_password;"
Saluti,
Guglielmo
R: È possibile connettersi a un database IBM DB2 senza utilizzare ODBC?Forse dovresti usare più parametri di connessione per la connessione SSL.