ODBC를 사용하지 않고 IBM DB2 데이터베이스에 연결할 수 있습니까?안녕하세요,
우리는 SSL 연결을 통해 IBM DB2 데이터베이스를 사용합니다. DB에 대한 OCBC 연결은 잘 작동하지만 대부분 사용자에게는 설정하기가 매우 복잡합니다. 소프트웨어가 "유형 4 db2 연결"을 사용할 수 있는 경우 odbc는 필요하지 않습니다. "연결 문자열"만 원격 서버로 직접 전송됩니다. 이 문자열의 매개변수는 일반적으로 소프트웨어에서 직접 구성됩니다. 연결 구성은 적절한 매개변수를 사용하여 소프트웨어에서 생성되며, IT에서 문서화하고 사용자가 실행하기가 정말 간단합니다.
JMP는 "유형 4 연결"을 직접 지원하지 않지만 R과 파이썬은 지원한다고 생각합니다. 그리고 아래 예와 같이 JSL 스크립트에서 데이터를 추출하는 것도 가능합니다. JSL이나 쿼리 빌더에서 사용할 수 있는 데이터베이스 연결을 만드는 작은 파이썬 스크립트를 만들 수 있을까요?
// 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'"
)
) << Run도와주셔서 감사합니다!
데이터 접근Re: ODBC를 사용하지 않고도 IBM DB2 데이터베이스에 연결할 수 있나요?이 데이터 커넥터를 기반으로 ODBC를 활용해야 합니다. 다른 옵션은 Python 통합을 활용하여 쿼리를 만드는 것입니다. 예를 들어 쿼리를 받아들이고 그 안에서 Python 스크립트를 실행하여 쿼리를 수행하고 결과를 데이터 테이블로 반환하는 함수를 작성합니다.
Re: ODBC를 사용하지 않고도 IBM DB2 데이터베이스에 연결할 수 있나요?안녕,
이것은 제가 생각했던 것과 다소 비슷하지만, 연결이 독립적으로 생성되어 SQL 쿼리에 사용할 수 있는 객체가 되기를 바랐습니다. 제안을 테스트하고 여기에 피드백을 제공하겠습니다. 저는 동료들이 JMP에 붙여넣고 필요에 따라 SQL 코드를 추가할 수 있는 Python 스크립트 "템플릿"을 작성할 수 있다고 가정합니다. 작동할 것이라고 확신합니다. 그러나 이 솔루션이 작동하고 동료들이 사용할 수 있는지 확인하겠습니다. 그렇다면 여기에 피드백을 제공하고 응답을 허용 가능한 솔루션으로 수락하겠습니다. SQL과 테이블 크기에 얼마나 능숙한지에 따라 달라집니다.
답변 감사합니다.
Re: ODBC를 사용하지 않고도 IBM DB2 데이터베이스에 연결할 수 있나요?이 유형의 커넥터가 JMP18에서 가능한지 잘 모르겠습니다. 이 추가 기능은 최소 JMP19 EA 3, S3 Data Connector(JMP Marketplace) 버전을 가지고 있지만 AWS S3의 커넥터로 Python을 사용하는 것 같습니다. JMP18에서 사용할 수 있다면 무엇을 할 수 있는지에 대한 아이디어를 얻을 수 있을 것입니다. 추가 기능을 다운로드한 다음 예를 들어 7zip을 사용하여 압축을 풀 수 있어야 합니다.
Re: ODBC를 사용하지 않고도 IBM DB2 데이터베이스에 연결할 수 있나요?안녕하세요,
Oracle 및 PostgreSQL 데이터베이스의 경우 연결 문자열만 전송할 수 있습니다.
이 방법은 각 컴퓨터마다 이름을 지정하여 ODBC를 설정하지 않고도 db2에서도 가능할 것으로 생각합니다.
이번 달이나 다음 달에 시도해 볼 계획을 세울 수도 있을 것 같아요.
문안 인사,
기욤
Re: ODBC를 사용하지 않고도 IBM DB2 데이터베이스에 연결할 수 있나요?안녕,
답변이 늦어져서 죄송합니다.
이렇게 하면 됩니다(제 쪽에서 테스트했습니다).
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
SSL을 사용하면 다음을 시도할 수 있습니다(테스트하지 않음):
"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;"
문안 인사,
기욤
Re: ODBC를 사용하지 않고도 IBM DB2 데이터베이스에 연결할 수 있나요?SSL 연결을 위해 더 많은 연결 매개변수를 사용해야 할 수도 있습니다.