Watson StudioのJupyter notebookからSQL Queryへのクエリー実行


以下の記事でWatson StudioでSQL Queryで登録した表にアクセスしました。

Watson StudioからSQLQueryへのアクセス - Qiita

この記事ではさらにJupyter notebookのPyhonからSQL Queryでクエリー実行を行います。
まずSQLQueryのライブラリーを導入します。

!pip install --upgrade ibmcloudsql

次にデータアクセスのメニューを開き、接続のタブを開きます。そして、前の記事で作成した接続オブジェクトを選択し、「コードに挿入」を選びます。

すると以下のようなコードが自動生成されます。

# @hidden_cell
# The following code contains the credentials for a connection in your Project.
# You might want to remove those credentials before you share your notebook.

from ibm_watson_studio_lib import access_project_or_space
wslib = access_project_or_space()
sqlquerya4_credentials = wslib.get_connection("sqlquerya4")

取得されたオブジェクトsqlquerya4_credentials には以下のような資格情報が入っています。

次にSQL Queryへの接続を行います。接続にはAPIキー、CRN、SQL Queryの出力先のICOSバケットの指定が必要ですが、これらは先ほど自動生成されたsqlquerya4_credentialsから取得できます。

import ibmcloudsql
sqlClient = ibmcloudsql.SQLQuery(sqlquerya4_credentials['password'],
                                 sqlquerya4_credentials['crn'],
                                 sqlquerya4_credentials['target_cos_url'])

後は、SQLを書いてクエリーを実行するとpandasのdataframeに結果が返ります。

query = """
select*
from COND4N_E104
"""

queryres = sqlClient.run_sql(query)
queryres.head()

サンプルコード

参考

ICOS上のファイルをSQLでアクセスできるSQL Queryを利用する