IBM Cloud Object Storage のデータでDashのWebアプリを作る方法|CData Connect AI + Python
CData Connect AI の Python SDK(DB-API 2.0準拠)を使うと、pandas と Dash でリアルタイムのIBM Cloud Object Storage のデータを可視化する Web アプリを、個別ドライバー不要で構築できます。接続・モジュールインストール・アプリ構築の3ステップで、約10分で完成します。
Python は豊富なモジュールのエコシステムを備えているため、素早く作業に取りかかり、システムをより効果的に連携できます。CData Connect AI Python SDK、pandas モジュール、そして Dash フレームワークを使えば、IBM Cloud Object Storage のデータを扱う IBM Cloud Object Storage 連携の Web アプリケーションを構築できます。この記事では、Connect AI に接続し、pandas と Dash を使ってIBM Cloud Object Storage のデータを可視化するシンプルな Web アプリを構築する方法をご紹介します。
Connect AI Python SDK(cdata-connect-ai)は DB-API 2.0(PEP 249)に準拠したクライアントなので、pandas は SDK の接続オブジェクトから直接クエリ結果を読み取れます。ソースごとにドライバーをインストールする必要はありません。パーソナルアクセストークンで接続して、アプリを構築しましょう。
Python + pandas + Dash でできること
IBM Cloud Object Storage データの可視化ダッシュボード作成
SQL クエリで取得した IBM Cloud Object Storage のレコードを pandas の DataFrame に読み込み、Dash のグラフコンポーネントに渡すだけで、業種別の傾向などを視覚的に確認できるダッシュボードを構築できます。
リアルタイムデータの自動更新レポート
Connect AI 経由の接続はパーソナルアクセストークンで認証されるため、スケジュール実行するスクリプトに組み込めば、IBM Cloud Object Storage の最新データを反映したレポートを定期的に生成できます。
複数データソースとの統合分析
DB-API 2.0 準拠のクライアントなので、同じコードパターンで IBM Cloud Object Storage 以外のデータソースにも接続でき、pandas 上で結合・集計してから Dash で一元的に可視化できます。
Connect AI で IBM Cloud Object Storage に接続する方法は?
CData Connect AI では、直感的なクリック操作ベースのインターフェースでデータソースに接続できます。
- Connect AI にログインし、Sources をクリックして、 Add Connection をクリックします
- 「Add Connection」パネルから「IBM Cloud Object Storage」を選択します
-
IBM Cloud Object Storage に接続するために必要な認証プロパティを入力します。
Cloud Object Storage 接続プロパティの取得・設定方法
Cloud Object Storage に接続する前に、Cloud Object Storage インスタンスを登録してCloud Object Storage API キーとCRN を取得していきます。
Cloud Object Storage の新規インスタンスの登録
IBM Cloud アカウントにCloud Object Storage がまだない場合は、以下の手順に従ってアカウントにSQL Query のインスタンスをインストールできます。
- IBM Cloud アカウントにログインします。
- Cloud Object Storage ページに移動して、インスタンス名を指定して「作成」をクリックします。Cloud Object Storage の新規インスタンスにリダイレクトされます。
API キー
API キーは以下の手順で取得できます。
- まずは、IBM Cloud アカウントにログインします。
- API キーページに移動します。
- 中央右隅のIBM Cloud APIキーの作成 をクリックして、新しいAPI キーを作成します。
- ポップアップウィンドウが表示されたら、API キーの名前を指定して作成をクリックします。ダッシュボードからはアクセスできなくなるため、API Key を控えておきましょう。
Cloud Object Storage CRN
デフォルトでは、CData 製品はCloud Object Storage CRN を自動で取得します。ただし、複数のアカウントがある場合は、CloudObjectStorageCRN を明示的に指定する必要があります。この値は、次の2つの方法で取得できます。
- Services ビューをクエリする。これにより、IBM Cloud Object Storage インスタンスとそれぞれのCRN がリストされます。
- IBM Cloud で直接CRN を見つける。これを行うには、IBM Cloud のダッシュボードに移動します。リソースリストで、ストレージからCloud Object Storage リソースを選択してCRN を取得します。
IBM Cloud Object Storage への接続
これで準備は完了です。以下の接続プロパティを設定してください。
- InitiateOAuth:GETANDREFRESH に設定。InitiateOAuth を使うと、OAuth 認証を繰り返す必要がなく、さらに自動でアクセストークンを設定できます。
- ApiKey:セットアップ中に控えたAPI キーを指定。
- CloudObjectStorageCRN(オプション):控えておいたCloud Object Storage のCRN に設定。Cloud Object Storage アカウントが複数ある場合のみ設定する必要があります。
プロパティを設定したら、これで接続設定は完了です。
- 「Save & Test」をクリックします
- 「Permissions」タブに移動し、ユーザーベースの権限を更新します。

パーソナルアクセストークン(PAT)を生成する
Python SDK は、アカウントのメールアドレスとパーソナルアクセストークン(PAT)を使って Connect AI に認証します。アクセスの粒度を保つために、アプリケーションごとに個別の PAT を作成することをおすすめします。
- Connect AI アプリの右上にある歯車アイコン()をクリックして、設定ページを開きます。
- 設定ページの Access Tokens セクションに移動し、 Create PAT をクリックします。
- PAT に名前を付けて Create をクリックします。

- パーソナルアクセストークンは作成時にのみ表示されます。必ずコピーして安全な場所に保管してください。
必要なモジュールをインストールする
pip ユーティリティを使って、SDK(pandas エクストラ付き)、Dash、Plotly をインストールします。
pip install "cdata-connect-ai[full]" pip install dash pip install plotly
Python で IBM Cloud Object Storage のデータの Web アプリを構築する
必要なモジュールをインストールしたら、Web アプリを構築する準備は完了です。以下にコードスニペットを紹介しますが、完全なソースコードは記事の末尾に掲載しています。
まずモジュールをインポートし、アカウントのメールアドレスと PAT で Connect AI に接続して、IBM Cloud Object Storage のデータを DataFrame に読み込みます。識別子は <Connection>.<Schema>.<Table> という3つの部分で構成されており、接続名はデフォルトでソース名(例:IBMCloudObjectStorage1)になります。
import dash
from dash import dcc, html
import pandas as pd
import plotly.graph_objs as go
import cdata_connect_ai
conn = cdata_connect_ai.connect(
username="[email protected]",
password="<your_pat>",
)
df = pd.read_sql(
"SELECT Key, Etag "
"FROM [IBMCloudObjectStorage1].[IBMCloudObjectStorage].[Objects] "
"WHERE Bucket = 'someBucket'",
conn,
)
conn.close()
アプリとレイアウトを設定する
クエリ結果を DataFrame に格納したら、IBM Cloud Object Storage のデータから棒グラフを作成し、アプリのレイアウトを設定します。
app = dash.Dash(__name__)
app.title = 'CData Connect AI + Dash'
trace = go.Bar(x=df['Key'], y=df['Etag'], name='Key')
app.layout = html.Div(
children=[
html.H1("CData Connect AI + Dash", style={'textAlign': 'center'}),
dcc.Graph(
id='example-graph',
figure={
'data': [trace],
'layout': go.Layout(title='IBM Cloud Object Storage Objects Data', barmode='stack'),
},
),
],
className="container",
)
アプリを実行できるようにする
接続、アプリ、レイアウトの設定が完了したら、アプリを実行する準備は整いました。
if __name__ == '__main__':
app.run(debug=True)
それでは、Python で Web アプリを実行し、ブラウザでIBM Cloud Object Storage のデータを確認してみましょう。
python ibmcloudobjectstorage-dash.py
関連情報と無料トライアル
これで、CData Connect AI Python SDK を使って、リアルタイムのIBM Cloud Object Storage のデータでインタラクティブな Dash の Web アプリを構築できるようになりました。IBM Cloud Object Storage(および数百種類のその他のデータソース)への接続について詳しくは、Connect AI のページをご覧ください。
CData Connect AI の詳細、または無料トライアルにお申し込みください:
完全なソースコード
import dash
from dash import dcc, html
import pandas as pd
import plotly.graph_objs as go
import cdata_connect_ai
conn = cdata_connect_ai.connect(
username="[email protected]",
password="<your_pat>",
)
df = pd.read_sql(
"SELECT Key, Etag "
"FROM [IBMCloudObjectStorage1].[IBMCloudObjectStorage].[Objects] "
"WHERE Bucket = 'someBucket'",
conn,
)
conn.close()
app = dash.Dash(__name__)
app.title = 'CData Connect AI + Dash'
trace = go.Bar(x=df['Key'], y=df['Etag'], name='Key')
app.layout = html.Div(
children=[
html.H1("CData Connect AI + Dash", style={'textAlign': 'center'}),
dcc.Graph(
id='example-graph',
figure={
'data': [trace],
'layout': go.Layout(title='IBM Cloud Object Storage Objects Data', barmode='stack'),
},
),
],
className="container",
)
if __name__ == '__main__':
app.run(debug=True)