Power BI
データソースへの接続
AtScale に接続するために、SQL Server Analysis Services データベースを使用します。 Power Query エディターで開いてみましょう。 これを行うには、 Home から Transform Data を選択します。
表示されたウィンドウで、Home を選択し、New Source を展開して Analysis Services を選択します。
InterSystems IRIS BI (DeepSee) は、トランザクションデータのリアルタイム分析を可能にするビジネスインテリジェンス(BI)テクノロジー製品であり、トランザクションアプリケーションへの組み込み用途に最適となるよう設計されています。
AtScale に接続するために、SQL Server Analysis Services データベースを使用します。 Power Query エディターで開いてみましょう。 これを行うには、 Home から Transform Data を選択します。
表示されたウィンドウで、Home を選択し、New Source を展開して Analysis Services を選択します。
皆さん、こんにちは。
iris-analytics-パッケージには、「企業が自社のソフトウェアで InterSystems Analytics の サポートをいかに簡単、そしてシンプルに利用できるかを示す」意図があります。
新しいシンプルなソリューションを作成したり、OpenExchange を使用して既存のソリューションを改善したりすることもできます。
InterSystems IRISにアップグレードしている企業のほとんどは、ツールが提供するすべての機能を活用しています。
このコンテストでの私のもう一つのターゲットは、インターシステムズを長く利用していても、自分たちがアクセスしている可能性をフルに活用していない企業です。
このプロジェクトは、他のプロジェクトをベースにしてインスピレーションを得て作成しました。ありがとう @Evgeny Shvarov @Guillaume Rongier @Peter Steiwer
それらのプロジェクトが一緒になって、このウィザードになった。
メインページはシンプルで、そこに至るまでのプロセスがわかりやすい。
ウィザードを適切に使用するためのフィールドがいくつかあります。
開発者の皆さん、こんにちは!
InterSystems IRIS でアナリティクスソリューションを構築するにはどのような方法があるでしょうか。

最初に、アナリティクスソリューションは何かについて確認しようと思いますが、とても幅広いテーマになってしまうので、Analytics コンテストで発表できるソリューションに限定してご紹介します。
以下、モニタリング、インタラクティブアナリティクス、レポーティングの3種類のアナリティクスソリューションについてご紹介します。
モニタリング
一般的なモニタリングソリューションは、アクティブに更新される KPI を備えたオンラインダッシュボードで構成されています。
モニタリングの主な使用例としては、新しいデータの KPI を常に視覚的に観察し、緊急時に対応することです。
インタラクティブアナリティクス
このソリューションはフィルタやドリルダウンが行えるインタラクティブなダッシュボードのセットを想定しています。
主なユースケースは、グラフや表のデータを視覚化した上で、フィルタやドリルダウンを使用してデータを探しだし、ビジネス上の意思決定を行うことです。
レポーティング
レポーティングソリューションは、グラフやテキスト形式のデータを事前にデザインされたフォームで提供する HTML や PDF ドキュメントの形式で、静的(通常)レポートを提供し、メールで送付することもできます。
レポーティングシステムの主なユースケースは、ビジネスにとって重要な製品やプロセス、サービス、セールスなどの状況を説明するレポートを一定期間に取得することです。
このようなソリューションを構築するために、InterSystems 製品をどのように利用できるでしょうか。
以下の項目で議論してみましょう。
インスタンスのデータに基づくビジネスインテリジェンスを実装しようと計画中です。 DeepSee を使うには、データベースと環境をどのようにセットアップするのがベストですか?
以下の記事は、DeepSee の基本的なアーキテクチャを実装するためのガイドです。 この実装には、DeepSee キャッシュ用のデータベースと DeepSee 実装と設定用のデータベースが含まれています。
以下の記事では、DeepSee の中程度の複雑さのアーキテクチャ設計を説明します。 前の例で説明したとおり、この実装には、DeepSee キャッシュや DeepSee の実装と設定用の個別のデータベースが含まれています。 この記事では、同期に必要なグローバルの保存用と、ファクトテーブルとインデックスの保存用に、2 つの新しいデータベースを紹介します。
DeepSee BI ソリューションのユーザーインターフェース(UI)を配布するにはいくつかのオプションがあります。 最も一般的には以下の手法があります。
最初の手法はコーディングを行わずに比較的素早く BI ダッシュボードを構築できるためお勧めですが、事前設定のウィジェットライブラリに限られます。これを拡張することはできますが、大きな開発の手間がかかります。
2 つ目の手法には、任意の総合 js フレームワーク(D3,Highcharts など)を使用して DeepSee データを可視化する手段がありますが、ウィジェットとダッシュボードを独自にコーディングする必要があります。
今日は、上の 2 つを組み合わせて Angular ベースの DeepSee ダッシュボード用 Web UI を提供するもう 1 つの手法をご紹介します。DeepSee Web ライブラリです。
コミュニティの皆さん、こんにちは!
DeepSee Web についてのパート 2 では、DSW のカスタマイズオプションについて説明します。
カスタマイズには、ウィジェットのカスタマイズとダッシュボードパネルのカスタマイズの 2 種類があります。
開発者コミュニティ分析におけるダッシュボードのカスタマイズ例。
開発者コミュニティのみなさん、こんにちは。
IRISには組み込みのビジネスインテリジェンス機能であるIRIS BIが備わっております。
ただし、使い方がよく分からないということから利用に至ってない方もいらっしゃるのではないでしょうか。
幸いなことに、オンラインドキュメントの中にはIRIS BIの開発者向けチュートリアルのページがあり、それに沿って作業するとIRIS BIの簡単な概要を理解することができます。
ですので、これから数回に分けてチュートリアルを実行した結果を紹介し、IRIS BIの機能や使い方について知っていただければと思います。
初回は、チュートリアル用のネームスペースにサンプルのデータやキューブなどを作成する準備作業について説明します。
なお、使用した環境ですが、Windows PC(OS: Windows 10)にIRIS 2024.1のコミュニティエディション(コンテナ版)で行っております。
チュートリアルの最初のページは「準備」です。チュートリアルを進めるためのネームスペース作成やサンプルデータの投入を行います。
必要なファイルはgithubに公開されている Samples-BI から取得します。このページのREADMEに手順(Step-by-step Installation)が記されてますので、それに沿いながら進めます。
以下は、InterSystems IRIS で使用するデータベース、ネームスペース、および Web アプリケーションを作成できる ObjectScript スニペットです。
set currentNS = $namespace
zn "%SYS"
write "Create DB ...",!
set dbName="testDB"
set dbProperties("Directory") = "/InterSystems/IRIS/mgr/testDB"
set status=##Class(Config.Databases).Create(dbName,.dbProperties)
write:'status $system.Status.DisplayError(status)
write "DB """_dbName_""" was created!",!!
write "Create namespace ...",!
set nsName="testNS"
//グローバルの DB
set nsProperties("Globals") = dbName
//ルーチンの DB
set nsProperties("Routines") = dbName
set status=##Class(Config.Namespaces).Create(nsName,.nsProperties)
write:'status $system.Status.DisplayError(status)
write "Namespace """_nsName_""" was created!",!!
write "Create web application ...",!
set webName = "/csp/testApplication"
set webProperties("NameSpace") = nsName
set webProperties("Enabled") = $$$YES
set webProperties("IsNameSpaceDefault") = $$$YES
set webProperties("CSPZENEnabled") = $$$YES
set webProperties("DeepSeeEnabled") = $$$YES
set webProperties("AutheEnabled") = $$$AutheCache
set status = ##class(Security.Applications).Create(webName, .webProperties)
write:'status $system.Status.DisplayError(status)
write "Web application """webName""" was created!",!
zn currentNS
IRIS BIチュートリアル試してみたシリーズの2回目です。
今回は、前回の作業でセットアップしたサンプルキューブやデータを用いてアナライザを操作します。
アナライザは、IRIS BIのキューブ等を基にピボットテーブルを作成する機能です。Excelのピボットテーブルをご存知でしたらイメージがつきやすいかもしれません。
では、早速はじめていきたいと思います。
まずはアナライザ画面を開きます。管理ポータル画面のメニューから、 Analytics → アナライザ を選択します。
以下のような画面が表示されます。アナライザ画面は大きく3つの領域から成り立っています。
まずは、Patientsキューブを使ってモデル・コンテンツ領域を詳しく見ていきます。
モデル・コンテンツ領域にPatientsキューブが開かれていない場合には、領域左上のキューブ型のアイコンをクリックするとキューブ選択のダイアログが開きますので、そこからPatientsキューブを選択します。
以下の記事では、DeepSee のより柔軟なアーキテクチャ設計の概要を説明します。 前の例で説明したとおり、この実装には、DeepSee キャッシュや DeepSee の実装と設定、および同期グローバル用の個別のデータベースが含まれています。 この例では、DeepSee インデックスを保存するための新しいデータベースを紹介します。 DeepSee インデックスがファクトテーブルや次元テーブルとともにマッピングされないように、グローバルマッピングを再定義します。
DeepSee で階層を設計する場合、子メンバーに 1 つの親しか指定できません。 子が 2 つの親に対応する場合には、信頼性のない結果が得られることになります。 類似する 2 つのメンバーが存在する場合、そのキーがそれぞれ一意になるように変更する必要があります。 これが起きる場合とそれを回避する方法について、2 つの例を見ながら説明します。
(アメリカには)Boston と言う都市がある州がたくさんあります。 私のサンプルデータでは、Boston, MA(マサチューセッツ州ボストン)と Boston, NY(ニューヨーク州ボストン)のレコードがあります。 次元は次のように定義されています。
私の場合、City(都市)と State(州)は単純な文字列です。 キューブにビルドすると、"MA" と "NY" の2 つの州メンバー、"Boston" と "Boston" の 2 つの都市メンバーが得られます。 Boston が 1 つではなく 2 つあるのはなぜでしょうか。 メンバーには 2 つの親メンバーを指定できないため、親ごとに異なるメンバーを作成する必要があります。 残念ながら、1 つのキーが 2 つの異なるメンバーを持っているため、この時点で「不適切な階層」状態になっています。
これを修正するには、キーを一意にしなければなりません。
以下の記事は、この連載の締めくくりとして、完全に柔軟なアーキテクチャの例で確認されたすべてのデータベースのリストを掲載しています。
IRIS BIチュートリアル試してみたシリーズの3回目です。
チュートリアルの「キューブ要素の概要」ページの続きを行います。
前回同様、アナライザを操作しながらキューブの要素について説明していきます。
では、早速はじめていきましょう。
Allメンバとは、ディメンジョンの中の特殊なメンバ、とでも言えばよいでしょうか。
チュートリアルでは
「All メンバは、ベース・クラスの全レコードを参照します。」
と表現しています。分かったような、分からないような。。
実際に使ってみて、どのようなものか理解を深めましょう。
Patientsキューブでは、AgeD ディメンジョンの中に All Patients という名前で作成されています。
画面左上の [新規] ボタンをクリックして、新しいピボットテーブルを作成します。
AgeD ディメンジョンの Age Group レベルを [行] に指定し、メジャーの Patient Count、Avg Age、Avg Test Score を [メジャー]に指定します。
※注意:サンプルデータはランダムに作成されるため、こちらの画面表示とみなさまの実行結果は一致しないことがあります。
では、この状態でピボット・オプション・ボタンをクリックします。画面上側にある、スパナのイラストのアイコンです。
IRIS BIチュートリアル試してみたシリーズの7回目です。
今回も、「キューブ定義の拡張」ページのトピックになります。では、早速はじめていきましょう。
コレクションを使用してディメンジョンのレベルを作成します。
コレクションって何?という方は、こちらのオンラインドキュメントを参考にしてください。リストや配列など、同じタイプの要素が複数含まれるオブジェクト・クラスのことを指します。
今回のキューブのベースとなる BI_Study.Patient テーブルにある2つのフィールド、Allergies と DiagnosesAsLB を使用します。各々のデータタイプを確認してみましょう。システムエクスプローラ → SQL から BI_Study.Patient テーブルのフィールド情報を確認します。
Allergies フィールドは PatientAllergy クラスを参照し、DiagnosesAsLB フィールドはリスト型で定義されています。
では、まず DiagnosesAsLB に対応するレベルを作成します。アーキテクト画面から Tutorial キューブを開きます。
画面上部の [要素を追加] リンクから DiagD という名前のディメンジョンを作成します。要素選択は データ・ディメンジョン を選択します。
この「DeepSee トラブルシューティングガイド」は、DeepSee プロジェクトの問題を追跡して修正する支援を提供することを目的としています。
このガイドラインに従って問題を修正できない場合でも、少なくとも DeepSee サポートに WRC の問題を提出し、すべての証拠を提供するのに十分な情報を得ることができます。この情報によって、一緒に調査を続け、より迅速に解決することが可能となります。
ご注意ください: 特定のアクションやコマンドによってどのような結果がもたらされるかがよくわからない場合は、実行しないでください。本番システムに影響を与える可能性があります。 この場合は、サポートセンターにお問い合わせください。
左から右の操作列に進むと、このガイドを最も簡単に活用できます。
| 問題の領域 | 発生事項 | 分析 | 解決方法 |
|---|---|---|---|
| ビルドの問題 | メッセージのエラーを修正 | ||
|
ソーステーブルの行 よりも少ないレコー ドが構築される |
|||
| maxfacts が使用されているかを確認 | maxfacts を削除 | ||
| ^DeepSee. |
IRIS BIチュートリアル試してみたシリーズの5回目です。
今回も、前回同様チュートリアルの「キューブの作成」ページになります。
前回はキューブを作成し、そのキューブを使用していくつかのピボットテーブルを作成しました。
その中で気になった点を今回は修正していきます。では、はじめていきましょう。
前回の作業の中で、ピボットテーブル作成時に気になった点は以下のものがありました。
では、これらを解消していきましょう。アーキテクト画面で Tutorial キューブを開きます。
キューブが開いたら、 Age レベルをクリックし、続いて [要素を追加] をクリックします。
要素名に AgeSort と入力し、要素選択は プロパティ を指定します。
AgeSort プロパティができました。
では、AgeSort プロパティの詳細設定を変えます。詳細ペインの [表現] に以下の式を設定します。
$CASE$LENGTH%source.AgeAgeが1ケタの場合は、頭にゼロを付けるという式ですね。
Pandas は単に人気のあるソフトウェアライブラリだけではありません。 これは、Python データ分析環境の基礎でもあります。 その単純さとパワーで知られており、データの準備と分析の複雑さをより扱いやすい形態に変換する上で不可欠な多様なデータ構造と関数が備わっています。 これは、主要なデータ管理および分析ソリューションである InterSystems IRIS プラットフォームのフレームワーク内で、主要評価指標(KPI)やレポート作成用の ObjectScript などの特殊な環境に特に関連しています。
データの処理と分析の分野において、Pandas はいくつかの理由により際立っています。 この記事では、それらの側面を詳細に探ります。
ここでは、Pandas を使用する様々なメリットについて深く掘り下げます。 直感的な構文、大規模なデータセットの効率的な処理、および異なるデータ形式のシームレスな操作などが含まれます。 Pandas を既存のデータ分析ワークフローに統合する容易さも、生産性と効率を強化する大きな要因です。
Pandas には、単純なデータ集計から複雑な変換まで、日常的なデータ分析タスクを処理できる十分な汎用性が備わっています。
IRIS BIチュートリアル試してみたシリーズの6回目です。
今回からは、全6ページのうちの4ページ目「キューブ定義の拡張」に入っていきます。
前回まではメジャーやディメンジョンなど、基本的なキューブの構成要素を作成しましたが、さらにキューブを使いやすくするための機能について学んでいきます。
では、早速はじめましょう。
前回までの作業で作成した HomeD ディメンジョンに階層となるレベルを追加します。3回目の記事で BirthD ディメンジョンで体験したドリルダウン・ドリルアップの機能を使えるようにするものです。
キューブを変更しますので、アーキテクト画面に行き、Tutorial キューブを開きます。開いたら、画面左側のクラス・ビューワで HomeCity を展開します。
HomeCity の配下にある PostalCode を追加します。HomeD ディメンジョンの H1 階層の上にドラッグ&ドロップします。
そうしますと、PostalCode がレベルとして追加されます。「level 2」となっていますね。
レベル名を ZIP Code に変更します。詳細ペインのところで書き換えてください。
書き換えたら、キューブをコンパイルします。画面上部の [コンパイル] ボタンから実行します。
コンパイルが完了したら、続いてビルドを行います。
IRIS BIチュートリアル試してみたシリーズの9回目です。
今回は、チュートリアル全6ページのうちの5ページ目、「サブジェクト領域の作成」について試していきます。
「サブジェクト領域」という新しい概念が出てきますが、どんなものかを触りながら理解していきます。
では、早速はじめていきましょう。
最初に、サブジェクト領域とは何かを理解するところから始めましょう。チュートリアルでは以下のような説明があります。
”サブジェクト領域は、オプションによる項目名のオーバーライドを持つサブキューブです。サブジェクト領域を定義すると、セキュリティ上の理由およびその他の理由により、より小さなデータ・セットに焦点を当てることができます。”
うーん、分かったような、分からないような。。実例を基に説明してみます。
6回目の記事で郵便番号と市区町村の階層を作成しました。郵便番号→市区町村という階層構造になっていましたよね。以下の図が、郵便番号と市区町村の関連を表したものです。
現状、チュートリアルで使用しているキューブには上記5つの郵便番号を持つデータが格納されています。
これを、特定の郵便番号のデータだけを扱えるサブセットに分割したい要件があったとします。例えば配達員の担当地域ごとに分割するとか。
IRIS BIチュートリアル試してみたシリーズの8回目です。このシリーズもだいぶ長くなってきました。
今回も、前回に引き続きチュートリアルの「キューブ定義の拡張」ページの内容です。
最後に残った2つのトピックについて進めていきます。では、はじめていきましょう。
タイトルには「置換」とありますが、ディメンジョンのレベルを集約した新しいレベルを作成する方法、と理解していただくのがよいかもしれません。
2回目の記事でちょっとだけ触れた Age Group と Age Bucket レベルを作成していきます。
まず Age Group レベルを作成します。こちらは以下のような3つのグルーピングになります。
アーキテクト画面を開き、Tutorial キューブを開きます。
新しいレベルを作成しますので、AgeD ディメンジョンの Age レベルをクリックし、その後に [要素を追加] リンクをクリックします。
要素名に Age Group、要素選択に レベル を指定します。
Age Groupレベルが追加されました。
詳細ペインで Age Group レベルの設定を変更します。[プロパティ] に Age と入力し、[範囲表現] の虫眼鏡アイコンをクリックします。
IRIS BIチュートリアル試してみたシリーズの4回目です。
今回からはチュートリアルの3ページ目、「キューブの作成」に沿って進めていきます。
では、早速はじめていきたいと思います。
キューブの作成はアーキテクト画面から行います。
管理ポータル画面のメニューで、 Analytics → アーキテクト を選択します。
アーキテクト画面が開きました。1回目の記事の作業のときに Patientsキューブを開いたので、私の環境では再びPatientsキューブが表示されました。
新しいキューブを作成しますので、[新規] ボタンをクリックします。
ダイアログが開いたら、以下のように指定していきます。
ソースクラスの指定は、[参照] ボタンを押してダイアログから行うこともできます。
最後に [OK] をクリックしますと、まっさらな画面が表示されます。
もし、以下のようなダイアログが表示されたら、[Leave] を選択してください。
アーキテクト画面ですが、3つのエリアで構成されています。左側から順に、クラス・ビューワ、モデル・ビューワ、詳細ペインです。
IRIS BIチュートリアル試してみたシリーズの11回目です。ついに今回が最終回になります。
最終回のトピックは「ピボット・テーブルおよびダッシュボードのエクスポートとパッケージ化」です。これまでに作成したピボットテーブルやダッシュボードをエクスポートして他の環境などに移送するためのテクニックを学びます。
では、早速はじめていきましょう。
フォルダマネージャ画面から操作します。管理ポータル画面から Analytics → 管理 → フォルダマネージャ と選択します。
フォルダマネージャ画面が開き、作成済みのフォルダ、ピボットテーブル、ダッシュボードが一覧表示されます。これまでに作成してきた Tutorial フォルダと、その中のピボットテーブルやダッシュボードも存在します。
では、この一覧にある Sample Dashboard の左側にあるチェックボックスにチェックを付けます。画面左側の [詳細] の表示が変わります。
このダッシュボードで使用している2つのピボットテーブルが依存関係にあることが表示されます。
では、その2つのピボットテーブルにもチェックを付け、3つのアイテムが選択された状態にします。
IRIS BIチュートリアル試してみたシリーズの10回目です。
今回はチュートリアル最後のページ「ピボット・テーブルおよびダッシュボードの作成とパッケージ化」についてです。
これまでアーキテクトとアナライザを使用してきましたが、今回はユーザポータル画面を使ってダッシュボードを作成していきます。
では、早速はじめていきましょう。
ダッシュボードはピボットテーブルをソースデータとして作成することができます。ですので、まずはソースとなるピボットテーブルを作成します。
アナライザ画面を開き、Tutorial キューブを開きます。
AgeD ディメンジョン内の Age Group レベルを [行] にドラッグ&ドロップし、続いて Age Bucket レベルを Age Group レベルの矢印記号 ↘ のところにドラッグ&ドロップします。
そうしますと、Age Group レベルの隣に Age Bucket レベルが表示されます。[行] の表示も、Age Bucket レベルが一段下げられた形で表示されています。
※注意:サンプルデータはランダムに作成されるため、こちらの画面表示とみなさまの実行結果は一致しないことがあります。
さらに Count メジャーを [列] に追加し、All Patients メンバを [行] に追加します。