見出し画像

ALZETA でデータ処理の小宇宙を作る

この記事を読んでいただきたい方

* データ分析に従事されている人/関心がある人
* 企業のデータ管理に従事されている人
* ALZETA でのデータ処理に興味を持っている人

データは溜めればよいというものではない

データ活用のためにはまずデータ整備が必要,ということで DWH やデータマート製品を導入されている企業さんは多いと思います.また,そういうデータリポジトリにデータをロードするために,数多くの ETL 製品を活用されているということもあると思います.では,そうやって集めたデータがどの程度活用されているでしょうか?もっと言うと,データの収集/保存管理に投入したコストがどの程度会社の売上/利益に貢献しているか,追跡できる状態になっているでしょうか?

残念ながらデータはお金とは違いますので,溜めるだけではよいことはありません.むしろ溜め方を間違えると,賞味期限切れの食品が詰まった冷蔵庫のように,電気ばかり食う穀潰しと化してしまいます.

データの収集/維持管理コストにどんなものがあるか挙げてみましょう.

データソフトウェア
「データを保存管理する」という用途だけでも,DWHデータマートという異なるカテゴリの製品があり,それぞれなかなか高価なソフトウェアが多いです.また複数の製品の間でデータを連携(これも,大変曖昧でよろしくない言葉ですが)する ETL 製品を導入する必要も出てきます.また,データ分析業務においては,分析ロジックや視覚化機能をもった BI ツールを導入することも必要です.

データストレージ
「データを保存管理する」ソフトウェアをオンプレのインフラで稼働させる場合,大容量で可用性の高いデータストレージを購入,維持しなくてはなりません.クラウド上の DWH などを利用する場合も,データ容量によって課金されますのでこちらも維持費がかかります.

ネットワーク
ネットワークのコストも頭が痛いところです.扱うデータが大きくなってくると,そのデータを DWH やデータマートにロードする/アンロードするためのネットワーク帯域も十分に確保しておかなければなりません.

スキル・人的コスト
ソフトウェア,ストレージ,ネットワークを揃えればデータが自動的に整理されて集まってくるわけではありません.データを収集,整理するにはソフトウェアを使いこなすスキルが必要ですし,それよりも企業内データの発生源や,業務でのデータの使われ方を熟知した担当者が必要です(これは,コストの問題ではないかもしれませんが).

このように,維持管理にコストがかかるデータです.活用度が測れないまま「とりあえず」溜めるというのは得策ではありません.昨今,ダークデータということがよく言われますが,ダークデータは主に構造化されていないデータのことを指し,表形式に整理されたデータはダークデータとは呼びません.しかし表形式データでも,溜め込まれているだけで活用されていないデータはたくさんあるのです.

なぜ溜めるだけになりがちなのか - 「使える」データとは

先ほども述べましたが,データ収集・整理は実は大変難しい作業です.これは普通のシステム構築とは異なり,ある特定の業務要件を満たせばよいというものではないからです.データ発生源はどんどん追加も変化もしていきます.また利用方法も今後どういう革新的な方法が出てくるかわかりません.そんな状況で,データ収集・整理の方法を考えるというのがどだい無理な話です.ただそうは言いつつも,会社でデータ収集・整理をするのだという方針が出たら,何か作らざるを得ません.そこで DWH やデータマートを使用した何らかの仕組みを無理やり作りますが,その時はもはやデータ収集・整理が目的になってしまっていますので,その中に「使える」データが入っているかどうかなどはどうでもよくなってしまうのです.手段が目的になってしまうということですね.

「使える」データと書きました.ではいったいどういうデータが「使える」のでしょうか.逆に「使えない」データとはどんなものなのか考えてみます.

1) 所在不明なデータは使えない
まずなによりも,所在のわからないデータは利用のしようがありません.ですので,「どんなデータがどこにあるか」が調べられることが重要です.この点で,Excel で社員の PC にデータが散在しているのは最悪の状況と言えましょう.また DWH があったとしても,その中の「どのテーブル」の「どの項目」に必要な情報が格納されているかがわからなければ,意味がありません.

2) 根拠のないデータは使えない
1) を解決して,なんとか探していたデータらしきものを見つけました.ただ,そのデータがどういう発生源からどういう処理を経て作られたものかわからなければ,それを使って何かをする意味は激減します.「参考ですが」という接頭辞をつけて分析レポートを作ることになるでしょう.また,契約や金銭に関わるものであれば,そもそも怖くて使えないですよね.

3) 鮮度がわからないデータは使えない
2) を解決して,データ源となるシステムと,処理内容を把握しました.しかし,そのデータがいつ時点のものであるかがわからないと,使っても意味はありません.たとえば,製品の売上個数記録があったとして,それに製品単価データを結合して売上金額を計算したいと思ったときに重要になるのは,製品単価データがいつ時点のものか,ということです.鮮度は「新しければ新しいものほど良い」というわけではなく,この場合,売上個数記録の最新データよりも,製品単価データが新しければ(当然,単価変更の履歴は含まれているとして)意味のある計算ができます.

以上を考えると,「使える」データというのは,
* Where(どこにあるか)
* When(鮮度がわかるか)
* How(どう作られたか)

という 2W1H がわかっているデータということが言えると思います.特に一番最初の Where が一番難しいところではないでしょうか.

ALZETA を使えば直ちに上の 2W1H が満足できるかというと,残念ながらそうでもありません.しかし,それぞれある程度解決に貢献することができると考えています.

Where(どこにあるか)について
ALZETA  は,フラットファイルでデータを保持して処理するということをご説明しました.フラットファイルでデータを保持することの美点の一つに,「テーブル名に制限がない」「項目名に制限がない」ということがあります.逆に,DBMS を利用する DWH では,テーブル名や項目名に何らかの制限がありますから,無機質的なネーミングとなり,直ちにビジネス上の意味を判別しづらいものになりがちです.例えば以下のような違いです.

DWH の場合
[テーブル名] FORM_0123b
[項目名] ADDR_1

ALZETA の場合
[テーブル名] 一般契約者申し込みフォーム(2018年度版)記帳記録
[項目名] 契約者勤務先住所(自宅住所と同じ場合は空欄)

ALZETA の方が,所望のデータの所在を特定しやすいですね.

How(どう作られたか)/When(鮮度がわかるか)について
How(どう作られたか)については,以下の記事でも話題にしました.

ALZETA ではデータの出自を説明する文書を作らず,データを生成した処理そのものを渡すことによりデータの出自を共有することができます.また,処理実行記録は ALZETA サーバーに残りますので,When(鮮度がわかるか)についても問題ありません.

ALZETA で DWH もデータマートも

下の画像は,これはある調査データを ALZETA で分析したときに作成した JOB で,約 200 個の PM からできています.

小宇宙フロー

最終的には,データをいくつかの観点から集計した分析レポートを作るのですが,このデータの場合「観点」を表現するデータ項目が元データ(一番上の「DWH 層」で囲われた青いアイコンがそれです)に揃っていなかったので,まず一時加工してそのための項目を作成しました,これが中間の「データマート(キューブ)層」で囲われた部分です.そしてそこから複数項目を組み合わせて集計してレポートを作成しています.

このように,通常 DWH とデータマートの役割分担がされてしまい,データの流れが見えなくなってしまう処理を,ALZETA では一気通貫に視覚化して実施できます.私は,これを ALZETA によるデータ処理の小宇宙と呼びたいと思います.

使われているデータ/使われていないデータを判別する

これを進めて,ALZETA ではサーバー内にデータとデータ処理(JOB)を全て内蔵していますので,どのデータがどの JOB に使われているかを簡単に知ることができます.この様子を視覚化したものが,見出し画像です(下に再掲します).

データ接続関係

少し小さくて見にくいですが,それぞれの粒は ALZETA 上のデータ(表ファイル)を示しています.また,粒と粒をつなぐ細い線は,ALZETA の JOB を表しており,その JOB では粒のどちらかが入力データでどちらかが出力データとなっています.したがって,たくさんの線が繋がっているデータは使用頻度が高いデータということになりますし,線が一つも繋がっていないデータは誰にも使われていないデータということになります.

DWH やデータマートといったデータ格納プラットフォームと,ETL などのようなデータ処理プログラムが別々に稼働している場合は,このようにデータの利用状況を把握することは大変困難ですが,ALZETA ではそれが簡単にできてしまいます.

いいなと思ったら応援しよう!