2021/03/17
データベース接続
このコンテンツでは、独自のSQLクエリを発行する機能であるカスタムクエリ接続について説明していきます。なお、本コンテンツで利用したSpotfireのバージョンは10.10/11.4です。ご利用環境によって、一部画面構成が異なりますので、ご了承ください。
本コンテンツでは、データベースにテーブルを作成しています。同様の操作をしたい場合には、「Baseball.txt」を利用して、テーブルを用意してください。
※サンプルファイル「Baseball.txt」はこちらからダウンロードできます。
カスタムクエリとは独自のSQLを記述するデータベースアクセスです。
記事の中にある通りSQLを編集して再度実行することもできるため、グラフはそのままで、絞り込み条件を変更しながら分析することも可能です。
インDBで接続するために「⊕」から「接続先」を選択します。
こちらに接続先一覧が表示されるため、接続したいデータベースを選択します。
必要なドライバがインストールされていない場合、「ドライバのダウンロード」のリンク先から端末にインストールして、Spotfireを再起動してください。
今回はPostgreSQLを選択しました。
以下の項目を入力して、「接続」を選択します。
「接続内のビュー」ダイアログが表示され、アクセス可能なテーブル一覧が表示されます。
ここまでは通常の接続と同じですが、「カスタム クエリ」から「新規カスタム クエリ」を選択してください。
クエリを記述する画面に遷移するため、必要なSQLを記載してください。
今回は、以下のようなクエリを記述しました。
「League」カラム内の固有値には「AL」と「NL」がありますが、「NL」だけにフィルターしたbaseballというテーブルを取得するという意味です。
「確認」を押して結果カラムにカラム名が表示されればロード可能です。
また、一番上のクエリ名に任意の名前を入力します。今回は「League_Filter」としました。
「OK」を押すと「接続内のビュー」に戻り、カスタムクエリで作成したLeague_Filterテーブルが表示されています。選択されたカラムを確認後、「OK」を選択します。
これでカスタムクエリの準備は終了です。次の画面でロード方法が選択できます。
今回はインDB接続でデータを取得しました。
「分析内のデータ」から「League」を確認してみると、固有値が「NL」だけになっていることが確認できます。
円グラフでチームごとの合計年俸の割合を表示して、選手ごとの年俸ランキングを下の棒グラフで表示するようにしました。これをさらに、ポジションが外野手の選手だけに絞り込みたいと思います。
一度定義したカスタムクエリを編集することも可能です。
「データ」から「データ接続のプロパティ」を開いて、「設定」をクリックします。
「編集」をクリックします。
先ほどの「接続内のビュー」画面が表示されるため、joinTableを選択し、「カスタム クエリ」から「カスタム クエリの編集」を選択します。
クエリの編集画面が表示されるため、こちらでSQL文を編集します。
以下のようなクエリを記述しました。
SELECT * FROM baseball WHERE ("League" = 'NL') AND ("Position" in ('LF', 'CF', 'RF'))
先ほどのLeagueに加え、Positionを外野手(LF,CF,RF)だけに絞り込みました。
SQL編集後、先ほどと同様に「分析内のデータ」から「Position」を確認してみると、固有値が「LF,CF,RF」だけになっていることが確認できます。
そして、円グラフと棒グラフもフィルターが反映されていることがわかります。
以上が、カスタムクエリ接続になります。
前の記事
データベース接続次の記事
インDBとインメモリの組み合わせ【データベース接続】最新の記事
SELECT * FROM baseball WHERE "League" = 'NL'