テクテク日記

テクテク=テクノロジー&一歩ずつ(テクテク)

MicrosoftにおけるBIの歴史

歴史というと、実は学生の時に殆ど興味がなかった分野だったのですが、今思えば自分が歴史よりも現在・将来について興味があったのが原因だったのかもしれません。ただし、例外として自分が今最も活用しているテクノロジーについての歴史は面白くて堪りません。今回はMicrosoftのBIに関する歴史について簡単に紹介してみようと思います。Power BIの登場背景、MicrosoftのBIテクノロジーの登場逸話等に興味がある人は最後まで読んでみて下さい。

凄い人達

MicrosoftのBIテクノロジーを開発した人たちがいます。有名なところでAmir Netz氏とChristian Wade氏が挙げられます。Amir氏はTechnical Fellowというタイトルを持っており、Microsoftテクノロジーの発表会等に登場して、いつも熱く語ってくれる素敵なおじさんです。彼のパッションはYoutube等を見ればすぐに伝わってくると思いますが、今回の内容も彼自身の話をまとめたものとなります。

一方でChristian氏はエンタープライズBI向けにPower BIの機能を開発している方で、Amir氏いわく、200万行のソースコードを書いてもバグが一切ないというMicrosoftにおいてトップ5に入る凄腕エンジニアのようです。Christian氏は主にPower BIにおけるビッグデータ分析の解説に登場する人で、1兆行もあるタクシーの運行履歴がPower BIでサクサク動くデモを実施したときにはびっくりしました。

両氏とも現在のPower BIの生誕に最も深く関わっている人たちであり、どちらもエンジニアのため、Power BIの使い方に際して殆ど登場しませんが、彼らがいるおかげでPower BIを不自由なく使うことができているのです。

当時のBIテクノロジー

90年代のMicrosoftエンタープライズ向けBIツールで世の中を席巻し、当初データを集計するためにはMOLAP*1、ROLAP*2という技術を使用していました。MOLAPが現在のPower BIのインポートモデル*3に相当しますが、予め異なる切り口で集計を行うことでユーザーがその切り口を選択した際に、結果を素早く表示できるものです。

ただ、これにはいくつか弱点があり、以下その例となります。

  • 切り口別に予め計算させるのに時間が掛かってしまうこと
  • 計算結果をHD(ストレージ)に保存する必要があり、ディスク容量を確保する必要がある
  • 全ての切り口におけるコンビネーションを計算できるわけではない
  • 構築がIT部門中心となるため、データがすぐに欲しいビジネスユーザーにとっては結果を得るために時間が掛かってしまう
  • 現在のPower BIの言語(DAX*4)よりも難解なMDX*5を使っていること

このように、ビジネスユーザーが自分たちで手軽に分析できる環境ではないことから、ひと昔のBIは全てエンタープライズBIと呼ばれていました。

混沌の2000年代

こうした中、2000年半ばまではこのような動きがメインであり、エンタープライズBIは資金力のある大企業を中心に展開されていました。2000年後半になると、Amir氏は驚くべき光景を目の当たりにします。それは、自分たちよりも規模の小さいMode2(後述)のBIベンダーが登場し、今までBIを構築するのに必要なインフラ(例:サーバー等)を必要とせず、すぐにでもデータ分析を行うことができるようになったのです。

当時のMicrosoftは現在のように、SaaS型ビジネス*6を営んでいたわけではなく、Microsot Office製品は3年に1回のメジャーアップデートを行うスタイルでした。今でこそ毎週・毎月のようにOffice製品は進化していますが、当時は顧客から継続的にフィードバックを得て製品改善に繋げていくビジネスモデルではありませんでした。

そのようなこともあり、Amir氏が驚いたのも無理はなく、

ライバル各社(TableauやQlik等)は何をやったらここまでクエリ・パフォーマンスの高いBIツールを開発できたのだろうか

と不思議に思っていたようです。しかしながら、カラクリはすぐに判明し、ハイパフォーマンスの裏には各社がインメモリデータベースを使っていたことが原因でした。インメモリテクノロジーはシステムメモリにデータを配置して処理するため、ストレージよりも圧倒的に処理速度が高速化されます(下図参照)。

f:id:marshal115:20211103171743p:plain

ストレージに計算済みの結果を置いておくのではなく、処理速度の速いシステムメモリにデータをインポートすることで、圧倒的に早い計算結果を実現できる一方、RAM*7はストレージとは異なり、高額かつ容量が小さいこともあり、この中にデータを格納するのはPCのスペックが低い時代では容易ではありませんでした。

Amir氏とChristian氏及びそのチームはインメモリデータベースのBI開発を開始したが、その道のりは平坦ではなく、彼らが満足できるようなパフォーマンスを得ることができずにいました。Amir氏は悩んでいましたが、ある日のヒラメキ(本人いわく、一晩裸で考えついた結果)を境に、最高のパフォーマンスを得られるアルゴリズムを構築することに成功しました。Amir氏いわく、現在でもそのアルゴリズムのコアな部分については殆どタッチしておらず、今後もそのアルゴリズムを超越するものは出てこないだろうと。

セルフサービスBIの登場

2000年後半より、世の中はITが主導するエンタープライズBIよりもビジネスユーザー向けの使いやすいBIにシフトしていました。この時からセルフサービスBIという言葉が登場し、IT部門からの関与を極力抑え、アナリストやビジネスユーザーたちが好きな時にデータ分析を行うことを可能にするというコンセプトのもと、Tableau等のMode2(セルフサービスBI系)ベンダーが台頭していた。

Amir氏が認めていますが、かつてBIの世界ではMicrosoftが覇者であったが、気がつくとライバルに後塵を拝していたのです。Mode2はIT部門が不要という論争にまで発展したが、同氏いわく、

IT部門が不要というのはあり得ない話であり、問題はIT部門の関与とビジネス部門のニーズを同時に満たすためのバランスが大事である

と説いた。とはいえ、ライバル各社が独自のツールを販売するようになり、Microsoftは焦り始めました。

最高のアルゴリズムが構築でき、最高の分析エンジン(Vertipaq)の開発に成功したAmir氏ですが、その分析エンジンを活用するための言語を開発することになります。世界で最も使用されているビジネスアプリケーションがExcelであることを考えると、その言語がExcelと同じ名称であるほうが分かりやすいと判断し、DAXExcel関数の名前を一部継承して誕生することとなりました。

Amir氏いわく、DAXは一部のユーザーにとって難しいものとなったが、難しいからこそパワフルな結果を生み出すことができるものであり、もう少し工夫すれば今のDAXの記述方法がもっと良くなっていたかは分からないが、少なくともDAXを開発したことに悔いはないという(DAXの例:下図)。

f:id:marshal115:20211103173452p:plain

こうして、セルフサービスBIというコンセプトにおいてライバル会社に後れを取ったMicrosoftですが、2010年にExcelにPower Pivotを搭載しました。Excel Power Pivotは機能的に非常にパワフルであったが、Microsoftの期待とは裏腹にその認知度が低く、今でもExcelユーザーの殆どがその存在を知りません。そう、ExcelはあくまでExcelという固定観念が根強かったのです。

こうしたことから、Microsoftスタンドアローンのアプリを開発することとなり、後にこれがPower BI Desktopとなります。

MicrosoftのBIに対する戦略

Microsoftがやるべきことは非常に増えていました。エンタープライズBIはMDXをベースとしつつも、列データベースであるVertipaqエンジンが登場したことで、Analysis Service TabularというエンタープライズBIも登場し、2つのテクノロジーが共存することとなったのです。

過去の顧客がMDXをベースにしていることもあり、処理能力・圧縮効率等に優れるTabularモデルへの技術の移行ができない企業も多く存在していました。これと同時に、セルフサービスBIが主流となってきたこともあり、MicrosoftはPower BIを広めるため、これに対する投資を決めることとなりました。その意味で、データを取得してすぐに分析を始められるPower BIはセルフサービスBIツールの代表格であり、2015年になってようやく、Microsoftはライバル各社と足並みをそろえることになったのです。

その後、Microsoftはパッケージ販売のビジネスからSaaS型ビジネスへの転換を成功させ、クラウドサービスのAzureが人気を博しました。同時にPower BIもオンプレで構築したモデルをクラウドへ発行し、不特定多数のユーザーが同時に活用することが可能となりました。

コラボレーション、共有等が旬のキーワードとなり、Power BIは他社よりも開発サイクルが圧倒的に短い1ヵ月に一回というペースで更新されるようになりました。その間、MicrosoftはPower BIユーザー(多くがExcelのヘビーユーザーやBIのアーリーアダプター等)からフィードバックを継続的に吸い上げ、Power BIコミュニティが海外を中心に盛り上がってきました。

こればかりでなく、Power BIを取り巻く環境はPower Platformという、データを全てコントロールできてしまうサービスに含まれるようになりました。

ここまでくると、ライバル他社との差は歴然となり、Mode2しかソリューションを持たないライバル各社 vs Mode 1とMode 2の両方、かつ、Microsoftの各種アプリケーション(例:Excel、Power Automate(クラウド型RPA)、Power Apps、Dynamics 365等)と絶大な親和性を持つMicrosoftとの勝負となりました。記憶に新しいが、近年ではTableauがSFの傘下に入っています。

ここからMicrosoftの快進撃は更に続き、COVID-19によってリモートワークの定着化に伴い、Teamsと周辺サービスとのコラボ、Power BIについてはセキュリティを更に改善すべく、ガバナンス機能を強化した機能・サービスを続々と打ち出しており、

Power BI = セルフサービスBI

から

Power BI = セルフサービスBIでありつつ、エンタープライズBIへの回帰

の動きになってきました。

Amir氏が言ったことですが、Power BIの成功要因は主に以下2つ。

  1. 屈辱から始まった
  2. コミュニティのサポート

1については上述の通り、BI業界の覇者であるMicrosoftがいつの間にかライバル他社を追いかける展開となったこと。2についてはMicrosoftの企業変革(SaaS型ビジネスへの転換)により、ユーザーボイスを製品開発に反映させてきたことが成功要因となっているようです。Amir氏は軍人だったこともあり、過激な表現をする場合もあるが、嫌みはないので個人的には大好きなおじさんです。

今回の記事は恐らく日本中探しても出てこないようなマニアックな内容ですが、MicrosoftのBIに関する歴史をざっくり紹介できたのではないかと思います。最後にAmirさんのパッションが観たい方は下記KasperさんのYouTubeを覗いてみて下さい。

https://youtu.be/izOppfQGanI

*1:https://www.necto.jp/keywords/molap.html

*2:https://www.necto.jp/keywords/rolap.html

*3:データを全てPower BI Desktopにインポートするモデル

*4:Data Analysis eXpression、Power BIの言語

*5:MultiDimensional eXpressions、MOLAPの言語

*6:サブスクモデル、定期課金ビジネス

*7:Random Access Memory