データ駆動型DX基盤を創る

# 最近データ駆動型DXという話を聞きますが・・・・
最近、DX界隈において **「データ駆動型DX」** という言葉をよく耳にしますが、このデータ駆動型とは一体何を意味するのでしょうか？

多分以前より使われている **[データ・ドリブン」** というキーワードから派生しての新種DX系用語なのだと思いますが、ここで **非常にシンプルな疑問を一つ** ・・・

その想定は、**何時のデーターで駆動させる** DXなのでしょうか？

勿論、この **駆動**　には、駆動 **トリガーとしての時間** と **処理対象としての時系列幅** が含まれます。

データ処理の基本は、対象のデータが溜まる事を待たなければなりませんが（昨今のAI系手法を使って予測を立てる！というアプローチも有りますが、勿論その確度を高める為の学習データも待たなければならないジレンマが共存しています）、待ち望んだデータが準備出来ても **何時のタイミングで利用出来るのか？** が次の大きな重要ポイントになってきます。

# データ業界の普通な前提条件（専用作り込み系を除く）
多分、この話をした場合のデータ側想定は、現場で進行中のデーターオペレーション（通常業務）が一段落したら、翌日一番に間に合う様に「予め事前決定された仕様」で処理を行い、所定の場所（DWHやデータレイクなど）に展開しておく・・・・

![スクリーンショット 2022-07-07 14.05.35.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/197589/9dde5df8-6f24-73f9-2661-eea46ce37733.png)

型の利活用が普通なのではないでしょうか？

勿論、この場合は「後追い型」のデータ駆動型DXで対応する事になり、事前の想定外のケースに対する柔軟性は、次回のDWHの見直しの際に・・・・という話になるのが殆どだと思います。

また、このタイプの処理対象が「サイロ化された業務別のDB」上に散在する形になり、それらを横串で処理する様な場合は後から揃えて別DB上で作業を行う・・等の複雑な仕組みをデザインしなければなりません。

この方式の最大のデータ取り扱いに対する弱点は、常に後追いの処理になるので **過去の反省の精度を劇的に向上できる** という領域に収まってしまう部分にあります。

#### 変化の兆しは、その変化の極めて直近から始まる・・・・
#### 極めて今に近い変化の兆しを捉えて、直前迄のデータを最大限に活用する・・・

勿論、機械学習に掛けながら・・という仕組みを組み上げる事も可能ですが、この場合は常に現場で稼働する業務用データベースに対して、 **結構負荷の高い機械学習関連の処理をかけ続ける** 必要が出てきます。

**その後付けのトランザクション・・・設計時に予め組み込まれていましたか？**

因みに、この後付けトランザクション問題の解り易い事例としては、BI系の仕組みを導入して使いこなせるようになったユーザが直面する、 **「前向きに行き詰まったBI環境問題」** が有ります。特に昨今のデータ環境ツール群に関する劇的進化により、オンデマンド・オンタイムで遠慮会釈無くクリエイティブなBIを行いたい！というニーズ（使いこなせるが故の悩み）に対して、既存のデータオペレーション・運用でどの様に対応できるのか？が大きな課題として顕在化してきているのではないのでしょうか？

# では、現場とDX側に時差が無かったとしたら・・・
この、永年必然的前提条件化していた（？） **データ利活用の時差問題** ですが、昨今のデータ処理系環境の高度化や **ノーコード・ローコード化等と組み合わせる事で、その時差自体を意識する必要が無くなっているとしたら・・・** どの様にその環境が変わるのでしょうか？

![スクリーンショット 2022-07-09 12.05.28.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/197589/7af88144-0ee5-f36c-f4a3-8a05d4a00182.png)

多分、 **大きく影響を受けるのは「時間情報/時系列処理の取り扱い」** になると思います。

今までの処理では、シンプルにデータ記録時刻のタイムスタンプ値として **後から処理される**　だけのデータだったのですが、現場状況を時系列を同期出来る様になるので、より積極的・戦略的に重要なデータとして処理出来るようになると同時に、**極めて直近迄のデータを普通に取り扱う事が出来るようになります**ので、アラート駆動とかライブデータでの閾値駆動等をシンプルに実現可能になります。

例えば、BIをオンタイムのライブモードで駆動し続けるとして、その際に発生するクエリ処理を **既存の電子帳簿型システムに対して後付けで行う**作業のリスクを想定するのであれば、同期先のDX用データべーースに対して実施する事により **既存の安定して枯れた仕組みへの後付けリスクを最小化出来る** 様になります。

![COMPOSER_JP (1).gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/197589/2e089575-a8b5-60c1-bdd4-da308b4b4121.gif)
[実際の動画はこちら：YouTubeでURL公開中！](https://youtu.be/zvyQ285Q_E4)

# Equalumを使って即時・低遅延同期を実現
この例では、[以前に検証を行ったEqualum](https://qiita.com/wadaken1961/items/041dd19c26df4d31884c)を使った **「オリジナル側へのデータ処理」を即時に「ターゲット側へ反映」している状況** を動画にしています。（因みに、この動画の再生時間はオリジナルのままで、編集などを使って修正等を行っていません）

![画面録画 2022-07-09 時刻 12.23.50.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/197589/4c6e52b5-6f26-d035-696a-d9e3b2038963.gif)
[実際の動画はこちら：YouTubeでURL公開中！](https://youtu.be/gX65XxparIU)

今迄は、専用の作り込み系メカニズムを用意しないと、この類いのデータ同期・流通を実現する事は、基本的に仕様に入れるとコストが跳ね上がる！というイメージが定着しているので、**最初から諦める**という判断だったのかもしれません。

しかし、現在では数台構成のクラスターをオンプレミスやリモート側環境に用意して、普通のOSS系ソリューションを導入する様なイメージで**誰でも特別高度な知識や経験無く立ち上げる事が可能**になっています。

# で、この駆動環境が出来ると・・・
さて、この **即時同期** の環境が構築できたとして、何が一番変わるのでしょうか・・・・

多分、 **バッチ処理** のコンセプトが **データを直接的・間接的に移動させるための処理** から、データ処理本来の目的である **データの5W1Hを取り扱う処理** に戻っていく事が、この時差解消による最も大きな変化になるかと思います。
また、同時にこのバッチ処理自体も、 **現場の実時間に同期させて「より高度で戦略的な時間間隔」でのデータ集計系処理** や、**事前に要件定義等が無くても、実情や変化に応じてオンデマンド処理が可能になる** 等が普通に出来る様になるでしょう。

即時同期させたDX側のデータベースには、**サイロの壁を越えて自動展開されるデータ駆動型ソリューションの価値を最大化出来るデータが常に存在・更新されて続けています** ので、これらのデータに対して時間に縛られる事無くバッチ処理を行うことにより、極めて今に近い時点までのデータを使ってのDX処理が可能になると同時に、**既存のDWHやデータレイクをリアルタイムDWHやデータの生け簀ではなく、データの養殖や品種改良が行えるデータレイクに進化させる事が可能**になります。

![スクリーンショット 2022-07-09 12.06.14.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/197589/45a2ccea-d7fe-a725-1e0f-9187d6ce2885.png)

Equalumを介したデータ環境は、有る意味で完全な分業制を実現できますので、既存のデータ環境への負担・リスクを極めて小さくしながら、同時に同期先で最先端のデータ処理や本来の目的での各種バッチ処理を実行出来る様になると同時に、状況や環境の変化に即応した新しい想定やアイディアに則ったデータアクセス・処理の流れを柔軟に作成する事が可能になります。

# 分担データシステムというコンセプト
Equalumを使ったデータ即時同期を活かして、既存の電子帳簿型システムを原則的にそのまま活用し（CDC関連の調整のみ）、無駄でハイリスクなスクラッチベースのデータシステム再開発を行わないで（これで、結構なプロジェクトが苦労されていると思います・・）、常に最新のデータ駆動型DXや、データ統合、即時型ライブBCP等を実現する・・・これが、分担データシステム（適材適所・適時（適宜）適量型データ処理を実現）のコンセプトになります。

では、何を分担するのか？

#### （1）通常の電子帳簿型処理（既存のシステムを原則そのまま活用）
今までのDWHコンセプトの場合、扱うデータ仕様・構成を変えようとした場合に「このレベルから弄る」と必要が出てきたり、そもそものデータ処理構成を最初から書き直す（DWH再構成）必要が出てきたりしますが、Equalumで分担型にするだけで、この辺の時間ロスとかリスク、またそれらに付随するコスト増をシンプルに抑える事が可能になります。

**そのデータベース・・・CDC設定ができますか？**

一見ハイレベルな技術的内容の話に見えますが、Equalumの場合は各データベースが一般的な機能・仕様として持っている、各種のログ系情報を「外部エージェントが参照出来るように設定するだけ」で実現が可能な点が、この分担データシステムの導入ハードルを一気に下げると同時に、データ処理の流れをノーコードで実現する事により、データを取り巻く状況や戦略変化に対する即応性も劇的に向上している仕組みと言えます。

因みに、このエージェントはEqualumのクラスター上で稼働しますので、現在展開中の既存系データベースの中に **「後入れのサービス」を入れる必要はありません。**

就業時間後の大量な夜間バッチ処理から解放されて、**シンプルに戦略的サイロ化展開** された現場データベースに対する、**電子帳簿・電子大福帳として完全に特化した専用・専門利用が可能**になります。

#### （2）サイロ化電子帳簿の即時統合・各種オンタイムDX系処理
これは、（1）と逆のアプローチになるかもしれませんが、既存のサイロ化データや、企業・団体における組織変更・業務改革の際のデータ統合問題等（企業合併等でも同様）における、もしかすると一番シンプルな移行・解決策になるかもしれません。

特にデータ利活用に注目が集まっている状況で、サイロの壁問題が大きくクローズアップされてきています。そしてその壁問題の解決の為にこれらサイロ化された既存データベース全体の抜本的構造見直しから着手されるケースも増えているかと思います。

分担データシステムにおいては、その利活用や統合DB構築をEqualumにより即時同期された先のデータベース上に新たに構築する事になりますので、言い換えれば既存のデータシステムはそのまま利用を継続し、CDC設定とEqualumがログ系情報を参照出来るようなアカウントを1個創って頂くだけで粛々淡々と利活用側データベース上に、これらのデータベースが創出されていきます。

#### （3）CDCレプリケーションベースのライブBCP保全
EqualumのCDCレプリケーションを使って、出来るだけ直近迄の状況を指定された遠隔地のデータベースに反映する様に設定しておけば、今までの時差前提のバックアップ運用や高度な創意工夫によるBCP運用実現といった領域も、同じデータ駆動型DX基盤の機能を共有する形でシンプルに実現する事が可能になります。必要なデータを何処にCDCストリーミングでシンプルに全同期させるか？だけを意識するだけで、先程のEqualumのCDCストリーミングによる同期速度でバックアップが自動生成される世界を誰でも手に入れる事ができます。

また、EqualumのExactly Once機能もこの領域において大いに役に立つ仕組みとして利用できますので、高信頼性で寸前までのデータが其処に有る・・という環境を1個の仕組みで（今まではそれぞれ専用の仕組みが必要）賄う事ができ、通信の障害時にもログ情報の再現でその遅れを効率的に追いつかせる事が出来るので、Exactly Onceの信頼性と併せて効率的なリモートバックアップ環境にも活用する事が可能になります。

# 分担データシステムの構成
また、この分担データシステムの場合は「機器の目的が明確化」されますので、それぞれに応じた過不足の無い構成が可能になります。

#### （1）電子帳簿側のシステム仕様

通常業務に必要なだけのトランザクション性能（深夜バッチ対応は考慮せず）で構成設計し、Equalumの向こう側で中間統合（後述）を掛ける・・というアイディアを活かせば、逆に現場業務単位でのデータベース展開（戦略的サイロ化作戦）も可能になります。

また、こちら側は電子帳簿・電子大福帳としての利用を優先する形になりますので、静かに粛々淡々とデータを守るように仕様・運用策定をすればOKです（二重化やバックアップ運用等の稼働信頼性を優先）。

最新のデータ状況は、Equalumによって指定されたDX側のデータベースに即時反映されますので、静かにデータ運用を展開する形で今後発生するDX系ソリューションに対する対応とは無関係の仕組みとして粛々と利用していけばOKです。

#### （2）DX側のシステム仕様

こちら側の仕組みは、従来のデータ・ベースでは無い、データ・コンピューティング性能優先で仕様・運用を策定する形になります。ですので基本的なデータ保全系処理は、各データベース標準機能で利用（無駄な信頼性追加を行わず、処理性能に振り切った構成）する事にし、無駄な二重化等は行わずに（この辺は、最新のクラウド技術を活用します）、CPUとメモリは完全にDX用途に振り切った構成で利用するようにします。

以前に検証結果を共有させて頂いた、クラスター型のインメモリMySQL互換データベースのSingleStore等は、まさにこの「データ・コンピューティング」エンジンとして最適な利用価値を提供出来ると思います。
![スクリーンショット 2022-07-08 10.40.47.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/197589/ea3de17f-b2c9-2446-81e2-46c37700193a.png)

リレーショナルDBとして辻褄を維持するために、DDLを使えるフロント側のノード（マスター・アグリゲータ）は同時に1ノードのみで利用する事になりますが、その他のアグリゲータ・ノードはDMLが普通に使える形になっていますので、このデータベースを利用するアプリケーション側から見れば、バックエンドのデータを共有する形で必要台数のMySQLが展開している様に見えます。
また、実際にSQL処理を行うリーフ・ノードはHadoopライクにスケール展開する事が可能なので、こちら側も必要に応じてノードを追加していく「数年に一度のDB祭り」を行う事無く、粛々淡々と維持管理が出来る様になっています。

# データ駆動型DXを支える分担データシステム
また、このDX側を処理性能に振り切った構成にする事で、前述の現場と時間軸を共有する形でデータを諦めない、時間を我慢しないデータ駆動型DXを実現する事が可能になると同時に、今後加速度的な進化が予想・期待出来る「各種のデータ処理系ソリューション」に対しても、それらの導入理由や導入価値の最大化に対して、大きな貢献を維持出来るようになるでしょう。

#### データを待たない
#### データを諦めない
#### オンタイム・オンデマンド・ロックフリーのデータ駆動型DX

を分担データシステムはシンプルに実現出来るという事になります。

冒頭に戻りますが、データ現場とDX環境において、データに関わる時間情報・処理の取り扱い制限は・・・・ほぼ無くす事が出来る時代になった・・・という事を是非ご理解頂ければ幸いです。

# IoTデータのサイロ化問題について
余談ではありますが、現在新たなサイロ化問題がIoT領域で進行してきています。これは、IoTデータの収集周りを頑張って構築したけれど・・それだけだと単純にタイムスタンプ情報＋数値情報のデータロギングにしか使えずに、そのIoT系情報の価値を最大化するための周辺情報が間に合わずに、その数値データが意味する事がよく解らない・・という状況を意味しています。

データが間に合わないのは仕方が無い・・時代は過去の遺物になりました。

自由に出来る最新の新鮮なデータを、常に手前側に準備しておく事で正しいデータ駆動側DXを実現する・・・・為の分担データシステムになります。

# 多段のCDC構成を使った例・・
分担データシステムにおけるEqualumの役割は、単純に異なる2個のデータベース間を即時同期するだけではありません。データ・コンピューティングという観点で構成を考えた場合、CDCストリーミングを多段で使う事により **データベース・エンジンをデータ・プロセッサとして使う** というアイディアが可能になります。

データベースの変化を使って必要なデータベースを作成・更新し、その状況を更にCDCストリーミングで別のデータベースに反映させていく・・・・

以下は、この仕組みを使った一例になります。
![画面録画 2022-07-09 時刻 12.26.48.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/197589/a2c90600-c3c6-4582-cf0d-ceab781a405c.gif)
[実際の動画はこちら：YouTubeでURL公開中！](https://youtu.be/Nu0urVU9iJ4)

このケースでは、左側の上から5個の棒グラフが個別データベースのテーブルの状況を可視化していて、ランダムにそれぞれのテーブルが更新されている事が判ると思います。また、真ん中の紫色の円グラフは、Equalumの即時同期により5個のテーブルを自動統合（マスター化）している別データベースのテーブル状況を可視化しています。現場側のデータ・オペレーションが即時にCDCストリーミングされて、統合データベースが更新されている状況が確認出来るかと思います。

次に、この統合データベースの状況を同じくCDCストリーミング（多段のCDC構成）して、DX用途別の3種類の情報を抽出処理した別データベース向けのテーブル更新（3個分）の状況を円グラフで可視化しています。EqualumのCDCストリーミング処理の低遅延・高速性が良く判るかと思います。

また、一番下の棒グラフは中央の紫円グラフに紐付いているデータベース・テーブルをEqualumが即時のCDCレプリケーションで異なる別のデータベース上に完全複製を実施している状況を同じく可視化している状況になります。

この一見すると非常に複雑なデータ流通の仕組みを、Equalumの場合はノーコードで構成する事が可能であり、同時にサポート可能な組み合わせであればExactly Onceの処理もサポートしていますので、1システムで3度美味しい（即時ストリーミング、通常バッチ、レプリケーション）利用が出来るようになっています。

# まとめ
データを取り扱う目的が此処に来て急激に変化してきていると指摘され始めています。
![スクリーンショット 2022-07-08 11.33.09.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/197589/6b68c714-ad3b-c8c3-d6d2-247964b5c088.png)
また、この流れは今後益々広範囲に急拡大して行くと思われ、時間系の扱いに関してはさらに加速化して

#### タイム・イズ・マネーからタイミング・イズ・バリュー

に進化していく事でしょう。

同じ処理空間で異なる方向の作業を同じ時間で共有出来ない・・・と気が付いてDWH系のアイディアが生まれ多くのデータを救ってきました。

しかし、そのプロセスに厳粛に存在し続けてきた **処理時間の時差問題** と現場の **変化に即応出来る柔軟性の確保が難しい課題** が、もしかすると現在のDX（それもデータ駆動型の）の足枷になっているのであれば、オンタイム・オンデマンドで同じ時間を共有できる分担データシステムが現実的に実現出来る様になった・・という事を是非思い出して頂ければ幸いです。

データをシンプルに即時同期させて
既存系に以後一切の同時間クエリ負担を掛けずに
創意工夫・改善・改革を実現するクリエイティブな仕掛けを
情け容赦無く・縦横無尽にオンタイムで仕掛ける

今の仕組みを導入するだけで、ノーコード・ローコードの恩恵を最大限に受ける形で

意外にサクッと！実現出来る時代に入っているという事をぜひご理解ください。

機械学習＆AIやより高度化するAI連携RPA、またスマホアプリ経由の24時間365日対応の止まらないサービス基盤等、今回ご紹介した分担データシステムを上手く組み合わせる事で、より高い即時性とサービス・ビジネスの高度化が実現できると思います。

ご参考になれば幸いです。

# 次回は・・・・
次回は、今回の分担データシステムを活かした、時系列予測を含めた新しいDX環境構築のツールについて検証してみたいと思います。機械学習からのAI系未来予測等をSQLでシンプルに実現出来る仕組みを組み合わせて、より高度なデータ駆動型DX基盤・・っぽいモノをサクッと！創ってみる・・をテーマにする予定です。

# 謝辞
本検証は、Equalum社,SingleStore社,insightsoftware社の全面バックアップにより実施しています。この貴重な機会を提供して頂いた3社に対して感謝の意を表すると共に、本内容と各社の公式ホームページで公開されている内容等が異なる場合は、3社の情報が優先する事をご了解ください。

[データ駆動型DX基盤を創る（補足編1）](https://qiita.com/wadaken1961/items/657521d83649571ee76e)
[データ駆動型DX基盤を創る（補足編2)](https://qiita.com/wadaken1961/items/dc579f358f21f6c67a7b)

**[適材適所・常時全量のデータ処理を時系列透過で実現するコンセプト]**
[**役割分担型データ・システムというアプローチ**](https://qiita.com/wadaken1961/items/e89e698dd8f619b53daf)はこちら