概要
本パートでは、以降のパートの内容を理解するための前提知識であるデータソースへの接続方法について、その全体像とそれぞれの特徴について学びます。
前提条件と要件
パート2では、以下を前提とします。
- 以下のデータがPostgreSQLに格納されている。
- 生産計画テーブル
- 生産実績テーブル
- 品質検査テーブル
- 不良品記録テーブル
- 各製品の検査結果集約テーブル
また、本パートでは、以下を要件とします。
- 生産部門では、週次定例会議が行われており、その定例にて「生産計画テーブル」と「生産実績テーブル」を活用した生産の現状が把握できるようにしたい。
- 品質部門では、Spotfire application for Windows ユーザーが「品質検査テーブル」、「不良品記録テーブル」、「各製品の検査結果集約テーブル」に対してアドホックに接続し、製品の不良品分析を柔軟に実施したい。
以上の要件を満たすため、
パート2では、以下を実施します。
要件 |
内容 |
パート |
| 生産部門では、週次定例会議が行われており、その定例にて「生産計画テーブル」と「生産実績テーブル」を活用した生産の現状が把握できるようにしたい | 必要なテーブルデータのカラムやその前処理が定型化されていることを踏まえて、 インフォメーションリンクで、効率的で保守性の高いデータ抽出プロセスを作成する |
パート2ー2 |
| 品質部門では、Spotfire application for Windows ユーザーが「品質検査テーブル」、「不良品記録テーブル」、「各製品の検査結果集約テーブル」に対してアドホックに接続し、製品の不良品分析を柔軟に実施したい | 対象データに対する柔軟な分析を実施する必要があることを踏まえて、 データ接続で、非定型な探索的分析に即応できる、柔軟なデータアクセス環境を作成する |
パート2ー3 |
2種類のデータソース接続方法の機能や仕様について
Spotfire では標準機能として、以下の2種類のデータソース接続方法が提供されています。
- インフォメーションリンク (Information Links)
- データ接続 (Data Connections)
上記データソース接続方法は、それぞれ特徴があり、以下の比較表で示すような違いがあります。
| 項目 | インフォメーションリンク | データ接続 |
| 接続経路 | Spotfire クライアント ▽ Spotfire Server ▽ データソース |
Spotfire クライアント ▽ データソース |
| 主な機能 | SQLクエリの抽象化・管理 | 直接的なデータアクセス |
| 実体 | 事前定義されたデータベースクエリ(SQL) | 接続情報 (ホスト、ポート、認証情報など) |
| 保存場所 | ライブラリー | 分析ファイル内 ライブラリー |
| データの抽象度 | 高い (複雑な結合や計算を事前に定義・抽象化) |
低い (テーブルやビューを直接選択) |
| 柔軟性 | 低い (インメモリのみに対応) (定義されたクエリの範囲内での利用) |
高い (インメモリ、インDB両方に対応) |
| セキュリティ | 強力 (接続の一元化、行レベルセキュリティ※1など) |
限定的 (接続ごとの管理) |
| 作成ツール | Information Designer (Spotfire application for Windowsで起動し、Spotfire Serverに接続) |
Spotfire application for Windows Spotfire application in web(一部の |
| 作成者 |
データエンジニア サーバー管理者 |
データエンジニア サーバー管理者 データアナリスト パワーユーザー |
| 利用者 | 全てのユーザー |
データアナリスト パワーユーザー |
対応データベース |
標準テンプレートに加え、 |
製品標準のコネクタのみ |
接続ドライバの |
Spotfire Serverが構築されてるサーバー |
Spotfire application for Windowsが Web Player、Automation Services |
※1 弊社記事「Row Level Security機能(2)」を参照ください。
接続経路における違いを図示したものが以下のイラストになります。
- インフォメーションリンクは、各クライアントからSpotfire Serverを経由して、間接的にデータベースにアクセスします。
- データ接続は、Spotfire クライアント(Spotfire application for Windowsや Node Manage上に作成したWeb Player、Automation Services)から直接データベースにアクセスします。
具体的なシチュエーションにおけるデータソース接続方法の比較
以下それぞれのシチュエーションにおいて、2種類のデータソース接続方法がどのように利用できるのか、その概要を記載します。
A.データベースに自由にアクセスしたい
分析対象であるデータは、データベース上に保管されている場合、ユーザーがデータベースへログインしアクセスする必要があります。
ここでは、新規のデータベースにアクセスする必要がある場合の違いについて解説します。
インフォメーションリンク
あらかじめ管理者が、利用可能なカラムやテーブルを定義し、ユーザーに公開する形態です。
これにより、ユーザーは公開された要素を組み合わせて分析することはできますが、定義されていない新しいテーブルやカラムを使いたい場合は、管理者に作成を依頼する必要があります。
データ接続
事前に作成する方法以外に、ユーザー自身がSpotfireのUIから、データベースへ直接接続情報を入力してデータを取り込むことも可能です。
これにより、データベースのアクセス権限さえあれば、ユーザーは管理者を介さず、あらゆるテーブルに即座にアクセスできます。
使い分けのポイント:「管理負荷」か「利用しやすさ」か
運用コストと自由度の観点から整理します。
| 比較項目 | インフォメーションリンク | データ接続 |
|---|---|---|
| ユーザーの自由度 | 限定的 (定義済みの範囲内) | 最大 (DB権限の範囲内なら自由) |
| 導入スピード | 管理者の定義作業が必要 | ユーザーが即座に開始することも可能 |
| 接続情報の管理 | サーバー側で隠蔽することも可能 |
UIからの操作の場合 各ユーザーへの共有が必要 |
| 推奨シーン | 使うデータがある程度決まっており、標準化したい場合 |
どのデータを使うか探りながら行う、 探索的な分析の場合 |
B.データベースへの負荷・アクセス数を制御しなければならない
データベースの安定稼働のため、接続セッション数や負荷をコントロールする必要に迫られる場合があります。
ここでは、データベースへの負荷を下げるためにアクセスを制御するための使い分けについて解説します。
インフォメーションリンク
Spotfire Serverがデータベースとの接続を一括管理します。管理者が「データソース」の設定画面で、コネクションプールの同時接続数の上限を明示的に指定できます。
これにより、ユーザーが100人いても、サーバー側で設定した上限数以上のセッションは発生しません。
データ接続
各クライアントPCが個別にセッションを確立するため、同時利用ユーザー数に比例してDBアクセス数が増大します。
使い分けのポイント:「管理の厳密さ」か「利便性」か
アクセス数制御の観点から、以下のように使い分けを整理します。
| 比較項目 | インフォメーションリンク | データ接続 |
|---|---|---|
| 接続の主体 | Spotfire Server (一括) | 各クライアント (分散) |
| 接続数の制限 | 容易・厳密 (設定で上限指定) | 困難 (ユーザー数に依存) |
| DB負荷の傾向 | 予測可能で安定 | 突発的に高まる可能性がある |
| 推奨シーン | 共有DBでセッション数が厳格に制限されている場合 | 制限が緩やかで、ユーザーごとの自由な接続を優先する場合 |
C.データ前処理の再利用性を高めたい
ソースデータが分析に適した形式でない場合、クレンジングや結合などの前処理が必要になります。
ここでは、作成した前処理ロジックを共通資産として管理し、他の分析ファイルでも効率的に再利用するための使い分けについて解説します。
インフォメーションリンク
Spotfire Serverのライブラリー上で定義を管理します。適切な権限を持つユーザーであれば、定義済みのインフォメーションリンクを容易に参照・再利用可能です。
専用の画面(インフォメーションデザイナー)を使用することで、フィルターの作成や、テーブル間の結合、固有値の取得、ピボット処理などをGUI操作で設定できます。また、プロシージャを利用した高度な処理も可能です。
前処理のロジックに変更が生じた際も、サーバー上の定義を修正するだけで、そのリンクを参照している全ての分析ファイルに修正が反映されるため、共通資産としての運用に適しています。
データ接続
データ接続も同様にライブラリー上に保存し、管理することができますが、データ接続自身に設定可能な前処理ロジックはインフォメーションリンクより限られています。
具体的には、データ接続のGUI設定では、カラムの選択や結合設定(制限あり)などが行えるが、フィルター作成やピボットなど複雑な処理は行えません。また、プロシージャも原則として利用できません。
より複雑な処理としてカスタムクエリを指定することも可能ですが、ユーザー自らがSQL文を作成する必要があります。
GUI上の複雑な前処理作成はデータキャンバスで実施することもできますが、データキャンバスは分析ファイル(dxp)内部に保持(埋め込み)されるため、他の分析ファイルからその処理プロセスを直接参照することはできません。
※ データキャンバスはインフォメーションリンクでの接続時にも利用可能です。
参考記事: データキャンバスの使い方
使い分けのポイント:「再利用性」
前処理の管理・運用の観点から、以下のように使い分けを整理します。
| 比較項目 | インフォメーションリンク | データ接続 |
|---|---|---|
|
GUIでの 前処理作成 |
強力 (フィルタ、ピボット、固有値取得も可能) |
限定的 (複雑な処理はカスタムクエリ等で対応) |
| テーブル結合 | 無制限(複雑な複合キーに対応) | 最大3キーまで(GUI設定時) |
|
プロシージャ 利用 |
可能 | 原則不可(DB仕様に依存) |
| 分析ファイルとの分離 | 完全分離(ライブラリーで共通資産化) | 条件付きで分離 (データキャンバス利用時はファイル依存) |
| 推奨シーン | 前処理ロジックが確立されており、全社的な共通データセットとして再利用する場合 | 開発スピードを優先し、特定の分析に閉じた加工を素早く行いたい場合 一時的な試行錯誤や、アドホックな分析を行う場合 |
データソース接続方法の使い分け
以上の2つのデータソース接続方法の特性を踏まえ、以下のような使い分けを推奨します。
1. 初期段階のアドホックなデータ分析
データからインサイトを探索する初期フェーズでは、データ接続を利用します。
現場の多種多様なデータに対して、GUIベースで迅速かつ柔軟にアクセスできるため、試行錯誤を繰り返すアドホックな分析において高い利便性を発揮します。
2. 複数プロジェクトでのデータ加工の共通化
前処理ロジックが確立され、他のデータ分析プロジェクトにおいても同一のデータに対する前処理を適用するフェーズでは、インフォメーションリンクを利用します。
アドホック分析の処理プロセスを、インフォメーションリンクとして再作成・ライブラリーへ保存をすることで、標準化することが可能です。
3. 定型業務向けのダッシュボード運用
製造現場の品質管理やライン監視など、日々の意思決定に利用するフェーズでも、インフォメーションリンクを利用します。
あらかじめ定義されたSQLやフィルタリング条件を介することで、データの整合性と厳密性を担保し、安定したモニタリング環境を構築するのに適しています。
インフォメーションリンクについて
インフォメーションリンクは、Spotfire Serverを介してデータベースにアクセスするとともに、管理者・データエンジニアがサービスとして作成・提供するという位置づけになっています。
例えば、事前にデータベースへの接続設定を行い、作成されたインフォメーションリンクをユーザーに提供・利用するという運用になります。
インフォメーションリンクのシステムの詳細については、以下の弊社記事も参照ください。
インフォメーションサービスプロセスの説明
インフォメーションリンクの機能に関する用語として、3つの「インフォメーション○○」が定義されています。
- インフォメーションリンク : クエリに相当するものであり、ライブラリにファイルとして保存されます。
- インフォメーションデザイナ: クエリエディターに相当するものであり、この機能を用いてインフォメーションリンクを作成します。
- インフォメーションサービス: データベースに実際にアクセスするOS上のプロセスであり、データベースに対してインフォメーションリンクを実行する実体です。
以上を踏まえると、以下のように言うことができます。
インフォメーションデザイナで作成されたインフォメーションリンクは、ライブラリに保存され、インフォメーションサービスによってデータベースにクエリとして送信されます。
先ほど、インフォメーションデザイナは画面操作でクエリを作るためのクエリエディターであると記載しました。
例えば、以下はパート2-2でインフォメーションデザイナを用いてインフォメーションリンクを作成している途中の画面です。
これにより作成されるインフォメーションリンクは、実態としては次のクエリ文となります。
SELECT p1."plan_id" AS "PLANID", p1."plan_date" AS "PLANDATE", p1."product_code" AS "PRODUCTCODE", p1."production_line" AS "PRODUCTIONLINE", p1."planned_quantity" AS "PLANNEDQUANTITY", p2."operator_id" AS "OPERATORID", p2."machine_id" AS "MACHINEID", p2."production_datetime" AS "PRODUCTIONDATETIME", p2."record_id" AS "RECORDID", p2."actual_quantity" AS "ACTUALQUANTITY" FROM "spotfire_manufacturing_db"."public"."production_plans" p1, "spotfire_manufacturing_db"."public"."production_records" p2 WHERE (p1."plan_id" = p2."plan_id") AND <conditions>
このように、上記のようなクエリ文を、SQLの経験がないユーザーの場合でも画面操作によって作成することができるのが、インフォメーションリンクの機能となります。
インフォメーションリンクを利用する際に作成するコンポーネントは、以下の2つです。
以上のうち、実際に分析を行うユーザーが利用可能なコンポーネントはインフォメーションリンクのみです。
そのため、管理者は、抽出対象であるカラムまで定義したデータソース接続環境を整備することになります。
パート2-2では、それぞれのコンポーネントの作成方法を説明します。
データ接続について
データ接続は、Spotfire application for Windowsや Node Manage上に作成したWeb Player、Automation Servicesサービスから直接データベースにアクセスします。
データベースへの接続についてユーザー側に一任されている場合には、適宜ユーザー自身でのデータ接続を実施することも可能です。
データ接続を利用する際に作成するコンポーネントは、以下の2つです。
以上のうち、実際に分析を行うユーザーが利用可能なコンポーネントは、接続データソース、データ接続の両方になります。
そのため、管理者は以下のパターンでデータソース接続環境を整えることができます。
- 接続先としてデータベースだけを定義し、ユーザーが利用時に必要なテーブルデータを選択できる環境
- 接続先としてデータベースのみならずテーブルデータまで定義し、選択する手間を省略して、データを取得することができる環境
パート2-3では、それぞれのコンポーネントの作成方法を説明します。
補足:データロード方式
上記で説明してきた2種類のデータソース接続方法ですが、
これらを実際に利用する際には、接続対象のテーブルデータに対するロード方法(以降、データロード方式)の選択が必要になります。
概要は、パート0 Spotfire用語集のデータロード方式の章を参照ください。
注意点として、データソース接続方法によって、利用可能なデータロード方式が異なります。
・ インフォメーションリンク : インメモリ、オンデマンドロード
・ データ接続 : インメモリ、オンデマンドロード、インDB