良くわかる!deepsee - intersystems · 良くわかる!deepseeハンズオンセミナー...

51
良くわかる!DeepSee ハンズオンセミナー 演習補足資料(2011FT2 ベース)-V1.0 1 良くわかる!DeepSee ハンズオンセミナー 演習補足資料 2011FT2 ベース) V1.0

Upload: others

Post on 11-Oct-2020

1 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: 良くわかる!DeepSee - InterSystems · 良くわかる!DeepSeeハンズオンセミナー 演習補足資料(2011FT2ベース)-V1.0 3 3. ステップ①-演習3(1) 次元:、階層:、レベル:の追加

良くわかる!DeepSee ハンズオンセミナー 演習補足資料(2011FT2 ベース)-V1.0

1

良くわかる!DeepSee ハンズオンセミナー

演習補足資料 (2011FT2 ベース)

V1.0

Page 2: 良くわかる!DeepSee - InterSystems · 良くわかる!DeepSeeハンズオンセミナー 演習補足資料(2011FT2ベース)-V1.0 3 3. ステップ①-演習3(1) 次元:、階層:、レベル:の追加

良くわかる!DeepSee ハンズオンセミナー 演習補足資料(2011FT2 ベース)-V1.0

2

目次

はじめに ............................................................................................................. 6

1. 本コースで使用する演習環境 .......................................................................... 6

2. 演習で利用するクラス ................................................................................... 7

3. DeepSee のモデル定義 ............................................................................... 8

Let’s Try! サンプルキューブで確認 ............................................................................ 9

1. ソースクラスのデータ確認 .............................................................................. 9

2. キューブの確認:スタジオ編 ........................................................................... 11

3. キューブの確認:管理ポータル内アーキテクト画面 .................................................. 12

4. アナライザーの起動 .................................................................................... 15

ステップ① .......................................................................................................... 16

1. キューブクラスの作成(スタジオでの作成) ........................................................... 17

2. <measure>の追加 .................................................................................. 20

3. <dimension><hierarchy><level>の追加 .................................................... 21

4. キューブのビルド ....................................................................................... 24

5. アナライザーで分析 .................................................................................... 25

ステップ② .......................................................................................................... 26

1. rangeExpression(範囲指定)の追加 .............................................................. 27

2. sourceExpression の追加 .......................................................................... 28

3. 時系列の<dimension>追加 ........................................................................ 28

4. 詳細リストの追加 ....................................................................................... 29

5. アナライザー画面で分析 ............................................................................... 30

ステップ③ .......................................................................................................... 33

1. クエリツールで MDX 実行 ............................................................................. 34

2. MDX シェルで実行 ..................................................................................... 35

3. %DeepSee.ResultSet でクエリ実行 .............................................................. 36

オプション演習:ステップ④ ダッシュボードの作成 ............................................................. 39

1. アナライザーでピボットテーブルを保存 ............................................................... 39

2. ダッシュボードの作成 .................................................................................. 40

3. ダッシュボードへウィジェットを追加 ................................................................... 41

付録:アーキテクト画面を利用したデータモデルの定義 ........................................................ 44

1. ステップ①-演習 1:キューブの作成(アーキテクトでの作成) ....................................... 44

2. ステップ①-演習 2 メジャー:<measure>の追加 ............................................... 45

Page 3: 良くわかる!DeepSee - InterSystems · 良くわかる!DeepSeeハンズオンセミナー 演習補足資料(2011FT2ベース)-V1.0 3 3. ステップ①-演習3(1) 次元:、階層:、レベル:の追加

良くわかる!DeepSee ハンズオンセミナー 演習補足資料(2011FT2 ベース)-V1.0

3

3. ステップ①-演習 3(1) 次元:<dimension>、階層:<hierarchy>、レベル:<level>の追加

46

4. ステップ①-演習 3(2) レベル:<level>の順序入れ替え ......................................... 46

5. ステップ①-演習 3(3) 次元:<dimension>の追加 .............................................. 47

6. ステップ①-演習 4:キューブのビルド ................................................................. 47

7. ステップ②-演習 1:範囲指定の追加 ................................................................. 48

8. ステップ②-演習 2 式:sourceExpression の追加 ............................................. 49

9. ステップ②-演習 3: 時系列の次元:<dimension> 追加 ........................................ 50

10. ステップ②-演習 4:リスティング(詳細リスト)の追加 ................................................ 51

Page 4: 良くわかる!DeepSee - InterSystems · 良くわかる!DeepSeeハンズオンセミナー 演習補足資料(2011FT2ベース)-V1.0 3 3. ステップ①-演習3(1) 次元:、階層:、レベル:の追加

良くわかる!DeepSee ハンズオンセミナー 演習補足資料(2011FT2 ベース)-V1.0

4

図表目次

図 1 サンプル XML ファイルのインポート ................................................................. 6

図 2 HoleFoods クラス定義 .............................................................................. 7

図 3 モデルクラスで利用するソースプロパティ ........................................................... 8

図 4 ソースプロパティで利用する HoleFoods のプロパティ ............................................ 8

図 5 管理ポータル:システムエクスプローラー:SQL ...................................................... 9

図 6 HoleFoods.Transaction クラスのデータ参照 .................................................... 10

図 7 HoleFoods00 スタジオでの定義確認 ............................................................ 11

図 8 管理ポータル:ネームスペースの変更 .............................................................. 12

図 9 アーキテクト画面:キューブを開く(HoleFoods00) ............................................... 13

図 10 アーキテクト画面:HoleFoods00 キューブ ...................................................... 14

図 11 ソースプロパティの確認(HoleFoods00 の Product Category) ............................ 14

図 12 管理ポータル:アーキテクト画面の起動 ........................................................... 15

図 13 管理ポータル:アーキテクト画面での分析 ........................................................ 15

図 14 HoleFoods2 キューブの作成(スタジオ) ........................................................ 17

図 15 Cube.HoleFoods2 クラスの DependsOn 属性の追加 ...................................... 18

図 16 XData Cube ブロックの追加 ..................................................................... 18

図 17 XData ブロックへの要素の追加 .................................................................. 19

図 18 ターミナルでのキューブのビルド ................................................................... 24

図 19 アナライザー画面で分析 ........................................................................... 25

図 20 アーキテクト画面からアナライザー画面起動 ..................................................... 25

図 21 アナライザー画面の再表示 ........................................................................ 30

図 22 アナライザー画面 rangeExpression(範囲指定)の表示 ..................................... 30

図 23 年別(YearSold)、製品名別(Product Name)の Big Sale の分析と詳細リストの表示 ... 32

図 24 アナライザーで自動生成された MDX クエリ ..................................................... 33

図 25 クエリツールの起動と実行 ......................................................................... 34

図 26 MDX シェルでのクエリ実行 ........................................................................ 35

図 27 クラスメソッド実行結果例(%DeepSee.ResultSet の利用) .................................. 38

図 28 アナライザーでピボットテーブルを保存 ........................................................... 39

図 29 ダッシュボードの作成 ............................................................................... 40

図 30 ウィジェットの追加 .................................................................................. 41

図 31 ダッシュボード完成 ................................................................................. 42

図 32 アーキテクト画面で作成するキューブ定義 ....................................................... 44

Page 5: 良くわかる!DeepSee - InterSystems · 良くわかる!DeepSeeハンズオンセミナー 演習補足資料(2011FT2ベース)-V1.0 3 3. ステップ①-演習3(1) 次元:、階層:、レベル:の追加

良くわかる!DeepSee ハンズオンセミナー 演習補足資料(2011FT2 ベース)-V1.0

5

図 33 アーキテクト画面でのメジャーの追加 ............................................................. 45

図 34 アーキテクトでの追加 次元:<dimension>、階層:<hierarchy>、レベル:<level> .... 46

図 35 アーキテクトで製品カテゴリレベルの追加 ........................................................ 46

図 36 アーキテクト画面:Outlet ディメンジョン追加..................................................... 47

図 37 アーキテクト画面でのキューブのコンパイルとビルド ............................................ 47

図 38 アーキテクト:rangeExpression ................................................................. 48

図 39 アーキテクト画面での 式:sourceExpression の設定 ....................................... 49

図 40 アーキテクト画面で時間レベルの定義 ............................................................ 50

図 41 アーキテクト画面でリスティング(Listing)の追加 ................................................ 51

Page 6: 良くわかる!DeepSee - InterSystems · 良くわかる!DeepSeeハンズオンセミナー 演習補足資料(2011FT2ベース)-V1.0 3 3. ステップ①-演習3(1) 次元:、階層:、レベル:の追加

良くわかる!DeepSee ハンズオンセミナー 演習補足資料(2011FT2 ベース)-V1.0

6

はじめに 1. 本コースで使用する演習環境

演習のステップに沿ったサンプルコードを XML ファイルでご用意しています。

演習サンプルファイルをインポートする場合は、スタジオを利用します。(システム管理ポータルでもインポー

トできますが、ソースコードを参照する機会が多いので、スタジオをご利用ください。)

インポート方法は以下の通りです。

スタジオを起動して、DSTEST ネームスペースへ移動します。(ファイル→ネームスペース変更)

ツール→ローカルからインポートを選択し、インポートファイルを指定し、インポートを開始します。

ネームスペースDSTESTに移

動します。移動するには、ファイル→ネームスペース変更メニューを利用します。

「ローカルからインポート」メニューを指定するとファイル選択画面が表示されます。インポート対象ファイルを指定し、インポートを開始します。

図 1 サンプル XML ファイルのインポート

OS Windows7

Caché のバージョン 2011 FT2

Caché インストールディレクトリ C:\InterSystems\Cache

演習環境のネームスペース DSTEST

演習サンプル用ディレクトリ C:\DeepSee トレーニング\演習サンプル 以下

演習完成品のあるネームスペース DSSAMPLE

Page 7: 良くわかる!DeepSee - InterSystems · 良くわかる!DeepSeeハンズオンセミナー 演習補足資料(2011FT2ベース)-V1.0 3 3. ステップ①-演習3(1) 次元:、階層:、レベル:の追加

良くわかる!DeepSee ハンズオンセミナー 演習補足資料(2011FT2 ベース)-V1.0

7

2. 演習で利用するクラス 演習では、Caché に登録されたデータを(クラス定義を利用しているデータ)利用して、DeepSee で分析を

行います。

データ構造は以下の通りです。

Outlet

Population

Country

City

Country

Name

Region

Product

Name Region

Name

Type

Transaction

Actual

Date Of Sale

Product

Outlet

Channel

AmountOfSale

Units Sold

Discount

Category

Price

SKU

図 2 HoleFoods クラス定義

DeepSee で分析を行うデータは、HoleFoods:穴の空いた食品(ドーナツ、ベーグル、チーズ、パイナップ

ル、マカロニ、レンコン、など)を販売する会社の販売情報を登録したデータベースです。HoleFoods クラス

は以下の通りです。

クラス名 内容

HoleFoods.Transaction 販売情報の中心となるクラス

このクラスから、他のクラスへの参照があるため、DeepSee で作成するキ

ューブの「ソースクラス」として指定します。

HoleFoods.Product 製品情報登録クラス

HoleFoods.Transaction クラスの Product プロパティから参照されます。

商品カテゴリ、商品名、価格等が登録されています。

HoleFoods.Outlet 販売店舗情報登録クラス

HoleFoods.Transaction クラスの Outlet プロパティから参照されていま

す。販売店舗のある国、都市、人口など登録されています。

また、販売店舗のある国情報詳細については、Country プロパティを利用

して、HoleFoods.Country クラスを参照しています。

HoldFoods.Country 国情報登録クラス

HoleFoods.Country クラスの Country プロパティから参照されます。

国名が登録されています。

HoleFoods.Region 販売地域情報登録クラス

HoleFoods.Country クラスの Region プロパティから参照されています。

地域名が登録されています。

上記クラスは、HoleFoods.Transaction クラスから、全ての情報にアクセスできます。

Page 8: 良くわかる!DeepSee - InterSystems · 良くわかる!DeepSeeハンズオンセミナー 演習補足資料(2011FT2ベース)-V1.0 3 3. ステップ①-演習3(1) 次元:、階層:、レベル:の追加

良くわかる!DeepSee ハンズオンセミナー 演習補足資料(2011FT2 ベース)-V1.0

8

3. DeepSee のモデル定義 HoleFoods データを元に、分析を行うため、データモデルを定義します。

演習で扱うデータモデルでは、HoleFoods クラスの以下プロパティを、モデルに定義するソースプロパティ

として使用します。(色が塗ってあるプロパティを利用します。)

Outlet

Population

Country

City

Country

Name

Region

Product

Name Region

Name

Type

Transaction

Actual

Date Of Sale

Product

Outlet

Channel

AmountOfSale

Units Sold

Discount

Category

Price

SKU

Dimension/Level

Measure

図 3 モデルクラスで利用するソースプロパティ

データモデル定義時に利用するプロパティ名は以下の通りです。プロパティ名は大小文字の差異がありま

すので、記述ミスにご注意ください。

プロパティ名 データタイプ 説明DateOfSale %Date 内部日付($H)で登録される販売日付Product Product 製品情報(HoleFoods.Productクラスを参照しています)Outlet Outlet 販売店舗情報(HoleFoods.Outletクラスを参照しています)AmountOfSale %Numeric 売上金額UnitsSold %Integer 売上個数Discount %Numeric 割引率(小数点で表現しています。例:0.2)

プロパティ名 データタイプ 説明Name %String 商品名Category %String 商品カテゴリ名

プロパティ名 データタイプ 説明Country Country 国情報(HoleFoods.Countryクラスを参照しています)City %String 都市名(店舗がある都市名)

プロパティ名 データタイプ 説明Name %String 国名

※ ソースプロパティで利用するプロパティのみを抜粋

HoleFoods.Transaction

HoleFoods.Product

HoleFoods.Outlet

HoleFoods.Country

図 4 ソースプロパティで利用する HoleFoods のプロパティ

Page 9: 良くわかる!DeepSee - InterSystems · 良くわかる!DeepSeeハンズオンセミナー 演習補足資料(2011FT2ベース)-V1.0 3 3. ステップ①-演習3(1) 次元:、階層:、レベル:の追加

良くわかる!DeepSee ハンズオンセミナー 演習補足資料(2011FT2 ベース)-V1.0

9

Let’s Try! サンプルキューブで確認

DeepSee 用ポータルの使い方に慣れるため、サンプルのデータモデルを利用して操作体験を行います。

1. ソースクラスのデータ確認 今回利用するソースクラス:HoleFoods.Transaction のデータを参照します。データの参照には、管理ポ

ータル→システムエクスプローラー→SQL→SQL スキーマを参照 の画面を利用します。

管理ポータルを起動し、システムエクスプローラー→SQL→SQL スキーマを参照 をダブルクリックします。

(または、一番右端に表示される「移動」ボタンを押下します。)

SQLスキーマを参照をダブルクリック

「移動」ボタンをクリック

図 5 管理ポータル:システムエクスプローラー:SQL

Page 10: 良くわかる!DeepSee - InterSystems · 良くわかる!DeepSeeハンズオンセミナー 演習補足資料(2011FT2ベース)-V1.0 3 3. ステップ①-演習3(1) 次元:、階層:、レベル:の追加

良くわかる!DeepSee ハンズオンセミナー 演習補足資料(2011FT2 ベース)-V1.0

10

続いて、HoleFoods スキーマを選択し、SalesTransaction テーブルを参照します。

(クラス定義名は、HoleFoods.Transactio ですが、テーブル名として、HoleFoods.SalesTransactionと定義しているため、SalesTransaction テーブルを選択します。)

ネームスペースを切り替えます。

HoleFoodsスキーマを選択します。

「テーブルを開く」を押下

図 6 HoleFoods.Transaction クラスのデータ参照

他のテーブル(Product や Outlet など)も、同様の手順でデータを確認できます。

Page 11: 良くわかる!DeepSee - InterSystems · 良くわかる!DeepSeeハンズオンセミナー 演習補足資料(2011FT2ベース)-V1.0 3 3. ステップ①-演習3(1) 次元:、階層:、レベル:の追加

良くわかる!DeepSee ハンズオンセミナー 演習補足資料(2011FT2 ベース)-V1.0

11

2. キューブの確認:スタジオ編 定義済のキューブ:HoleFoods00 の定義を、スタジオで確認します。スタジオを起動し、DSTEST ネーム

スペースに移動します。Cube パッケージの HoleFoods00 クラスを参照します。

Cubeパッケージを選択します HoleFoods00を

選択します

図 7 HoleFoods00 スタジオでの定義確認

<Cube>の sourceClass、<measure>や<level>の sourceProperty の定義をご参照ください。(こ

れらには、HoleFoods.Transaction クラスから指定できるプロパティ名が定義されています。)

Page 12: 良くわかる!DeepSee - InterSystems · 良くわかる!DeepSeeハンズオンセミナー 演習補足資料(2011FT2ベース)-V1.0 3 3. ステップ①-演習3(1) 次元:、階層:、レベル:の追加

良くわかる!DeepSee ハンズオンセミナー 演習補足資料(2011FT2 ベース)-V1.0

12

3. キューブの確認:管理ポータル内アーキテクト画面 DeepSee 用ポータルを起動します。

管理ポータル→DeepSee を選択します。ネームスペースが DeepSee 未対応である場合、以下表示さ

れますので、DeepSee の環境に切り替えます。(コースで利用するネームスペースは、DSTEST ネームス

ペースです。)

現在のネームスペースがDeepSee用の環境ではない場合に表示されます。

変更ボタンをクリックし、ネームスペースを切り替えます。

図 8 管理ポータル:ネームスペースの変更

Page 13: 良くわかる!DeepSee - InterSystems · 良くわかる!DeepSeeハンズオンセミナー 演習補足資料(2011FT2ベース)-V1.0 3 3. ステップ①-演習3(1) 次元:、階層:、レベル:の追加

良くわかる!DeepSee ハンズオンセミナー 演習補足資料(2011FT2 ベース)-V1.0

13

DeepSee→Architect メニューからアーキテクト画面を起動し、HoleFoods00 キューブを選択します。

(開くボタンを押下すると、開くキューブを変更できます。)

SQLスキーマを参照をダブルクリック

「移動」ボタンをクリック

図 9 アーキテクト画面:キューブを開く(HoleFoods00)

Page 14: 良くわかる!DeepSee - InterSystems · 良くわかる!DeepSeeハンズオンセミナー 演習補足資料(2011FT2ベース)-V1.0 3 3. ステップ①-演習3(1) 次元:、階層:、レベル:の追加

良くわかる!DeepSee ハンズオンセミナー 演習補足資料(2011FT2 ベース)-V1.0

14

HoleFoods00 キューブを開いた状態は以下の通りです。

要素を選択すると、右画面の詳細タブに詳細設定が表示されます。

図 10 アーキテクト画面:HoleFoods00 キューブ

各要素の詳細は、右画面の「詳細」タブに表示されます。

HoleFoods00 キューブを選択すると、ソースクラスに、「HoleFoods.Transaction」が定義されているの

がわかります。

また、<level>の Product Category を選択すると、ソースプロパティに「Prodcut.Category」が定義さ

れているのがわかります。

ソースプロパティには、ソースクラスである HoleFoods.Transaction クラスから参照できる全情報を指定

できます。

図 11 ソースプロパティの確認(HoleFoods00 の Product Category)

Page 15: 良くわかる!DeepSee - InterSystems · 良くわかる!DeepSeeハンズオンセミナー 演習補足資料(2011FT2ベース)-V1.0 3 3. ステップ①-演習3(1) 次元:、階層:、レベル:の追加

良くわかる!DeepSee ハンズオンセミナー 演習補足資料(2011FT2 ベース)-V1.0

15

4. アナライザーの起動 表示したアーキテクト画面から、アナライザーを起動します。

アーキテクト画面の右画面から、ツール→アナライザ のボタンを押下します。(ブラウザの別タブで表示さ

れます。)

図 12 管理ポータル:アーキテクト画面の起動

アーキテクト画面では、データモデルで定義した要素をドラッグ&ドロップで右画面に移動し、分析を開始で

きます。

ディメンジョンを縦軸(Colmns)や横軸(Rows)へ、メジャーをMeasuresへ、ドラッグ&ドロップで移動します。

図 13 管理ポータル:アーキテクト画面での分析

Page 16: 良くわかる!DeepSee - InterSystems · 良くわかる!DeepSeeハンズオンセミナー 演習補足資料(2011FT2ベース)-V1.0 3 3. ステップ①-演習3(1) 次元:、階層:、レベル:の追加

良くわかる!DeepSee ハンズオンセミナー 演習補足資料(2011FT2 ベース)-V1.0

16

ステップ①

この演習では、HoleFoods:穴の空いた食品(ドーナツ、ベーグル、チーズ、パイナップル、マカロニ、レンコ

ン、など)を販売する会社の販売情報の中から、 製品カテゴリ別、製品名別、販売国別、販売市別 の切り

口で、売上個数、売上金額を集計するためのデータモデルを作成します。

作成するキューブ名は HoleFoods2 とし、キューブには、以下の要素を追加します。

分析の視点(切り口): ディメンジョン<dimension>とレベル<level>で定義します。

製品カテゴリ別(Product.Category)

製品名別(Product.Name)

販売国別(Outlet.Country.Name)

販売市別(Outlet.City)

集計(分析)結果の数値:メジャー<measure>で定義します。

売上個数(UnitsSold)

売上金額(AmountOfSale)

キューブの作成は、アーキテクト画面、スタジオ、どちらでも定義できます。

演習では、スタジオを利用して、データモデルを定義します。

アーキテクト画面でのデータモデル定義方法については、巻末の付録(P44「付録:アーキテクト画面を利用

したデータモデルの定義」をご参照ください。

データモデルの定義で、ソースクラス名、ソースプロパティ名の大小文字の違いにご注意ください。

入力文字サポート用に、演習サンプルフォルダ(c:\DeepSee トレーニング\演習サンプル)以下のファイル

もご利用ください。

ステップ①②-演習サポートファイル.txt

ソースプロパティで利用するプロパティ一覧.pdf

Page 17: 良くわかる!DeepSee - InterSystems · 良くわかる!DeepSeeハンズオンセミナー 演習補足資料(2011FT2ベース)-V1.0 3 3. ステップ①-演習3(1) 次元:、階層:、レベル:の追加

良くわかる!DeepSee ハンズオンセミナー 演習補足資料(2011FT2 ベース)-V1.0

17

1. キューブクラスの作成(スタジオでの作成) データモデルの定義を行うため、新規キューブクラスを作成します。定義内容は以下の通りです。

パッケージ名 Cube

クラス名 HoleFoods2

スーパークラス %DeepSee.CubeDefinition

DependsOn 属性 HoleFoods.Transaction

XData ブロックの追加 ブロック名:Cube

XMLNamespace: http://www.intersystems.com/deepsee (XMLNamespace の定義はインスペクタを利用すると便利です)

図 14 HoleFoods2 キューブの作成(スタジオ)

この時点での、キューブクラスは以下の通りです。

/// 2011 年 Symposia DeepSee ハンズオンセミナー ステップ①

Class Cube.HoleFoods2 Extends %DeepSee.CubeDefinition

{

}

この後、DependsOn 属性を追加します。クラスの属性追加には、インスペクタを利用すると便利です。

Page 18: 良くわかる!DeepSee - InterSystems · 良くわかる!DeepSeeハンズオンセミナー 演習補足資料(2011FT2ベース)-V1.0 3 3. ステップ①-演習3(1) 次元:、階層:、レベル:の追加

良くわかる!DeepSee ハンズオンセミナー 演習補足資料(2011FT2 ベース)-V1.0

18

図 15 Cube.HoleFoods2 クラスの DependsOn 属性の追加

続いて、XData Cube{} を追加します。 クラス→追加→XData を選択します。追加した XData ブロック

の XMLNamespace を、インスペクタを利用して修正します。

インスペクタを利用してXData CubeブロックのXMLNamespaceを定義します。

図 16 XData Cube ブロックの追加

Page 19: 良くわかる!DeepSee - InterSystems · 良くわかる!DeepSeeハンズオンセミナー 演習補足資料(2011FT2ベース)-V1.0 3 3. ステップ①-演習3(1) 次元:、階層:、レベル:の追加

良くわかる!DeepSee ハンズオンセミナー 演習補足資料(2011FT2 ベース)-V1.0

19

続いて、<cube>要素を追加します。追加する属性は以下の通りです。

属性 値

name HoleFoods2

sourceClass HoleFoods.Transaction

要素や属性の追加は直接XDataブロック内に記

述します。スタジオの機能で(スタジオアシスト)候補が表示されます。

図 17 XData ブロックへの要素の追加

現時点でのスタジオの表示は以下の通りです。

XData Cube [ XMLNamespace = "http://www.intersystems.com/deepsee" ]

{

<cube name="HoleFoods2" sourceClass="HoleFoods.Transaction">

</cube>

}

Page 20: 良くわかる!DeepSee - InterSystems · 良くわかる!DeepSeeハンズオンセミナー 演習補足資料(2011FT2ベース)-V1.0 3 3. ステップ①-演習3(1) 次元:、階層:、レベル:の追加

良くわかる!DeepSee ハンズオンセミナー 演習補足資料(2011FT2 ベース)-V1.0

20

2. <measure>の追加 演習テーマでは、HoleFoods 販売情報から、様々な分析項目を利用して、売上金額(AmountOfSale)と、

売上個数(UnitsSold)の集計を行います。集計結果となる項目は、<measure>要素を利用して定義しま

す。

<measure>要素は、<cube>要素の中に定義します。定義する属性は以下の通りです。

属性 1 値 属性 2 値

name Amount Sold name Units Sold

sourceProperty AmountOfSale sourceProperty UnitsSold

formatString #.## formatString なし

スタジオの表示は以下の通りです。

<cube name="HoleFoods2" sourceClass="HoleFoods.Transaction">

<measure name="Amount Sold" sourceProperty="AmountOfSale" formatString="#.##"/>

<measure name="Units Sold" sourceProperty="UnitsSold"/>

</cube>

Page 21: 良くわかる!DeepSee - InterSystems · 良くわかる!DeepSeeハンズオンセミナー 演習補足資料(2011FT2ベース)-V1.0 3 3. ステップ①-演習3(1) 次元:、階層:、レベル:の追加

良くわかる!DeepSee ハンズオンセミナー 演習補足資料(2011FT2 ベース)-V1.0

21

3. <dimension><hierarchy><level>の追加 続いて、分析の視点(切り口)となる次元(ディメンジョン:<dimension>)、階層(<hierarchy>)、レベル

(<level>)を追加します。

(1) 分析項目:製品名別(Product.Name)の追加

製品名別(Product.Name)での分析のため、<dimension><hierarchy><level>を追加します。

<cube>要素の中に、新要素<dimension>を、製品別分析のため追加します。また、<dimension>の

中に、<hierarchy>、さらに<hierarchy>の中に<level>を定義します。

定義する属性は以下の通りです。

<dimension>

属性 値

name Product

sourceProperty (level の定義で追加します。)

<hierarchy>

name H1

<level>

name Product Name

sourceProperty Product.Name

スタジオの表示は以下の通りです。

<cube name="HoleFoods2" sourceClass="HoleFoods.Transaction">

<measure name="Amount Sold" sourceProperty="AmountOfSale" formatString="#.##"/> <measure name="Units Sold" sourceProperty="UnitsSold"/>

<dimension name="Product">

<hierarchy name="H1">

<level name="Product Name" sourceProperty="Product.Name"/>

</hierarchy>

</dimension>

</cube>

sourceProperty に入力する文字列は、実際の HoleFoods.Transaction クラスから参照できるプロパ

ティを指定します。プロパティ名の大小文字にご注意ください。

Page 22: 良くわかる!DeepSee - InterSystems · 良くわかる!DeepSeeハンズオンセミナー 演習補足資料(2011FT2ベース)-V1.0 3 3. ステップ①-演習3(1) 次元:、階層:、レベル:の追加

良くわかる!DeepSee ハンズオンセミナー 演習補足資料(2011FT2 ベース)-V1.0

22

(2) 分析項目:製品カテゴリ別(Product.Category)の追加

製品カテゴリ別(Product.Category)での分析のため、(1)で作成した<dimension>に、<level>を追

加します。

既に定義した製品名(Product.Name)と、これから定義する製品カテゴリ(Product.Category)の定義

順序に注意が必要です。製品名(Product.Name)は製品カテゴリ(Product.Category)別に分類される

ため、階層構造を持ちます。この場合、階層の上位層になる項目を上に配置します。

定義する属性は以下の通りです。

<level>

name Product Category

sourceProperty Product.Category

<cube name="HoleFoods2" sourceClass="HoleFoods.Transaction">

<measure name="Amount Sold" sourceProperty="AmountOfSale" formatString="#.##"/>

<measure name="Units Sold" sourceProperty="UnitsSold"/>

<dimension name="Product">

<hierarchy name="H1">

<level name="Product Category" sourceProperty="Product.Category"/>

<level name="Product Name" sourceProperty="Product.Name"/>

</hierarchy>

</dimension>

</cube>

Page 23: 良くわかる!DeepSee - InterSystems · 良くわかる!DeepSeeハンズオンセミナー 演習補足資料(2011FT2ベース)-V1.0 3 3. ステップ①-演習3(1) 次元:、階層:、レベル:の追加

良くわかる!DeepSee ハンズオンセミナー 演習補足資料(2011FT2 ベース)-V1.0

23

(3) 販売国、販売市の項目を<dimension>に追加

販売国、販売市別の分析項目を指定したいため、さらに、以下の定義を追加します。<level>の定義順に

注意しながら記述してください。

<dimension>

属性 値

name Outlet

<hierarchy>

name H1

<level> 1 つ目:上に定義

name Outlet Country

sourceProperty Outlet.Country.Name

<level> 2 つ目:下に定義

name Outlet City

sourceProperty Outlet.City

<dimension name="Outlet">

<hierarchy name="H1">

<level name="Outlet Country" sourceProperty="Outlet.Country.Name"/>

<level name="Outlet City" sourceProperty="Outlet.City"/>

</hierarchy>

</dimension>

Page 24: 良くわかる!DeepSee - InterSystems · 良くわかる!DeepSeeハンズオンセミナー 演習補足資料(2011FT2ベース)-V1.0 3 3. ステップ①-演習3(1) 次元:、階層:、レベル:の追加

良くわかる!DeepSee ハンズオンセミナー 演習補足資料(2011FT2 ベース)-V1.0

24

4. キューブのビルド データモデルの定義が完了したら、キューブクラス(Cube.HoleFoods2)をコンパイルします。コンパイル

はスタジオのメニューから ビルド→コンパイル します。

キューブのビルドは、ターミナルで以下メソッドを実行します。メソッドの引数にはキューブ名:HoleFoods2を指定します。

Do ##class(%DeepSee.Uitls).%BuildCube(“HoldFoods2”)

ターミナルを起動し、作業用ネームスペースの DSTEST に移動してから、メソッドを実行してください。

図 18 ターミナルでのキューブのビルド

Page 25: 良くわかる!DeepSee - InterSystems · 良くわかる!DeepSeeハンズオンセミナー 演習補足資料(2011FT2ベース)-V1.0 3 3. ステップ①-演習3(1) 次元:、階層:、レベル:の追加

良くわかる!DeepSee ハンズオンセミナー 演習補足資料(2011FT2 ベース)-V1.0

25

5. アナライザーで分析 管理ポータルの DeepSee アナライザー画面を利用して、分析を行います。

アナライザー画面の起動は、管理ポータル→DeepSee→Analyzer を選択します。HoleFoods2 キュー

ブが選択されていない場合は、 このアイコンを押下し、キューブを選択します。

ダブルクリック

クリック

図 19 アナライザー画面で分析

【補足】

アーキテクト画面でのキューブの定義を行った場合、ツールタブの「アナライザ」ボタンを押下すると、定義中

のキューブに対するアーキテクト画面を別のタブに起動します。

図 20 アーキテクト画面からアナライザー画面起動

Page 26: 良くわかる!DeepSee - InterSystems · 良くわかる!DeepSeeハンズオンセミナー 演習補足資料(2011FT2ベース)-V1.0 3 3. ステップ①-演習3(1) 次元:、階層:、レベル:の追加

良くわかる!DeepSee ハンズオンセミナー 演習補足資料(2011FT2 ベース)-V1.0

26

ステップ②

<level>の項目が数値データである場合、範囲指定を利用し、値を細かく分類できます。また、内部日付が

設定された項目には、年別、月別などの単位でグループ化し表示させることができます。

この演習では、範囲指定方法と、時刻のグループ化の方法を体験します。

以下の定義を追加します。

分析の視点(切り口):ディメンジョン <dimension>とレベル<level>を定義します。

割引率(Discount)の範囲指定

売上日(DateOfSale)を利用して、年別、月別の指定

集計(分析)結果の数値:メジャー <measure>で定義します。

売上規模の測定(Units Sold の数に応じて真偽値を返す定義を追加します。)

詳細リストの追加

データモデルの定義で、ソースクラス名、ソースプロパティ名の大小文字の違いにご注意ください。

入力文字サポート用に、演習サンプルフォルダ(c:\DeepSee トレーニング\演習サンプル)以下のファイル

もご利用ください。

ステップ①②-演習サポートファイル.txt

ソースプロパティで利用するプロパティ一覧.pdf

Page 27: 良くわかる!DeepSee - InterSystems · 良くわかる!DeepSeeハンズオンセミナー 演習補足資料(2011FT2ベース)-V1.0 3 3. ステップ①-演習3(1) 次元:、階層:、レベル:の追加

良くわかる!DeepSee ハンズオンセミナー 演習補足資料(2011FT2 ベース)-V1.0

27

1. rangeExpression(範囲指定)の追加 Discount プロパティには、割引率の数値が登録されています。登録データをある指定の範囲で区切り、表

示項目を決定したい場合は、rangeExpression 属性を利用して設定できます。

スタジオを利用して、<dimension>、<hierarchy>、<level>を追加します。定義する属性は以下のと

おりです。

<dimension>

属性 値

name Discount

type Data

<hierarchy>

name H1

<level>

name Discount Type

sourceProperty Discount

rangeExpression (,0]:None;(0,0.2):1-19%;[0.2,0.5):20-49%;[0.5,):50%+;

スタジオの定義は以下のとおりです。(<cube>要素内に追加します)

<dimension name="Discount" type="data">

<hierarchy name="H1">

<level name="Discount Type" sourceProperty="Discount"

rangeExpression="(,0]:None;(0,0.2):1-19%;[0.2,0.5):20-49%;[0.5,):50%+;"/>

</hierarchy>

</dimension>

Page 28: 良くわかる!DeepSee - InterSystems · 良くわかる!DeepSeeハンズオンセミナー 演習補足資料(2011FT2ベース)-V1.0 3 3. ステップ①-演習3(1) 次元:、階層:、レベル:の追加

良くわかる!DeepSee ハンズオンセミナー 演習補足資料(2011FT2 ベース)-V1.0

28

2. sourceExpression の追加 演習では、UnitsSold プロパティの値が 5 より大きい場合は、“大量販売であった“として、1(真)を返し、そ

れ以外は 0(偽)を返すように定義します。

このように、ソースプロパティの値に応じて、表示内容を取得したい場合、sourceExpression 属性を利用

して定義します。ソースプロパティの値は%source 変数を使用して取得します。

<measure>要素を追加します。定義する属性は以下のとおりです。(<cube>要素内に追加します。)

属性 値

name Big Sale

sourceExpression $select(%source.UnitsSold>5:1,1;0)

type Boolean

<measure name="Big Sale" sourceExpression="$select(%source.UnitsSold>5:1,1:0)" type="boolean"/>

3. 時系列の<dimension>追加 Caché の内部日付で設定されている販売日付(DateOfSale)を年別、月別にグループ化するため、 <dimension>、<hierarchy>、<level>を追加します。<dimension>の type 属性には、time を指

定し、<level>の timeFunction 属性には、切り出したい単位(年別、月別)を指定します。

定義する属性は以下のとおりです。

<dimension>

属性 値

name DateOfSale

type time

sourceProperty DateOfSale

<hierarchy>

name H1

<level> (2 つ追加します。階層構造を持つので Year Sold が上に来るように定義します。)

name YearSold name MonthSold

timeFunction Year timeFunction MonthYear

スタジオの定義は以下のとおりです。(<cube>定義の中に追加します。)

<dimension name="DateOfSale" sourceProperty="DateOfSale" type="time">

<hierarchy name="H1">

<level name="YearSold" timeFunction="Year"/>

<level name="MonthSold" timeFunction="MonthYear"/>

</hierarchy>

</dimension>

Page 29: 良くわかる!DeepSee - InterSystems · 良くわかる!DeepSeeハンズオンセミナー 演習補足資料(2011FT2ベース)-V1.0 3 3. ステップ①-演習3(1) 次元:、階層:、レベル:の追加

良くわかる!DeepSee ハンズオンセミナー 演習補足資料(2011FT2 ベース)-V1.0

29

4. 詳細リストの追加 分析結果の特定の値がどのようにソースデータから構成されたかを確認するため詳細リストを追加します。

定義は以下のとおりです。

属性 値

name listing1

fieldList %ID,UnitsSold,Product->Name

<cube>の以下属性も変更します。

defaultListing listing1

スタジオでの定義は以下のとおりです。

<cube name="HoleFoods2" sourceClass="HoleFoods.Transaction" defaultListing="listing1">

<listing name="listing1" fieldList="%ID,UnitsSold,Product->Name"/>

Page 30: 良くわかる!DeepSee - InterSystems · 良くわかる!DeepSeeハンズオンセミナー 演習補足資料(2011FT2ベース)-V1.0 3 3. ステップ①-演習3(1) 次元:、階層:、レベル:の追加

良くわかる!DeepSee ハンズオンセミナー 演習補足資料(2011FT2 ベース)-V1.0

30

5. アナライザー画面で分析 定義が完了したら、コンパイルを行い、キューブのビルドを実行します。ターミナルでのビルドの実行は、以

下のとおりです。

Do ##class(%DeepSee.Uitls).%BuildCube(“HoldFoods2”)

アナライザー画面を再表示します。

新情報表示のため、一度、「アナライザ」のリンクを押下します。

図 21 アナライザー画面の再表示

初に、Discount ディメンジョンで設定した rangeExpression(範囲指定)のアナライザーでの表示を確

認します。アナライザー画面で Discount を展開すると、rangeExpression の範囲でグループ分けされて

いるのが確認できます。図例では、以下の内容で分析を行っています。

横軸(Rows):、製品カテゴリ別(Product Category)

縦軸(Columns):20-40%(Discount のグループ分け)

Measures:販売個数(Units Sold)

指定の範囲でグループわけされます。

グループ分けの単位で、分析の切り口として指定できます。

図 22 アナライザー画面 rangeExpression(範囲指定)の表示

Page 31: 良くわかる!DeepSee - InterSystems · 良くわかる!DeepSeeハンズオンセミナー 演習補足資料(2011FT2ベース)-V1.0 3 3. ステップ①-演習3(1) 次元:、階層:、レベル:の追加

良くわかる!DeepSee ハンズオンセミナー 演習補足資料(2011FT2 ベース)-V1.0

31

続いて、内部日付が登録された販売日付(DateOfSale)を年別、月別にグループ化したレベル(YearSold、

MonthSold)の確認と、大量販売があった場合に 1 を返すよう設定したメジャー(Big Sale)をアナライザ

ー画面で確認します。

以下の内容で分析を行います。

横軸(Rows):年別(YearSold) (年別、月別レベルが別れている事が確認できます。)

縦軸(Columns):製品名別(Product Name)

Measures:大量販売があった回数(Big Sale)

Big Sale の確認には、詳細リストを利用します。

詳細リストから、販売個数 6 個以上のレコード数の集計と、分析結果に表示されるセルの値が同一である

ことが確認できます。

図例は、次ページをご参照ください。

Page 32: 良くわかる!DeepSee - InterSystems · 良くわかる!DeepSeeハンズオンセミナー 演習補足資料(2011FT2ベース)-V1.0 3 3. ステップ①-演習3(1) 次元:、階層:、レベル:の追加

良くわかる!DeepSee ハンズオンセミナー 演習補足資料(2011FT2 ベース)-V1.0

32

レベルに指定したtimeFunction別にレベルが別れます

①のようにセルを1つ選択した状態で、メガネのアイコンを押下します。

セルを1つ選択した状態で、②

のメガネのアイコンを押下すると詳細リストが表示されます。

詳細リストから元の画面に戻すには、このアイコンを押下します。

Big Saleの定義ではsourceExpression属性に、UnitsSold>5 の場合、1

(真)を返すように定義したため、1を返した行の集計結果は 2 です。

図 23 年別(YearSold)、製品名別(Product Name)の Big Sale の分析と詳細リストの表示

Page 33: 良くわかる!DeepSee - InterSystems · 良くわかる!DeepSeeハンズオンセミナー 演習補足資料(2011FT2ベース)-V1.0 3 3. ステップ①-演習3(1) 次元:、階層:、レベル:の追加

良くわかる!DeepSee ハンズオンセミナー 演習補足資料(2011FT2 ベース)-V1.0

33

ステップ③

作成したデータモデルを利用して、MDX クエリで分析を行い、結果を確認します。

MDX の実行には、以下ツールを利用します。

管理ポータル クエリツールを利用して、キューブメンバーをドラッグ&ドロップで指定できます。

ターミナル MDX シェルを起動して実行します。 例) do ##class(%DeepSee.Shell).%Go()

それぞれの利用方法を体験する演習を行います。

今回確認する分析内容は、以下の通りです。

横軸(Rows) :販売国別(Outlet Country)

縦軸(Columns) :製品カテゴリ別(Product Category)

Measures :販売個数(UnitsSold)

3 つの方法で、分析結果を確認します。

アナライザーでの確認結果は以下の通りです。

実行したMDXクエリを表示します。

図 24 アナライザーで自動生成された MDX クエリ

続いて、DeepSee のクエリツールを利用して MDX クエリの実行を試します。

後に、ターミナルの MDX シェルを起動して、MDX クエリの実行を試します。

Page 34: 良くわかる!DeepSee - InterSystems · 良くわかる!DeepSeeハンズオンセミナー 演習補足資料(2011FT2ベース)-V1.0 3 3. ステップ①-演習3(1) 次元:、階層:、レベル:の追加

良くわかる!DeepSee ハンズオンセミナー 演習補足資料(2011FT2 ベース)-V1.0

34

1. クエリツールで MDX 実行 DeepSee→Query Tool メニューからクエリツールを起動します。

画面起動時、クエリツールの左画面にキューブが選択されていないときは、「サブジェクト領域の変更」のリ

ンクから、HoleFoods2 キューブを選択します。

ドラッグ&ドロップでキューブメンバーを指定できます

キューブが選択されていない場合、「サブジェクト領域の変更」からキューブを選択します。

図 25 クエリツールの起動と実行

記述する MDX クエリは以下の通りです。(アナライザーで自動生成されるクエリと同じクエリを使用しま

す。)

SELECT NON EMPTY [PRODUCT].[H1].[PRODUCT CATEGORY].MEMBERS ON 0,

NON EMPTY [OUTLET].[H1].[OUTLET COUNTRY].MEMBERS ON 1

FROM [HOLEFOODS2]

WHERE [MEASURES].[UNITS SOLD]

MDX クエリを記述した後で、「実行」ボタンを押下し、クエリを実行します。(実行結果は画面下半分に表示

されます。)

Page 35: 良くわかる!DeepSee - InterSystems · 良くわかる!DeepSeeハンズオンセミナー 演習補足資料(2011FT2ベース)-V1.0 3 3. ステップ①-演習3(1) 次元:、階層:、レベル:の追加

良くわかる!DeepSee ハンズオンセミナー 演習補足資料(2011FT2 ベース)-V1.0

35

2. MDX シェルで実行 ターミナルを起動し、DSTEST ネームスペースへ移動します。ターミナルで以下メソッドを実行し、MDX シェ

ルを起動します。

do ##class(%DeepSee.Shell).%Go()

クエリツールで作成した MDX クエリを同じクエリを実行します。

SELECT NON EMPTY [PRODUCT].[H1].[PRODUCT CATEGORY].MEMBERS ON 0, NON EMPTY [OUTLET].[H1].[OUTLET COUNTRY].MEMBERS ON 1 FROM [HOLEFOODS2] WHERE [MEASURES].[UNITS SOLD]

注意!

MDX シェルでは、改行してクエリを記述できないため、上記クエリを 1 行で記述します。

図 26 MDX シェルでのクエリ実行

シェルを終了するには、quit を実行します。

Page 36: 良くわかる!DeepSee - InterSystems · 良くわかる!DeepSeeハンズオンセミナー 演習補足資料(2011FT2ベース)-V1.0 3 3. ステップ①-演習3(1) 次元:、階層:、レベル:の追加

良くわかる!DeepSee ハンズオンセミナー 演習補足資料(2011FT2 ベース)-V1.0

36

3. %DeepSee.ResultSet でクエリ実行 %DeepSee.ResultSet クラスを利用して、プログラムから MDX を実行し、結果を取得する練習をします。

(実行結果は結果セットオブジェクトとして取得できます。)

新規にクラスメソッドを作成し、以下の流れに沿って MDX クエリの実行と結果取得のプログラミングを体験

します。

(1) %DeepSee.ResultSet クラスのインスタンスを生成します。 例) set rset=##class(%DeepSee.ResultSet).%New()

(2) %PrepareMDX()メソッドを使用して、MDX クエリをコンパイルします。(引数に実行するクエリを指定

します。) 例) set query=”SELECT ・・・ MDX クエリ文字列を指定” set st=rset.%PrepareMDX(query) // MDX クエリをコンパイル

(3) %Execute()メソッドでクエリを実行します。 例) set st=rset.%Execute()

(4) 実行結果を取得します。

簡単な方法 %Print()メソッドを利用して結果を出力できます。 例) do rset.%Print()

プログラムで結果を取得する方法 縦軸:%GetAxisSize(1) 、横軸: .%GetAxisSize(2)の数を取得し

て%GetOrdinalValue (縦軸 n 番目,横軸 n 番目)より値を取得します。 例) write rset.%GetOrdinalValue(3,6)

シェルで記述した MDX クエリをそのまま利用して、上記(1)~(4)の流れをスタジオのメソッドで記述します。

クラス名 HoleFoods.MDXTest

スーパークラス

の指定 指定なし

新規クラスウィザード 2 画面目で Extends にチェックを入れクラス名未記入で

作成します。

メソッド名 QueryTest1()

戻り値/引数なし、クラスメソッドとして作成します。

コード例は次ページをご参照ください。

Page 37: 良くわかる!DeepSee - InterSystems · 良くわかる!DeepSeeハンズオンセミナー 演習補足資料(2011FT2ベース)-V1.0 3 3. ステップ①-演習3(1) 次元:、階層:、レベル:の追加

良くわかる!DeepSee ハンズオンセミナー 演習補足資料(2011FT2 ベース)-V1.0

37

ClassMethod QueryTest1()

{

set rset=##class(%DeepSee.ResultSet).%New()

set query="SELECT NON EMPTY [PRODUCT].[H1].[PRODUCT CATEGORY].MEMBERS ON 0,NON EMPTY [OUTLET].[H1].[OUTLET COUNTRY].MEMBERS ON 1 FROM [HOLEFOODS2] WHERE [MEASURES].[UNITS SOLD]"

set st=rset.%PrepareMDX(query) // 指定したクエリのコンパイル

if $system.Status.IsError(st) {

do $system.OBJ.DisplayError(st)

quit

}

set st=rset.%Execute() // クエリの実行

if $system.Status.IsError(st) {

do $system.OBJ.DisplayError(st)

quit

}

write !,"ラベル名:縦軸(cols)",!

for i=1:1:rset.%GetAxisSize(1) {

set st=rset.%GetOrdinalLabel(.collabel,1,i)

write collabel(1),!

}

write !,"ラベル名:横軸(row)",!

for i=1:1:rset.%GetAxisSize(2) {

set st=rset.%GetOrdinalLabel(.rowlabel,2,i)

write rowlabel(1),!

}

// 指定の縦軸、横軸の値を取得します。

write !,"** 縦軸(cols):3 で 横軸(rows):6 のデータとラベルを表示 **",!

set st=rset.%GetOrdinalLabel(.rowlabel,2,6)

set st=rset.%GetOrdinalLabel(.collabel,1,3)

set val=rset.%GetOrdinalValue(3,6) // col,row

write "縦軸(cols)ラベル名 = ",collabel(1),"/横軸(rows)ラベル名 = ",rowlabel(1)," 値 = ",val,!

do rset.%Close()

kill rset

}

Page 38: 良くわかる!DeepSee - InterSystems · 良くわかる!DeepSeeハンズオンセミナー 演習補足資料(2011FT2ベース)-V1.0 3 3. ステップ①-演習3(1) 次元:、階層:、レベル:の追加

良くわかる!DeepSee ハンズオンセミナー 演習補足資料(2011FT2 ベース)-V1.0

38

メソッドが完成したら、クラス定義をコンパイルします。クラスメソッドの実行確認には、ターミナルを使用しま

す。起動中のターミナルがなければ、ターミナルを起動し、DSTEST ネームスペースへ移動します。

メソッドの実行は以下の通りです。

実行例) do ##class(HoleFoods.MDXTest).QueryTest1()

図 27 クラスメソッド実行結果例(%DeepSee.ResultSet の利用)

Page 39: 良くわかる!DeepSee - InterSystems · 良くわかる!DeepSeeハンズオンセミナー 演習補足資料(2011FT2ベース)-V1.0 3 3. ステップ①-演習3(1) 次元:、階層:、レベル:の追加

良くわかる!DeepSee ハンズオンセミナー 演習補足資料(2011FT2 ベース)-V1.0

39

オプション演習:ステップ④ ダッシュボードの作成

お時間のある方、ぜひお試しください。

DeepSee のユーザーポータルを利用すると、見たい結果を好きなレイアウトで参照できるよう、ダッシュボ

ードを作成することができます。

オプション演習では、分析結果をピボットテーブルに保存し、その内容を利用してダッシュボードを作成する

方法を試します。

1. アナライザーでピボットテーブルを保存 好みの分析結果を、ダッシュボード画面用に、ピボットテーブルとして保存します。

名前を付けて保存ボタン押下で、現在の分析結果をピボットテーブルに保存できます。

ピボットテーブル名を設定し、OKボタンを押下します。例)TestPivot1

図 28 アナライザーでピボットテーブルを保存

Page 40: 良くわかる!DeepSee - InterSystems · 良くわかる!DeepSeeハンズオンセミナー 演習補足資料(2011FT2ベース)-V1.0 3 3. ステップ①-演習3(1) 次元:、階層:、レベル:の追加

良くわかる!DeepSee ハンズオンセミナー 演習補足資料(2011FT2 ベース)-V1.0

40

2. ダッシュボードの作成 DeepSee→UserPortal 画面を起動し、メニュー→New Dashboard からダッシュボードの名前とタイト

ルを設定します。

Menu→New Dashboardを選択します。

ダッシュボード名とダッシュボードのタイトルを設定し、OKボタンを押下します。

図 29 ダッシュボードの作成

Page 41: 良くわかる!DeepSee - InterSystems · 良くわかる!DeepSeeハンズオンセミナー 演習補足資料(2011FT2ベース)-V1.0 3 3. ステップ①-演習3(1) 次元:、階層:、レベル:の追加

良くわかる!DeepSee ハンズオンセミナー 演習補足資料(2011FT2 ベース)-V1.0

41

3. ダッシュボードへウィジェットを追加 表示内容(グラフなどのウィジェット)を登録します。ユーザーポータルの Menu→Add New Widget か

ら設定します。

(1) 左画面内 Pivots Charts タブから表示に利用するグラフを選択します。

(2) 中心の画面内 Data Source タブで、Data Source に保存したピボットテーブルを設定します。

(3) 設定が完了したら右下の「OK」ボタンを押下し、ウィジェットの追加を終了します。

①今回はピボットテーブルを利用するので、Pivots and Charts タブを選択します。

③表示するグラフを選択します。

②保存したピボットテーブルを選択します。

図 30 ウィジェットの追加

Page 42: 良くわかる!DeepSee - InterSystems · 良くわかる!DeepSeeハンズオンセミナー 演習補足資料(2011FT2ベース)-V1.0 3 3. ステップ①-演習3(1) 次元:、階層:、レベル:の追加

良くわかる!DeepSee ハンズオンセミナー 演習補足資料(2011FT2 ベース)-V1.0

42

画面の大きさなど微調整を行い、Menu→Save からダッシュボードを保存します。

ウィジェットのサイズは自由に変更できます。

図 31 ダッシュボード完成

Page 43: 良くわかる!DeepSee - InterSystems · 良くわかる!DeepSeeハンズオンセミナー 演習補足資料(2011FT2ベース)-V1.0 3 3. ステップ①-演習3(1) 次元:、階層:、レベル:の追加

良くわかる!DeepSee ハンズオンセミナー 演習補足資料(2011FT2 ベース)-V1.0

43

付 録

Page 44: 良くわかる!DeepSee - InterSystems · 良くわかる!DeepSeeハンズオンセミナー 演習補足資料(2011FT2ベース)-V1.0 3 3. ステップ①-演習3(1) 次元:、階層:、レベル:の追加

良くわかる!DeepSee ハンズオンセミナー 演習補足資料(2011FT2 ベース)-V1.0

44

付録:アーキテクト画面を利用したデータモデルの定義

演習では、スタジオを利用したデータモデルの定義を体験しました。

付録では、アーキテクト画面で行うデータモデル定義方法について、図解でご紹介します。

1. ステップ①-演習 1:キューブの作成(アーキテクトでの作成)

ご参考:P17 「1 キューブクラスの作成(スタジオでの作成)」

アーキテクト画面でキューブ定義を作成する方法は以下の通りです。

Cube NameはHoleFoods2Source ClassはHoleFoods.TransactionClass Name for the CubeはCube.HoleFoods2

図 32 アーキテクト画面で作成するキューブ定義

Page 45: 良くわかる!DeepSee - InterSystems · 良くわかる!DeepSeeハンズオンセミナー 演習補足資料(2011FT2ベース)-V1.0 3 3. ステップ①-演習3(1) 次元:、階層:、レベル:の追加

良くわかる!DeepSee ハンズオンセミナー 演習補足資料(2011FT2 ベース)-V1.0

45

2. ステップ①-演習 2 メジャー:<measure>の追加

ご参考:P20 「2 <measure>の追加」

アーキテクト画面でメジャーを追加する方法は、以下の通りです。

「メジャー」の位置にAmountOfSaleプロパティ

をドラッグ&ドロップします。詳細な定義は右画面「詳細」タブで追記します。

図 33 アーキテクト画面でのメジャーの追加

同様に、メジャーに Units Sold も追加します。

Page 46: 良くわかる!DeepSee - InterSystems · 良くわかる!DeepSeeハンズオンセミナー 演習補足資料(2011FT2ベース)-V1.0 3 3. ステップ①-演習3(1) 次元:、階層:、レベル:の追加

良くわかる!DeepSee ハンズオンセミナー 演習補足資料(2011FT2 ベース)-V1.0

46

3. ステップ①-演習 3(1) 次元:<dimension>、階層:<hierarchy>、レベル:<level>の追加

ご参考:P21「(1) 分析項目:製品名別(Product.Name)の追加」

アーキテクト画面で 次元、階層、レベル を定義する方法は、以下の通りです。

「次元」の位置にProductプロパティをドラッグ&

ドロップします。詳細な定義は右画面の「詳細」タブで追記します。<hierarchy>と<level>は自動的に1つ追加されるので、属性を設定内容に合わせ修正します。

図 34 アーキテクトでの追加 次元:<dimension>、階層:<hierarchy>、レベル:<level>

4. ステップ①-演習 3(2) レベル:<level>の順序入れ替え ご参考:P22「(2) 分析項目:製品カテゴリ別(Product.Category)の追加」

アーキテクト画面でレベルの順序を入れ替える方法は、以下の通りです。

(製品カテゴリレベルの追加)

Categoryプロパティを、H1の下にドラッグ&ドロップします。初期の段階は、定義済のProduct.Nameの下に配置されますが、順番を移動できます。

定義順は矢印のアイコンで入れ替えます。

図 35 アーキテクトで製品カテゴリレベルの追加

Page 47: 良くわかる!DeepSee - InterSystems · 良くわかる!DeepSeeハンズオンセミナー 演習補足資料(2011FT2ベース)-V1.0 3 3. ステップ①-演習3(1) 次元:、階層:、レベル:の追加

良くわかる!DeepSee ハンズオンセミナー 演習補足資料(2011FT2 ベース)-V1.0

47

5. ステップ①-演習 3(3) 次元:<dimension>の追加

ご参考:P23「(3) 販売国、販売市の項目を<dimension>に追加」

アーキテクト画面で定義する方法は以下の通りです。

図 36 アーキテクト画面:Outlet ディメンジョン追加

6. ステップ①-演習 4:キューブのビルド ご参考:P24「4 キューブのビルド」

アーキテクト画面でのキューブのコンパイルとビルドは以下のとおりです。

図 37 アーキテクト画面でのキューブのコンパイルとビルド

Page 48: 良くわかる!DeepSee - InterSystems · 良くわかる!DeepSeeハンズオンセミナー 演習補足資料(2011FT2ベース)-V1.0 3 3. ステップ①-演習3(1) 次元:、階層:、レベル:の追加

良くわかる!DeepSee ハンズオンセミナー 演習補足資料(2011FT2 ベース)-V1.0

48

7. ステップ②-演習 1:範囲指定の追加

ご参考:P27「1 rangeExpression(範囲指定)の追加」

アーキテクト画面での rangeExpression の指定には、「範囲指定」欄を利用します。

範囲指定欄の定義は以下の通りです。

(,0]:None;(0,0.2):1-19%;[0.2,0.5):20-49%;[0.5,):50%+;

アーキテクト画面での、次元、階層、レベルの追加方法については、 P46「図 34 アーキテクトでの追加

次元:<dimension>、階層:<hierarchy>、レベル:<level>」 をご参照ください。

図 38 アーキテクト:rangeExpression

Page 49: 良くわかる!DeepSee - InterSystems · 良くわかる!DeepSeeハンズオンセミナー 演習補足資料(2011FT2ベース)-V1.0 3 3. ステップ①-演習3(1) 次元:、階層:、レベル:の追加

良くわかる!DeepSee ハンズオンセミナー 演習補足資料(2011FT2 ベース)-V1.0

49

8. ステップ②-演習 2 式:sourceExpression の追加

ご参考:P28「2 sourceExpression の追加」

アーキテクト画面では、Source Values 以下にある「式」で設定します。

アイテム名の入力の前にアイテム(例:Measure)を選択してください。

図 39 アーキテクト画面での 式:sourceExpression の設定

Page 50: 良くわかる!DeepSee - InterSystems · 良くわかる!DeepSeeハンズオンセミナー 演習補足資料(2011FT2ベース)-V1.0 3 3. ステップ①-演習3(1) 次元:、階層:、レベル:の追加

良くわかる!DeepSee ハンズオンセミナー 演習補足資料(2011FT2 ベース)-V1.0

50

9. ステップ②-演習 3: 時系列の次元:<dimension> 追加 Caché の内部日付で設定されている販売日付(DateOfSale)を年別、月別にグループ化するため、 次元、階層、レベルを追加します。

定義内容詳細は P28「3 時系列の<dimension>追加」 をご参照ください。

アーキテクト画面での次元、階層、レベルの追加については、P46「図 34 アーキテクトでの追加 次元:

<dimension>、階層:<hierarchy>、レベル:<level>」 をご参照ください。

アーキテクト画面で、2 つ目以降のレベルを追加する場合、追加対象となる 階層 を選択した状態で「要素

を追加」のリンクを押下します

画面の使い方は以下の通りです。

H1を選択した状態で「要素を追加」を押下すると、<level>の追加が行えます

図 40 アーキテクト画面で時間レベルの定義

Page 51: 良くわかる!DeepSee - InterSystems · 良くわかる!DeepSeeハンズオンセミナー 演習補足資料(2011FT2ベース)-V1.0 3 3. ステップ①-演習3(1) 次元:、階層:、レベル:の追加

良くわかる!DeepSee ハンズオンセミナー 演習補足資料(2011FT2 ベース)-V1.0

51

10. ステップ②-演習 4:リスティング(詳細リスト)の追加

ご参考:P29「4 詳細リストの追加」

アーキテクトでのリスティング(Listing)の追加は以下のとおりです。

詳細リストの追加には、「要素を追加」のリンクを利用します。

キューブの定義で、「デフォルトリスティング」を作成した詳細リスト名に変更します。

図 41 アーキテクト画面でリスティング(Listing)の追加