データ利活用を妨げる課題「処理速度と信頼性」
データを活用して新たなビジネス価値を生み出す重要性は疑念の余地がないだろう。マッキンゼーが発表したレポートによるとデータに基づいた意思決定を行っている企業は、そうではない企業と比べて23倍顧客を獲得しやすく、19倍利益を生みやすいという。データに基づいた意思決定を行っている企業例としては、GoogleやAmazonなど「BigTech」と呼ばれる米国の企業が挙げられる。彼らはデータに基づいた意思決定を行っており、継続した企業成長を遂げているのだ。
どの企業も一刻も早く自社が保有しているデータを活用した意思決定を行い、ビジネス価値を創出したいと思うはず。一方でデータ活用にまつわる課題には枚挙にいとまがなく、ビジネス価値を創出するまでに行く手を阻まれることも多い。代表的な課題として「データの処理速度」と「データの信頼性」が挙げられるだろう。データの処理に数十時間または数日かかってしまうこともあり、データの信頼性が損なわれるようなデータ基盤はビジネス価値の創出を妨げている。次章以降ではこれらの課題を解決する、レイクハウスを構成する代表的なオープンソースの技術について述べる。
計算のムダを削ぎ落とす:MapReduceからSparkへ
ビッグデータ処理の技術として著名なものに「Apache Hadoop」がある。その基本となるコンポーネントの一つは分散データ処理基盤である「MapReduce」。MapReduceは、Googleが2004年に発表した論文に端を発しており、その後は旧Yahoo!(現、Yahoo)で開発が始まり、2006年にApache Hadoopとして発足したプロジェクトに組み込まれた。
MapReduceは広く受け入れられていたものの、複数の課題を抱えていた。一つは途中の計算結果をストレージに書き込んでしまうことで入出力に時間がかかること。処理によっては十数時間、酷い場合だと数日かかってしまうのだ。これはMapReduceが開発された時代には、処理するべきデータ量に対して小さいメモリしか使えなかったことに起因する。また、Hadoopはバッチ処理には向いていたものの、ストリーミングのユースケースや機械学習、SQLクエリのようなインタラクティブな処理には不向きであった。
そこでHadoopのMapReduceの欠点を解消した「MapReduceよりも使いやすくて速い」技術を目指し、データブリックスの創立者でもあるカリフォルニア大学バークレー校の研究員たちを中心として「Apache Spark」の原型が開発された。安価になったメモリの恩恵も受けたのに加え、メモリ上で途中の計算処理を保持することができることもあって、概してHadoopよりも高速にデータ処理を行うことができた。当初の論文では特定のタスクにおいてSparkはHadoopよりも10倍以上高速に処理ができることを示している。
また、処理速度、使いやすさ、高度な分析を行うための機能が充実しており旧Facebook(現、Meta)やNetflix、Yahoo、Baiduといったテクノロジー業界を代表する企業に採用されてきた。着実にデータエンジニアたちに受け入れられて市民権を獲得してきており、少し古い数字ではあるが、2021年8月時点で月間ダウンロード数が2000万を超える人気のオープンソースプロジェクトとなっている。
上記に加えてSparkは、ScalaやPython、SQLといったプログラミング言語で開発ができ、ストリーミングや機械学習、SQLを使ったインタラクティブな分析などデータとAIに関わるすべてのユースケースに対応。そのため、エンジニア、データサイエンティスト、データアナリストといった幅広いペルソナにとって使いやすいフレームワークである点が特徴だ。下図はSparkがサポートしているプログラミング言語とユースケースを表している。
その後もストリーミングデータ処理に端を発した「Apache Flink」などが生まれて、ビッグデータ処理技術は日々進歩している。それでも先に世間に浸透していたこともあり、Sparkは現在でもビッグデータ分析の世界においてはデファクトスタンダードになっていると言えるだろう。