LoginSignup
0
0

More than 1 year has passed since last update.

【マテリアライズクエリ】複数のデータソースからひとつのデータプールを作ってみる

Posted at

Sharperlightマテリアライズクエリは、複数データソースからのデータ統合などに利用できます。
この記事では、会社別にデータベースが存在するSAP Business Oneを使用します。
ユニオンクエリを作成して、ひとつのクエリ定義で米国本社と豪州支店のデータを抽出し、マテリアライズクエリデータベースにプールします。

マテリアライズクエリの作成

Sharperlightアプリケーションメニューからマテリアライズクエリを起動します。
2022-03-12 Figure 01.png
[新規]アイコンをクリックし、マテリアライズクエリデータベース(以下 MQデータベース)を作成します。
:bulb:MQデータベースは、Sharperlightシステムデータベースが存在するデータベースサーバー内に作成されます。
2022-03-12 Figure 02.png
2022-03-12 Figure 03.png
作成されたら、コードタイトルを変更します。[適用]ボタンを押して確定します。
2022-03-12 Figure 03-1.png
SQLサーバーマネジメントスタジオでデータベースサーバーを覗いてみます。MQデータベースが確認できます。
2022-03-12 Figure 04.png
次に[テーブル編集]ボタンを押して、集めたデータをプールするテーブルを作成します。[新規]ボタンで開始します。
2022-03-12 Figure 05.png
[クエリビルダ] (Sharperlight製品群内で共通のクエリ設計ツール)が開きます。クエリの定義がそのままテーブルの定義になります。
2022-03-12 Figure 06.png
[プレビュー]ボタンでクエリの確認!確認が済んだら[OK]を押してクエリを確定します。
2022-03-12 Figure 07.png
いくつかの確認メッセージが表れます。[OK]、[Yes]と進みます。
2022-03-12 Figure 08.png
2022-03-12 Figure 09.png
テーブルが作成されます。ダブルクリックでテーブルの編集ダイアログを開きます。
2022-03-12 Figure 10.png
コードタイトルを設定します。
2022-03-12 Figure 11.png
[テーブルの詳細]タブに移動するとテーブルの構造定義が拝見できます。
2022-03-12 Figure 12.png
自動付与されるテーブルIDがそのままテーブル名に使用されます。
2022-03-12 Figure 13.png
編集ダイアログを閉じます。メッセージが表示される場合がありますが[Yes]で先に進みます。
2022-03-12 Figure 14.png
実際のMQデータベースを覗いてみます。テーブルが作成されていますね。これで準備完了。
2022-03-12 Figure 15.png

MQテーブルのデータの更新

テーブルを選択した状態で右クリックメニューを表示します。[データの更新を実行]を選びます。
2022-03-12 Figure 16.png
MQテーブルで定義したクエリが動き、データソースであるSAPの米国と豪州のデータベースからデータが抽出され、MQデータベース内のテーブルに保存されます。
2022-03-12 Figure 17.png
2022-03-12 Figure 18.png

マテリアライズクエリのデータを抽出

Sharperlightアプリケーションメニューからクエリビルダを開きます。
2022-03-12 Figure 19.png
[フィルター]領域の[製品]検索を開きます。先ほど作成したマテリアライズクエリが見えます。それを選択します。
2022-03-12 Figure 20.png
[テーブル]検索では、対象マテリアライズクエリ内のテーブルリストが見えます。今回はひとつのみです。
2022-03-12 Figure 21.png
会計期フィールドと金額フィールドを出力してみます。会計期別の売上金額の合計が表示されます。
更に会社名による動的出力オプションが設定されているので、この例では米国と豪州の出力フィールドが動的に作成されます。
:bulb:動的出力オプションについてはまた別の記事で詳しく書きます。
2022-03-12 Figure 22.png
プレビューをすると...、ほらこんな感じ。比較が簡単に行えますね。
2022-03-12 Figure 23.png

あとがき

今回はマテリアライズクエリの概要を簡単に書くことが目的でしたので、MQデータベースもMQテーブルも自動付与されたIDが名称の一部になりました。しかし、それではデータベースやテーブルが何を意味するのか不明で、データベースを管理する人には厄介なものになります。後日、名称の変更方法については記事として取り上げていきます。
更にデータの更新では、ただ単純にテーブル内のデータを削除して、新たに抽出したデータを書き込んでいます。抽出するデータもフィルター値が一定のため、毎回同じデータセットです。こういったところも他にいくつかの機能がありますので、後日記事にしていきます。
またスケジューリングも可能なので、その詳細も記事にします。
:postbox:Sharperlight

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0