BI系作業で便利なテーブル跨ぎをノーコードで・・
かなり以前に検証したLogiCOMPOSERに関する最新版での動作検証機会を得ましたので、取り急ぎzエンジンを使ったFUSION機能について簡単な試用を行なってみたいと思います。
今回のバージョンは、検証環境構築時点で最新版のV22.4.2を使います。
FUSIONについて
FUSIONは、COMPOSERの内部で稼働しているオリジナルのzエンジン内部のインメモリ空間を活用した、一般的にデータベース界隈で使われているJOIN機能になります。
もちろん、SQLをバリバリに書ける方がDB上で処理をして、その結果をBI等で活用しても良いのですが・・・・昨今のノーコードブームに乗っかる形で、今回はCOMPOSERのGUIインターフェースで何処まで行けるか?!を試してみる事にします。
まずはFUSIONの設定から・・
この操作は、COMPOSER上でデータソースの設定が行える権限が必要なので、その前提で以下の作業を行なっていきます。
上部のタブ上でSourcesを選択して右上にあるAdd Sourceを選択します。
データソースの登録画面に入りますので、このGUI上で必要な設定を行なっていきます。取り急ぎの作業は今回の検証で使うFUSIONソースに名前を付ける事から開始します。
次に、少し下側にあるAddボタンを選択肢データ・エンティティーを設定します(今回は、既存のコネクションをそのまま使います)
さて、此処からが本番です
From Connectionを選択すると
詳細情報を設定する画面に入りますので、Entitiesの右側になるAddボタンを選択して順次必要事項を選択・入力していきます。
最後に前回のツールで生成したテーブルを選んで右上のApplyを選択します。
問題が無ければ、サンプルの小さなクエリが送られてデータベース側からの反応が確認できます。
右上のSave Sourceを選択して基本部分を登録します。
怒涛の必要テーブル登録・・・
後はこの基本テーブルに必要な周辺テーブルを登録していく作業になります。
今回の検証では、メイン1個に対してルックアップ的なテーブルを3個連携させてインナー・ジョイン形式での動作を確認しました。
では、いよいよFUSION関係の定義を・・・
FUSIONソースを構成する必要なエンティティーが揃ったら、いよいよノーコードFUSIONの設定に移ることにします。
Source Creationのメニュー部分にJoin Definitionという項目がありますので、Addボタンを選択します。
相互関係を設定するGUIが表示されるので、必要な選択・設定を順番に行えばOKです。
メインのテーブルを選択して
相方のテーブルを選択します。
それぞれの共通キーを選択してApplyを選択すれば終了です。
今回は3種類のルックアップ系テーブルを連携させますので、同じ作業を3回行います。
設定が終了したら、右上のSave Sourceを選択して終了となります。
因みに、そのボタンの左側にあるPreview Sourceを選択すると・・・・
設定で構成された内容に基づく処理が行われ、サンプルのプレビューが行われます。
無事にそれぞれの参照コードが文字列データになっている事が確認できると同時に、利用可能なデータソースとしてメインのメニューに登録されている事も併せて確認する事ができました。
少しカッコよくする小技・・・
此処まで来れば、あとは通常のデータソースと同様の各種利用可能な可視化オブジェクトと連携させ、ノーコードでのダッシュボードを作成する事が出来るようになります。
但し、このままでは「あまりにも正直に全ての情報を表示」してしまいますので、その辺を少しカッコよく体裁を整えてみたいと思います。
まずはタイムゾーンの修正から・・
LogiCOMPOSERの場合、標準デフォルトのタイムゾーンはUTCになっていますので、今回利用する時間情報を全てAsia/Tokyoに変更しておきたいと思います。
作業的にはソース設定を行なった画面に入理、それぞれの登録ソースを選択しながら順次処理を進めていきます。
データソースを選択して・・・
右側のGUIでタイムゾーンを変更します。
修正後に右下のSaveボタンを忘れずに選択して、順次作業を行います。
余計な情報を出さないようにする・・・
今回の検証では、メインのテーブルに存在するタイムスタンプを基準にしますので、その他のテーブルにあるタイムスタンプ情報を表示しないようにします。
作業的にはGUIの左側にあるトグルスイッチをOFFにするだけでOKです。
同様に共通のキー情報関連を中心に表示項目の整理を行います。
オリジナルのテーブルに無いデータで可視化したい・・・・
BI系の作業をしている場合、特に今回のような複数のテーブルをJOINして新たな洞察や知見を得る・・・等の作業を進める場合に、オリジナルの テーブル間のデータを組み合わせて新たな派生カラムを作成したい・・ という場面に直面する事が多いかと思います。
その場合は、先ほどの画面の右上にあるAdd Derived Fieldを選択して、専用のGUIエディタ上で簡単な作業を行えばサクッ!と実現できます。
専用のGUIが出てきますので・・・・
左上で派生カラム名を設定します。
右側のカラムリストから必要な情報を選択して、簡単な式などをエディタで作成します。
エディタの右下側にRunボタンが有りますので、処理出来る状態になったら実際に起動を行なって確認してみます。
下側のプレビュー画面に想定通りの結果が出てきましたので、GUIの一番下側右にあるSaveを選択して実際の登録作業を行います。
無事にFUSION後のテーブルに対して、新規の派生カラムが登録された事が確認できました。
では、最後にサクッ!と可視化してみます。
可視化に関しては、以前の検証と同じ作業を繰り返せばOKです。
オリジナルの基準テーブル内に記録された参照コード形式のデータが、インナー・ジョイン形式で連携させた外部テーブルの情報に置き換わっている事が確認できました。
また単価と個数を掛け合わせた結果(総額)も無事に可視化対象になっていますので、それらを組み合わせた最適なBIダッシュボードも、ノーコードで作成する事が可能になっています。
今回のまとめ
今回は、最新版のLogiCOMPOSERを扱う機会を得て、昨今巷を騒がせている「ノーコード・ローコード」的な観点から、データベース側で保守本流・王道のSQL版テーブルJOIN作業を行わずに(多分、逆にその方が柔軟&野心的にデータ駆動型BIに取り組めるかと思いますし・・)COMPOSERのzエンジン内部を使った「戦略的其の場凌ぎ」のFUSION機能を活かした可視化を行なってみました。
時間の関係上シンプルな構成を一種類だけの動作検証になりましたが、共通キーベースのFUSIONを活用する事により、上流側のデータベースに余計ない心配と負担を掛ける事なく、アレコレのテーブル組み合わせによるデータ駆動側洞察や知見の創出が可能そう・・だという事が判りました。
勿論、zエンジンの守備範囲は稼働環境上で有限ですので、巨大なテーブル同士をJOIN!という事は難しいかと思いますが、逆に用件定義とかをすっ飛ばして「とりあえずこの組み合わせで、どんな感じが見えるのか?」を実現し、テーブル跨ぎの派生カラム活用で、新たな可能性を見出せるネタになるのでは?・・・十分期待できる結果を得ることが出来たと思います。
謝辞
本検証は、insightsoftware社の全面バックアップにより実施しています。この貴重な機会を提供して頂いた同社に対して感謝の意を表すると共に、本内容とinsightsoftwareの公式ホームページで公開されている内容等が異なる場合は、insightsoftwareの情報が優先する事をご了解ください。