SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

難解クエリー言語「MDX」に挑戦

多次元データベースクエリー言語「MDX」入門
~クライアントアプリケーションの作成方法(7)

第7回

  • X ポスト
  • このエントリーをはてなブックマークに追加

(2)簡単なクライアントアプリケーション開発

(ア)開発モジュールの起動とデータベース作成

 CubeWalkerは開発モジュールと実行モジュールの2つで構成されています。開発者は開発モジュールを使用してアプリケーションを構築します。開発モジュールは各種設定情報やMDX文などをリレーショナルデータベースに登録します。実行モジュールはそれら設定情報とMDXをデータベースから読みながら動作します。ではまず、開発モジュール(CW Conductor.exe)を起動しましょう。

開発モジュール起動画面
開発モジュール起動画面

 最初にCubeWalkerの設定データ格納用のリレーショナルデータベースに接続します。初回接続時には次のようなメッセージが表示されます。[はい]をクリックすると接続先データベース内にプロジェクトを作成します。

初回接続時のメッセージ
初回接続時のメッセージ

 CubeWalkerの試用版を使う場合は、次のような「プロダクトキー入力」画面では何も入力せず[OK]ボタンを押下します

「プロダクトキー入力」画面
「プロダクトキー入力」画面

(イ)キューブへのセッション追加

 ログインすると、次のような画面が表示されます。

ログイン後の画面
ログイン後の画面

 右上の[接続先]に現在ログインしているリレーショナルデータベースが表示されます。ここに、SQL Server Analysis Servicesへの接続を追加します。

画面右上の[接続先]に現在ログインしているリレーショナルデータベースが表示される
画面右上の[接続先]に現在ログインしているリレーショナルデータベースが表示される

 右クリックで[接続先の追加]を選択すると、「接続先の編集」画面が表示されます。

「接続先の編集」画面
「接続先の編集」画面

 「接続先の編集」画面で任意の名称を入力し、DB種類に[SQL Server Analysis Services]を選択、Data Sourceにキューブが作成されているマシン名、Initial Catalogに多次元データベース名を入力して[OK]ボタンを押下すると、接続が登録されます。[接続テスト]ボタンを押下することで接続の確認ができます。

(ウ)画面の作成と検索条件項目の作成

 キューブへの接続が追加できたら、画面プログラムの作成です。開発モジュール左上の[メニュー]エリアにて右クリックし、[メニュー項目の追加]を選択してください。

 次のような画面が表示されるので、任意のメニュー名称を入力し、[スタイル]項目で[ダブルクリックでフォームを開く]を選択して[OK]ボタンを押下します。

「メニュー項目の作成」画面
「メニュー項目の作成」画面

 すると、メニューエリアに、登録したメニューが表示されるので、当該メニューを必ずチェックしてください。[フォーム未設定]を選択し、右クリックで[新規作成]-[リストフォーム]を選択します。

当該メニューをチェックし、[リストフォーム]を選択
当該メニューをチェックし、[リストフォーム]を選択

 次のような「新規作成フォーム」の画面が表示されます。[キャプション]欄が新規作成するフォームのキャプションになりますので、任意の名前を入力します。このとき[検索対象接続先]を「現在のデータベース」ではなく、「接続先の編集」画面で追加したSQL Server Analysis Servicesへの接続を選択してください。

「新規作成フォーム」画面
「新規作成フォーム」画面

 CubeWalkerで作成するフォームの基本は下図です。上部に検索条件項目を配置するエリアがあり、下部は検索結果を表示するグリッドエリアになっています。

「リストフォーム」画面
「リストフォーム」画面

 検索条件項目は開発モジュール右側の[検索条件]エリアで作成します。ここでは最も簡単に、検索対象の年度を文字入力する検索条件を追加してみます。[スタイル]-[文字]を選択し、右クリックで[追加]を選択すると、次のような画面が表示されます。

「新規検索条件の追加」画面
「新規検索条件の追加」画面

 ひとまずこのまま[OK]ボタンを押下します。すると、下図のような画面が表示されます。

「新規検索条件」画面
「新規検索条件」画面

 DB項目名が、MDXが受け取るパラメータになります。MDXは2バイトコードをパラメータとして受け取れないため、この欄は半角英数字で入力してください

 ここでは年を指定させるため、DB項目名を「NEN」、スタイル欄を「数字のみ」、前キャプションのテキストを「年」、最大文字数を「4」にして[OK]ボタンを押下します。

 検索条件エリアに新規検索条件項目が追加されたのが確認できるので、その項目をフォーム上の検索条件エリアにドラッグ&ドロップします。

新規検索条件項目をフォーム上の検索条件エリアにドラッグ&ドロップする
新規検索条件項目をフォーム上の検索条件エリアにドラッグ&ドロップする

 検索条件項目がフォームに配置されます。フォーム上検索エリアの空いている部分(検索条件項目が配置されていない部分)で右クリックし、[保存]を選択します。

(エ) 画面の検索MDX作成

 次に、この画面が発行するMDXを記述します。作成中のフォームの右側に、既に[検索]ボタンが配置されています。これを押下すると、次のような画面が表示されます。

MDXの編集画面
MDXの編集画面

 この画面がMDXの編集画面です。先ほど画面に配置したパラメータが既にパラメータ欄にありますので、[処理]欄に、このパラメータを使用したMDXを記述します。

 CubeWalkerは、ADOMD.Netを使用し、プロシージャ化したMDXを発行します。そのため、記述するMDXがパラメータを受け取る場合、そのパラメータは「StrToMember」などの関数を使用してMDX内にて使用します

例:パラメータで受けとった年の、月別、商品別売上クロス集計を取得するMDX
SELECT	{ [Measures].[URIKINGAKU] } ON COLUMNS,
	{ StrToMember(‘[URIAGE DATE].[YYYY-MM-DD].[‘ 
+ @NEN +’]’)
.Children } ON ROWS FROM [Sales]

 MDXを記述し[OK]ボタンを押下すると、クライアントアプリケーションが完成します。

(3)実行モジュールによる動作

(ア)ライセンスファイルの作成

 CubeWalkerの実行モジュールを動作させるためには、専用の接続情報ファイルを生成し、同じフォルダに配置する必要があります。接続情報ファイルは開発モジュールの[ツール]メニューから生成できます。

システム名を入力(試用版は変更不可)
システム名を入力(試用版は変更不可)

 上図の[システム名]は、実行モジュール起動時、メニュー画面の上部に表示される「システムの名前」です。ただし、試用版の場合はかならず「試用版」と表示されるので、この欄に入力した名前は表示されません

(イ) 実行モジュールの起動

 作成した接続情報ファイル(BloLicense)を実行モジュール(CW.exe)と同じフォルダに配置し、実行モジュールを起動します。

実行モジュールを起動
実行モジュールを起動

 このように、CubeWalkerでは、多次元データベースにMDXを発行するクライアントアプリケーションを、とても簡単に作成できます。

 CubeWalkerでは、このほかにもさまざまな機能を持ったアプリケーションも開発可能です。詳しくは試用版とともにダウンロードされるマニュアルを参照ください。

まとめ

 本連載の最終回である今回は、MDXを発行するクライアントアプリケーション、特に開発ツール「CubeWalker」を使用したアプリケーションの作り方について解説しました。SQL Server Analysis Servicesを使用したBIシステムの構築の際には、ぜひ検討ください。

参考資料

この記事は参考になりましたか?

  • X ポスト
  • このエントリーをはてなブックマークに追加
難解クエリー言語「MDX」に挑戦連載記事一覧

もっと読む

この記事の著者

大家 正巳(オオヤ マサミ)

株式会社ヴィバーク代表取締役。 システムアナリスト。 この度、当社では SQL Server Analysis Services に接続し、MDXの発行が可能な BIシステム構築ツール「CubeWalker」を開発しました。2009年10月より発売致します。 高速かつ安価なBIシステム作りに、是非お...

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

この記事は参考になりましたか?

この記事をシェア

  • X ポスト
  • このエントリーをはてなブックマークに追加
CodeZine(コードジン)
https://codezine.jp/article/detail/4340 2009/10/21 14:00

おすすめ

アクセスランキング

アクセスランキング

イベント

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー

アクセスランキング

アクセスランキング