見出し画像

BACK TO THE FUTURE 歴史から学ぶ

私がデータの世界に足を踏み入れてしまったのは40年前(1983)のこと。社会人になって最初に配属されたのは物流部でした。業務は全て手作業。手書きの伝票を在庫台帳に転記し、電卓で在庫を計算したり、入出庫集計をしたり。毎日が電卓と集計表との戦いでした。当時もパソコンはありましたが、まだ高価でマニアの世界の道具。一般人はおろか会社にパソコンなんてない時代でした(表計算ソフト Lotus1-2-3 が日本で発売されたのは 1986年、Windows版Excelが発売されたのは1987年のこと)。入社二年目 (1984)、MAPPER言語で開発された物流システムが会社に初めて導入されれました。

MAPPER SYSTEM
MA
intaining Preparing and Producing Executive Report
MAPPERは、UNIVAC (現UNISYS) の前身である SPERRY社が開発したデータベース言語です。FORTRANやCOBOLといった第三世代言語 (3GL) が主流の中、①エンドユーザーでも容易に習得できる ②大幅な開発工数削減 ③プロトタイピングが容易 ④データベースとオンライン機能 を特徴とした第四世代言語 (4GL) として1981年に商品として登場しました(のちに第四世代言語として最も普及したのは SQLです)。

MAPPERシステム データベース概念図

UNIVACが提唱していたのは、エンド・ユーザー・コンピューティング (EUC) でした。当時からエンド・ユーザーがデータを扱いシステム開発に携わることを目指していて、その核となったのが MAPPER言語でした。
James Martin (1933-2013 情報技術工学学者 元IBM) は、著書 ”プログラマ不要のアプリケーション開発” ("Application Development Without Programmers" 1981) の中で「Data Processing部門が考えるよりエンド・ユーザーははるかに有能である」と書き、エンドユーザーコンピューティングの重要性を強調しています。DP部門とエンドユーザーの壁を取りはらい、業務を熟知しているエンドユーザーにシステム開発の一部 (プロトタイプ) を担ってもらおうとする考え方です。これはプログラムの "アジャイル開発” の原点とも言えます。

James Martin "Application Development Without Programmers" 1981

MAPPER SYSTEMには「会話機能」というものがありました。会社のデータがファイル形式でデータベースに格納されていて、簡単なコマンドをワークステーション端末に打ち込むことで、プログラミングを知らない人でも、データベースと会話するかのごとく容易にデータの検索や加工が出来る、というシステムでした。今日お話しするのは、私がこのMAPPER会話機能の入門研修で学んだことです。「そんな古いことを!」「Tableauの話じゃないんか!」と思われるかも知れませんが、それは私が40年間大切にしてきた考え方が凝縮されたものであり、今でも大変役立っている考え方なのです。

MAPPERの機能 指示コマンド

この研修で最初に学んだことはたった5つのコマンドでした。

MAPPER操作の基本コマンド

それぞれのコマンドには、さらに細かいオプション機能がありましたが、基本的に学んだことはこの5つでした。

当時もデータは大量にありました(とは言え数百万件でしたが)。MAPPERは会社の伝票データを1万行ずつに分けてリスト形式で保存してました。データ一覧を表示出来ましたが、表示しただけでは何も解りません。データを知るには、まず検索して欲しいデータに絞り込む必要がありました。ある程度絞り込まれれば並べ替えるだけでもデータの大小や、順位が見えてきました。集約・集計を行うと、より全体像を把握することが出来ました。計算したら対比や構成比が解ってきました。一つのファイル(テーブル)でわからないことは突合(結合)することで他のデータを参照することが出来ました。簡易的でしたがグラフを作成することも出来ました。私はそれが面白くてMAPPERにハマっていきました。面白いと言うよりは「これ使ったら自分が楽出来る」という思いが強かったかも知れません。

MAPPERのレポート画面 (例)
営業所コード110400を検索したところ

そんなことをやってるうちに、社内の人から色々な相談を受けるようになりました。「こんなデータ出せない?」「こんな集計出来ない?」経理部、営業部、商品部、生産管理部 …etc. あらゆる部門から「助けて!」の声が届くようになりました。私は「マジシャン」と呼ばれるようになり社内で重宝がられました。気が付けば全然自分が楽にならない! 徐々に手に負えなくなり、有志でMAPPER勉強会を開き、仲間にMAPPERを教えるようになりました。瞬く間に社内の様々な部門に MAPPERが広がっていきました。その後、会社のシステムは幾度も大きな変革、発展がありましたが、このMAPPER会話機能だけは20年間、2004年まで使われ続けました。

MAPPER で作成できたグラフ (例)

1997年頃、私はSQLを学ぶ機会がありました。MAPPERを習得していた私は、全く受け入れられませんでした。「解りにくい… 覚えることが多すぎる…」 しかし、やっていくうちに「これMAPPERと同じじゃない?」と気付きました。SQLの DML (Data Manipulation Language) に関して言えば、

FROM句で参照したいテーブルを指定し、SELECT句で必要なフィールドを指定する。

WHERE → S → 検索・フィルター
JOIN → MA → 突合・結合
GROUP BY → TOT → 集約・集計
ORDER BY → SO → 並べ替え
そして計算 → CAL → 四則演算や様々な関数

MAPPERに置き換えて考えたら「同じだ!」ってなりました。MAPPERでなんとなくやっていた操作が、実はデータを扱う上で最も基本的な操作であることに気付きました。私はこの5つを一番最初に学んでいたんです。MAPPERの考え方でSQLを書き始めたら、飛躍的に理解が深まりました(よくよく考えたらそりゃそうです。様々なデータベース言語が SQLに規格統一されていったのですから)。以来、SQLを書くときは、FROM句から書き始めます。次にWHERE句を書き、必要であればJOIN句を加える。GROUP BY句を書いて、SELECT句に計算式を書き、他の項目をSELECT句に加えていく。必要に応じてORDER BY句を書くようにしています。

私が Tableauと出会ったのは10年前 (2012) でした。最初は戸惑いました。グラフや表は出てくるが、Tableauが何をやっているのか全く理解できない。そんな中、私がやったことは、Tableauの挙動を MAPPERに置き換え、SQLに置き換え、その一挙一動を理解することでした。その結果、Tableauの原理が飛躍的に理解出来るようになりました。そしてこの時も「あの5つか!」と気づきました。

Tableauでビジュアライゼーションを完成させるにはたくさんの操作を伴います。しかし、一つ一つの操作が何をしてるか? よ〜く考えてみて下さい。

1. 検索・フィルター
2. 集計・集約
3. 並べ替え
4. 計算
5. 突合・結合

この5つの事しかやってないはずです(もちろんビジュアル表現の機能は加わっていますが)。これは、データを扱う上での原理、原則なんです。私がデータを扱ってきた40年間、何一つ変わってません。いや、コンピュータやデータベースが登場する以前から変わっていないことなのかも知れません。

データソースに接続(FROM)し、必要なフィルター(WHERE)をかける。フィールドを行や列に配置すればフィールドのメンバーに集約(GROUP BY)され、数値フィールドを行や列に配置すれば集計される。必要に応じて並べ替える(ORDER BY)計算フィールドを追加していく。他のデータを参照したければデータ接続で結合・リレーション(JOIN)する。

Tableauによって、データの表現方法は大きく進化しました。しかしながらデータを扱う基本は何も変わっていません。最近はデータを触るのが Tableauが初めて、という方も多くいらっしゃいます。Tableauだとデータペインにあるフィールドをシェルフやマークに配置したら、なんとなくグラフや表が出来てしまう。データを意識することなく集計や可視化が出来ることは素晴らしいことです。ところが「自分が欲しかったものと少し違う」「何か数字が違う」そんな経験は有りませんか? だけど「どう変えたら良いか解らない」、周りの知っている人に聞きまくる。あちこちにあるTIPSを調べまくる。このサイクルの連続にはまっている方も多いのではないでしょうか? そんな時、是非、このデータを扱う基本原理に立ち返ってみて下さい。この5つの機能の中で、Tableauがどんなことが出来るのか? 何をしたらどうなるか?を整理してみて下さい。

少なくとも私は、この5の操作に整理して機能を覚えていってます。「もりたさんってTableauの引き出しが多い」と時々言われます。実はそんなにたくさんの事を知ってるわけではありません。どこで躓いているか?を、この5つのフレームの中で整理して考えてるだけなんです。

世の中は急速に変化、進歩しています。データの世界も更に進化、発展し続けるでしょうし、新しい技術、道具もどんどん出てくることでしょう。変化に追いつけ、追い越せ。その度に新しいことを覚えていくことは大切です。しかし、変化の壁にぶちあたったら、どこかで原点や基本原理に立ち返ってみて下さい。今活躍されている皆さんは、30年前、40年前のシステムを体験している方はほぼいらっしゃらないと思いますし体験できませんが、時に、古いシステムや、データベースの歴史のことも学んでみて下さい。先人たちが苦労し、学んできた中に、解決のヒントや意外な発見、解決の糸口があったりするかも知れません。Tableauのフィルターや並べ替えの奥義も、LOD計算も、データ結合の考え方も、MAPPERやSQLの中で実現出来てました。BACK TO THE FUTURE です。

データベースの原点、基本に立ち返ったら、Tableauが飛躍的に理解しやすくなった! というお話でした。Tabjo Advent Calender を締め括るには、古めかしいお話でしたが、Merry Christmas! 2023年が平和で安心して暮らせる良い年でありますよう祈っています。

参考文献
『技報 1987年8月 第14号』 UNIVAC (UNISYS) 
https://pr.biprogy.com/tec_info/tr00-49/14.pdf
 


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