본문으로 건너뛰기
  1. Ibm/

DBeaver에 Presto와 Db2 붙여보기

·
DB DataScience
목차

Overview
#

개발과 작업의 편의성을 위해 GUI가 필요한 경우가 있습니다.
SQL client이자 데이터베이스 관리도구인 DBeaverPrestoDb2를 붙이는 과정에 대해서 정리하겠습니다.

본 문서에서는 Openshift위의 Db2, Openshift위의 Cloud Pak for Data위의 WatsonX.data위의 Presto를 다루고 있지만 다른 환경에서도 필요한 정보는 동일할테니 참고용으로 보시면 될 것 같습니다.

Db2 SSL connection
#

1. certificate 뽑기
#

Db2의 ssl-server port(ex.50001)로 연결되는 route를 생성합니다.

kind: Route
apiVersion: route.openshift.io/v1
metadata:
  namespace: dbwh
  name: dbwh
spec:
  to:
    kind: Service
    name: c-db2wh-db2u-engn-svc
    weight: 100
  port:
    targetPort: ssl-server
  tls:
    termination: passthrough
  wildcardPolicy: None

그럼 443->50001로 연결되는 https endpoint가 생성될텐데요,

https://db2wh-dbwh.apps.endpoint.com

openssl로 해당 endpoint에 대한 certificate를 추출해주면 됩니다.

openssl s_client -showcerts -connect db2wh-dbwh.apps.endpoint.com:443

rootCA와 그와 연결된 chain CA를 모두 추출해 chain.pem 파일로 생성합니다.

2. Java trust KeyStore 생성
#

DBeaver설치 시 같이 설치되는 keytool 커맨드를 통해 jks파일을 생성합니다.

$ "C:\Program Files\DBeaver\jre\bin\keytool.exe" -import -alias mydb2demo -file /path/to/chain.pem -storetype JKS -keystore mydb2demo.jks

3. DBeaver Connection
#

필요한 정보를 기입해줍니다.
https연결이므로 포트는 기본 443,
연결하고자하는 DB이름, 권한을 가진 유저의 정보를 입력해줍니다.

다음 Driver Properties탭으로 이동하여 ssl관련 정보들을 기입해줍니다.

sslConnection : true
sslTrustStoreLocation: 위에서 만든 jks파일의 위치
sslTrustStorePassword: 위에서 만든 jks파일의 비밀번호

테스트연결할때 아래와 같은 에러가 발생하면

[jcc][t4][2030][11211][4.33.31] A communication error occurred during operations on the connection's underlying socket, socket input stream, 
or socket output stream.  Error location: Reply.fill() - socketInputStream.read (-1).  Message: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target. ERRORCODE=-4499, SQLSTATE=08001
  PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target
  PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target
    unable to find valid certification path to requested target
    unable to find valid certification path to requested target

윈도우 > 설정 > 연결 > use Windows trust store의 체크를 해제하고 DBeaver를 재시작한 뒤 다시 시도하면 됩니다.

이래도 안된다면 인증서가 valid한 녀석인지 다시한번 확인!

연결 성공!

Presto SSL connection
#

1. certificate 뽑기
#

위 Db2 connection처럼 route를 만들고 인증서를 추출 -> jks로 생성해도 되지만 이 문서에서는 Presto의 truststore.jks를 직접 pod에서 가져와서 연결하는 방법을 기술하겠습니다.

presto coordinator pod에서 truststore.jks를 찾습니다.

sh-5.1$ cd /mnt/infra/tls
sh-5.1$ ls
ca.crt  keystore.p12  lh-ssl-ks.jks  lh-ssl-ts.jks  pki  tls.crt  tls.key  truststore.jks  truststore.p12

truststore.jks를 로컬로 복사, path를 기억해둡니다.

2. DBeaver Connection
#

필요한 정보를 기입해줍니다.
https연결이므로 포트는 기본 443,
연결하고자하는 스키마의이름, 권한을 가진 유저의 정보를 입력해줍니다.

다음 Driver Properties탭으로 이동하여 ssl관련 정보들을 기입해줍니다.

SSL : True
SSLTrustStorePath: 위에서 만든 jks파일의 위치
SLLTrustStorePassword: 위에서 만든 jks파일의 비밀번호 (기본은 changeit)

연결 성공!


관련 글

watsonx.data에 Db2 warehouse 붙이기
DB DataScience
Overview # Db2 warehouse와 watsonx.data를 연결하여, watsonx.data에서 만든 Iceberg테이블을 Db2 warehouse에서 쿼리할 수 있고, Db2 warehouse에서 만든 테이블을 watsonx.data의 spark나 presto engine으로 쿼리할 수 있게 세팅하는 방법에 대해서 다루도록 하겠습니다.
호다닥 톺아보는 VectorDB 기초
ComputerScience DataScience
Overview # 지난 게시글에서는 Vector란 무엇인가?에 대해서 작성했었습니다.
GPU Basics -동작원리와 사용하는 이유에 대해서
GPU DataScience
Overview # 최근 몇 년 간, 천정부지로 치솟은 GPU제조사 NVIDIA의 주식… 그리고 그래픽카드의 되팔이와 끝도없이 높아진 가격들을 지켜보며 대체 왜? GPU가 어떤 역할을 하기에 코인 채굴이나 AI 연구에 빠질 수 없는 컴포넌트가 된 것일까?? 궁금해했습니다.