データ接続
Spotfireからデータベースに接続する場合はデータ接続機能を使用すると便利です。
データ接続以外でもクライアントPCにドライバーがインストールされていれば、「開く」→「データベース」でデータを読み出すことが可能ですが、
データ接続でも一般的なデータベースであればサポートされていますし、機能も豊富です。
準備されているデータコネクターに関してはこちらのリストを御覧ください。
※バージョンにより異なります。
データベースに直接接続する場合と比較すると、インDBやカスタムクエリなどの機能を使うことが可能です。
インDBとは?
Spotfireはインメモリ技術による高速な集計が売りですが、
より大量なデータに対応するためにインDBというモードでも動作します。
インDBではSpotfireの操作に応じて動的にデータベースにSQLを発行し、
グラフ化に必要な集計データだけを取得します。
データベース側の処理がメインになりますので、クライアント側(Spotfire側)にはそれほど負荷がかかりません。
その反面データベース側には負荷がかかりますので、同時接続ユーザーが増える場合はデータベース側にそれなりのスペックが必要になってきます。
接続方法
インDBで接続するには「ファイル」→「データテーブルの追加」から
「追加」で「接続先」を選択します。
こちらに接続先一覧が表示されるのでご目当てのデータベースを選択します。
ちなみにグレーアウトされている場合はドライバーがインストールされていないので、
別途入手して端末にインストールしてください。
今回はSQL Serverを選択してみました。
サーバーを指定してユーザー名とパスワードを入力し「接続」すると
接続先データベースが選択できます。
テーブル一覧が表示されますので、必要なテーブルを選択します。
ちなみに複数テーブル選択することも可能です。
インDB接続
ここまではデータベースに接続する設定です。
次の画面でインメモリかインDBか選択します。
「ロードする方法」という項目があり
・データテーブルをインポート
を選択すると、通常通りインメモリで動作します。
・データテーブルを外部に保つ
を選択するとインDBで動作します。
インDBの制限
インDBだと、テーブルは1万件しか表示できなかったり
カスタム演算式や計算カラムの関数も制限されます(SQLで実行できる範囲内になるのでデータベースに準拠します)、またデータリレーションなどの統計機能も使用不可です。
フィルターパネルも自動的には作成されないので、必要な場合は手動で追加する必要があります。
操作とクエリ
実際にどのような動作をしているのかSQL Profilerを使用して確認してみます。
こちらがクエリの内容です。1万行で制限がかかっているのがわかります。
次はチーム別に棒グラフで集計してみました。
ついでに、縦軸をサラリーにし、チームでフィルターをかけてみました。
フィルターをかけるとクエリはsql_executeで実行されています。
機能的な制限
メニューからの機能でも使えないメニューはグレーアウトされます。
軸の集計でもインメモリとは異なりSQLで実行できる集計のみ表示されます。
接続設定の保存
データベース接続はできるようになったので、ひとまず安心ですが、
このままDXPファイルに保存すると、ファイルを開くたびにログイン情報を聞いてきます。
めんどくさい場合はログイン情報をファイル内に保存してしまいましょう。
「ファイル」から「データ接続のプロパティ」で「設定」をクリック
「データベース接続の設定」画面で「データソース」タブで「設定」をクリックします。
「資格情報」タブで接続情報を保存するか設定できますので、「はい」を選択してください。
これで保存すると次回からは自動的にDB接続が行われます。