watson studioのJupyter notebookからdb2へアクセス


はじめに

Watson StudioからDB2のデータをDataframeに落としたいことがあったので、その手順のメモ。
おそらくWatson Stduio以外の汎用的なJupyterの環境ではdb2関係のライブラリの追加導入が必要なのではと思います。

import ibm_db
import ibm_db_dbi
import pandas as pd

# 以下の変数は環境に応じて個別設定して下さい

# データベース名
dbname = 'xxx'
# ホスト名
hostname = 'xxx'
# ポート番号
port = 'xxx'
# 接続ユーザー名
uid = 'xxx'
# 接続パスワード
pwd = 'xxx'

# 接続用パラメータの生成
conn_params = 'DATABASE=%s;HOSTNAME=%s;PORT=%s;PROTOCOL=TCPIP;UID=%s;PWD=%s;' % (dbname, hostname, port, uid, pwd)

con = ibm_db.connect(conn_params, "", "")
conn = ibm_db_dbi.Connection(con)

# 次のSQL文は要件に応じて書き換えて下さい
sql = "select * from CAR_RENTAL_TRAINING"

# データフレームに検索結果の読み込み
df = pd.read_sql(sql, conn)

# 結果の確認
df.head()

うまくできると、こんな感じでデータベースの内容がDataFrameに取り込まれているのがわかります。