概要
この章では、DeepSee の概要、実装ツール、および実装プロセスについて説明します。以下のトピックについて説明します。
DeepSee のシステム要件に関する情報については、このリリース向けのオンライン・ドキュメント "インターシステムズでサポートされるプラットフォームOpens in a new tab" を参照してください。
DeepSee の目的
InterSystems DeepSee の目的は、アプリケーションへのビジネス・インテリジェンス (BI) の埋め込みを可能にすることにより、ユーザがデータに関して高度な質問と回答を行えるようにすることです。アプリケーションには、グラフィカルなウィジェットが含まれるダッシュボードを含めることができます。ウィジェットはデータを表示し、ピボット・テーブルおよび KPI (重要業績評価指標) に従って動作します。ピボット・テーブルでは、ソース値を表示するリストを表示できます。
ピボット・テーブル、KPI およびリストはクエリで、実行時に実行されます。
-
ピボット・テーブルは、ユーザが行うフィルタ選択など、実行時の入力に応答できます。内部的には、DeepSee キューブと通信を行う MDX (多次元式) クエリが使用されます。
キューブは、ファクト・テーブルとインデックスで構成されます。ファクト・テーブルは、一連のファクト (行) で構成され、各ファクトは、ベース・レコードに対応します。例えば、ファクトを患者や診療科に対応させることができます。また、DeepSee は、一連のレベル・テーブルも生成します。すべてのテーブルが動的に維持されます。
構成および実装に応じて、DeepSee はトランザクション・テーブルの変更を検出し、必要に応じてファクト・テーブルに反映させます。
ユーザがアナライザでピボット・テーブルを作成すると、DeepSee は、MDX クエリを自動生成します。
-
KPI も実行時のユーザ入力に反応させることができます。内部的には、MDX クエリ (DeepSee キューブの場合)、または SQL クエリ (任意のテーブルの場合) を使用します。
いずれの場合も、クエリは手動で作成することも、別の場所からコピーすることもできます。
-
リストには、ユーザが選択したピボット・テーブルの行に使用されたソース・レコードから選択された値が表示されます。内部的には、リストは SQL クエリです。
使用するフィールドを指定して、実際のクエリを DeepSee で生成させることができます。また、クエリ全体を指定することもできます。
ダッシュボードには、アクションを起動するボタンやその他のコントロールを含めることができます。アクションによって、フィルタの適用または設定、ダッシュボードの更新、他のダッシュボードや URL のオープン、カスタム・コードの実行などが可能です。DeepSee では一連の標準アクションが提供され、ユーザはカスタム・アクションを定義できます。
アプリケーションに追加される DeepSee コンポーネント
DeepSee をアプリケーションに追加するには、以下のコンポーネントの一部またはすべてを追加します。
-
データ・コネクタ・クラス。データ・コネクタを使用すると、任意の SQL クエリをキューブまたはリストのソースとして使用できます。
-
キューブ定義クラス。キューブは、DeepSee のピボット・テーブル内で使用される要素を定義し、対応するファクト・テーブルおよびインデックスの構造やコンテンツを制御します。
キューブ定義は、その基礎として使用するトランザクション・クラス (または、データ・コネクタ) をポイントします。
使用できるキューブの数に制限はありません。また、指定のクラスを複数のキューブの基礎として使用できます。
DeepSee は、キューブごとにファクト・テーブル・クラスおよびその他のクラスを生成し、データを入力します。
-
サブジェクト領域クラス。
サブジェクト領域は、主にフィルタ処理されたキューブです (サブジェクト領域には、必要に応じて、フィルタおよびキューブ定義のさまざまな部分に対するオーバーライドが含まれます)。DeepSee では、キューブとサブジェクト領域を互換的に使用できます。
-
KPI 定義クラス。
KPI は、カスタム・クエリ (特に、ユーザ入力に基づいて実行時に決定されるクエリ) が必要な場合に定義します。
また、カスタム・アクションが必要な場合にも KPI を定義します。これは、アクションが KPI クラスに含まれるためです。
-
ピボット・テーブル。これらはドラッグ・アンド・ドロップ操作により作成します。DeepSee は、基礎となる MDX クエリを生成します。
-
ダッシュボード。基礎となるクエリを実行して結果を表示することで、ピボット・テーブルや KPI を表示します。
-
ユーザ・ポータル。ピボット・テーブルやダッシュボードを表示します。
推奨アーキテクチャ
他の箇所でも述べたとおり、一般的に高可用性手法の一環としてミラーリングの使用をお勧めします。大規模なアプリケーションの場合は、以下の図のように、ミラー・サーバ上にあるアプリケーション・データを DeepSee キューブの基礎とすることをお勧めします。
具体的には以下のとおりです。
-
コードとデータが別々のデータベースに存在するようにアプリケーションを定義します。これは必須ではありませんが、一般的なアーキテクチャです。
-
アプリケーション・データがミラー・サーバにミラーリングされるようにミラーリングを設定します。
-
DeepSee がアプリケーション・データにアクセスできるように、一部またはすべてのアプリケーション・クラスとその他のコードもミラー・サーバにコピーします。
一般に、アプリケーション・コードをミラーリングする必要はありません。
-
ミラー・サーバ上に、DeepSee キューブの定義と (必要に応じて) データを格納するデータベースを作成します。
必要に応じて、DeepSee ファクト・テーブルやその他の大容量 DeepSee データを格納する別のデータベースを作成します。DeepSee で使用するグローバルについては、以下の章で説明します。
-
ミラー・サーバ上で、DeepSee を実行する場所となるネームスペースを定義します。このネームスペースで、このサーバ上のアプリケーション・データ、アプリケーション・コード、DeepSee キューブ定義、および DeepSee データにアクセスするためのマッピングを定義します。
小規模なアプリケーションやデモについては、すべてのコードおよびデータを同じデータベースに格納してもかまいません。
DeepSee の災害復旧に関する推奨事項は、"DeepSee と災害復旧" を参照してください。
主な実装手順
実装プロセスには、以下の手順が含まれます。
-
DeepSee を使用するネームスペースで Web アプリケーションがまだ定義されていない場合は、そのネームスペースに対して Web アプリケーションを定義します。“初期設定の実行” の章を参照してください。
-
必要に応じて、パフォーマンス向上のために、他のデータベースから DeepSee グローバルをマップします。
“初期設定の実行” の章を参照してください。
-
キューブおよびオプションのサブジェクト領域を作成します。このプロセスには以下の手順が含まれます。これらの手順は必要に応じて繰り返してください。
-
1 つ以上のキューブを定義します。この手順では、DeepSee アーキテクト、スタジオ、またはその両方を使用します。
-
キューブを構築します。ここでは、アーキテクトまたはターミナルを使用します。
-
DeepSee アナライザを使用してキューブを表示し、検証します。
キューブを定義したら、それらのキューブに基づいて任意のサブジェクト領域を定義します。
キューブとサブジェクト領域の作成の詳細は、"DeepSee モデルの定義" を参照してください。
アナライザの使用方法の詳細は、"DeepSee アナライザの使用法" を参照してください。
-
-
必要に応じて、KPI を作成します。"DeepSee 上級モデリング・ガイド" を参照してください。
-
必要に応じて、カスタム・アクションを作成します。“カスタム・アクションの定義” の章を参照してください。
-
キューブを最新の状態に維持するために必要な変更を加えます。その方法は、データがどの程度新しい必要があるのかと、パフォーマンスに関する考慮事項によって異なります。
“キューブの最新状態の維持” の章を参照してください。
-
ピボット・テーブルとダッシュボードを作成します。"DeepSee アナライザの使用法" および "DeepSee ダッシュボードの作成" を参照してください。
-
配置を容易にするために、ピボット・テーブルとダッシュボードを Caché クラスにパッケージ化します。
“クラスへの DeepSee 要素のパッケージ化” の章を参照してください。
-
アプリケーションからダッシュボードへのリンクを作成します。“アプリケーションからダッシュボードへのアクセス” を参照してください。
このプロセスにおいて適切な時点で、以下の操作が必要となる場合もあります。
-
データ・コネクタの作成 — “データ・コネクタの定義” を参照してください。
-
設定の構成 — “設定の構成” を参照してください。
-
ローカライズの実行 — “ローカライズの実行” を参照してください。
-
ダッシュボードで使用するカスタム・ポートレットの定義 — “ダッシュボードで使用するポートレットの作成” を参照してください。
-
その他の開発タスクの実行 — “その他の開発作業” を参照してください。
-
セキュリティの設定 — “セキュリティの設定” を参照してください。
実装ツール
実装プロセスでは、以下のツールを使用します。
-
管理ポータルの DeepSee セクションから使用できるツール :
-
アーキテクト — これを使用して、キューブおよびサブジェクト領域を定義します。また、キューブのコンパイルや構築 (およびサブジェクト領域のコンパイル) もできます。
-
アナライザ — これを使用して、モデルの検証時にキューブおよびサブジェクト領域を調べます。後で、ピボット・テーブルの作成に使用します。
-
ユーザ・ポータル — これを使用して、ダッシュボードを定義します。
-
クエリツール — これを使用して、MDX クエリを作成し、それらのクエリ・プランを表示します。
-
フォルダマネージャ — これを使用して、主に、ピボット・テーブルとダッシュボードをエクスポートし、それらの定義を Caché クラスにパッケージ化できるようにします。
また、このツールを使用して、リソースをフォルダに関連付けることもできます。
-
[設定] オプション — これを使用して、ユーザ・ポータルの外観や動作を指定したり、ダッシュボードで使用可能な変数を定義します。
-
DeepSee ログ — これを使用して、そのネームスペースの DeepSee 構築ログを表示します。
-
-
スタジオ — これを使用して、高度なキューブ機能、キューブ要素で使用されるメソッドやルーチン、およびキューブ・クラス内のコールバック・メソッドを定義します。また、このツールを使用して、KPI も定義できます。
-
ターミナル — これを使用して、キューブを再構築したり、メソッドをテストします。
-
MDX シェル (ターミナル内で動作) — これを使用して、キューブやサブジェクト領域を調べたり、カスタム MDX クエリを作成してその結果を表示します。
-
管理ポータルのその他のセクション — これらを使用し、必要に応じて、グローバルのマップ、DeepSee で使用するリソース、ロール、およびユーザの定義、および DeepSee ファクト・テーブルの検証を行います。
-
ユーティリティ・メソッド :
-
%DeepSee.UtilsOpens in a new tab には、キューブの構築、キューブの同期化、セル・キャッシュのクリア、およびその他のタスクに使用できるメソッドが含まれています。
-
%DeepSee.UserLibrary.UtilsOpens in a new tab には、フォルダマネージャでサポートされるタスクをプログラムで実行する場合に使用できるメソッドが含まれています。
-
-
データ・コネクタ・クラス (%DeepSee.DataConnectorOpens in a new tab) — これを使用して、DeepSee キューブおよびリストで任意の SQL クエリを使用できるようにします。
-
結果セット API (%DeepSee.ResultSetOpens in a new tab) — これを使用して、MDX クエリをプログラムによって実行し、その結果にアクセスします。
使用可能なサンプル
SAMPLES データベースには、HoleFoods と Patients のパッケージに 2 つの DeepSee サンプルがあります。これらのサンプルには、キューブ定義、サブジェクト領域、KPI、データ・コネクタ、およびプラグインが含まれています。また、ピボット・テーブルおよびダッシュボードのサンプルも含まれています。