flightcaster
bradford ctoss

Big Dataがもたらしているデータルネッサンス–これからはデータが無限におもしろい

次の記事

小売店サイトにレビュー機能を提供するPowerReviewsが$6Mを追加調達

Big Data Graphic

編集者注記: Big Data参考日本語ページ〕は、クレジットカードや電話の利用記録、あるいは金融業界の業務データとして、実は相当前からあるものだ。AT&TやVisa、Bank of America、Ebay、Google、Amazonなどの企業は、膨大なデータベースをデータマイニングして企業競争に勝ち抜こうとしている。しかし最近では、Big Dataが小さなスタートアップにも侵入してきた。Webサービスやクラウドコンピューティングは、Big Dataをあらゆるところに生み出す。しかし、一体何が、このBig Data現象の本当の動因なのだろうか?

この疑問に答えるために、その道のエキスパートBradford Crossに寄稿を依頼した。BradfordはFlightCasterの協同ファウンダで研究部長だ。FlightCasterにはY CombinatorTandem EntrepreneursSherpalo Venturesなどが投資している。同社は、大量のデータ集合を分析してフライトの遅れを予報する。Bradfordは、今週のCloud ConnectDealing with Big Data(Big Dataの取り扱い)部会の議長を務める。

コンピュータ科学とコンピュータ技術、そしてデータの分析と理解のためのパラダイムが、今ルネッサンスを迎えている。データと計算処理も重要な課題だが、データの時代においてより重要なのは、データの物理的なサイズではなく、そのデータでどれだけクールなことができるかだ。今、データは山のようにある。そろそろ、その価値を取り出すべき時期だ。ほんとうにすばらしいことが、すでに起きつつある。たとえば世界中の人びとが、さまざまな問題や話題について、自力で学習できる。あるいはデータと計算処理が、科学と技術のさまざまな分野の進歩に貢献している。Webの上にもすばらしいものがたくさん生まれると思うが、それ以外の分野からもイノベーションは訪れるはずだ。

Big Dataをめぐる最近のトレンドは、大型データの成長よりも、その民主化が中心だ。Economist誌に先日載ったdata delugeという記事をはじめ、Big Dataという言葉が至るところで聞かれるようになった。Big Dataやクラウドの、大企業にとっての意味、といった話はよく聞くが、しかし大企業はもうずいぶん前からBig Dataを抱えている。eBayは同社のデータウェアハウスTeradata and Greenplumで、ペタバイトのオーダーのデータを管理している。Big Dataから価値を取り出す高度なスタートアップも、今では珍しくない。やや遅めに見積もっても、それはYahoo!やGoogleの時代に生まれたのであり、しかも彼らはデータウェアハウジングの連中の助けを借りずにやり遂げたのだ。

今では、目標を明確に絞り込んだスタートアップは、これまでに比べてはるかに早く軌道に乗ることができる。FacebookやTwitterなどでは、ごく少人数の技術分析部門が毎日大量のデータに容易にアクセスしている。個人でさえ、Big Dataを扱うクールなプロジェクトに取り組むことができる。たとえばData WranglingPete Skomorochは、Wikipediaのトピックのトレンド把握アプリケーションを一人で作り上げた

なぜ今なのか?

インフラとしてのハードウェアやソフトウェアが、われわれの目の前ですでに完備しているので、それらを一から作る必要がない。

先に水路を切り開いてくれたAmazonなどが、クラウドを提供してくれるから、大規模なサーバクラスタも安く利用でき、われわれ自身が用意しなくてもいい。またGoogleのような先輩たちは、HadoopHBaseのようなオープンソースプロジェクトを築き、それをFacebookなどの大企業が支援している。

Aardvark Logo

ハードとソフト両面でのインフラが整備されたおかげで、Aardvark(最近Googleが買収)やFactualのようなデータ中心のスタートアップ…新種のスタートアップ…が出てきた。彼らは短期間で、かつ安上がりに、サイトを立ち上げることができる。私も実際にそれを、Flightcasterで体験した。また、最近のFacebookやLinkedIn、Twitterなどを見てもお分かりのように、データ中心ではないスタートアップも、その進化の過程で、データの分析をより有効に活用できるようになる…データ重視に傾く。

つまり今では、Big Dataがあり、クラウドがあり、そしてデータ中心型/データ駆動型のスタートアップを可能とするオープンソースのソフトウェア基盤がある。本稿ではこのようなトレンドを、技術的な視点から大きく3つに分けて論じてみたい。それらは、1)データの保存、2)データの処理、3)データの意味と理解だ。最後の、データの意味と理解(learning from data, データからの学習)とは、データマイニング、AI(人工知能)、機械学習、統計、などなどのことだ。

データの超大型化–いやちょっと待て, 中規模がいいね

Cloudera Logo

“Medium Data”という考え方をClouderaでChristophe BiscigliaとTodd Lipconから初めて聞いたとき、いい考えだねと思った。企業が抱えるデータの問題や課題は、Googleほどばかでかくはない。スケーラビリティの問題はテラバイト未満のデータでも起きる。企業が関係データベースとSQLを使って大規模データに対する各種の集合演算をやろうとすると、そのための複雑なデータ変換処理と計算処理で溺死者のようにあっぷあっぷしてしまう。その意味では、“Big Data”という呪文は彼らに合っていないといえる。たとえばクラウド上のBig Dataに関するGigaOmの記事は、次のように述べている:

Big DataがITの未来であることは、今やますます明らかである。Big Dataを征服した者が勝者になり、Big Dataに押しつぶされた者が敗者になる。その勝者敗者が決まるのが、クラウドコンピューティングと呼ばれるイノベーションの次の波においてだ。

しかし、誰も彼もが突然、ペタバイト規模のデータを扱うようになるわけではない。それほどものすごい量のデータを抱えているところは、そんなにはない。

むしろ重要なのは(量ではなくて)、ストレージと処理のためのインフラであり、その具体的な最適技術を見つけることだ。データはどれだけあるのか? そのデータで何をしたいのか? 大量データに対し、オフラインのバッチ処理で統計計算をしたいのか? WebアプリケーションやWebサービスのAPIからやってくるクェリに対応するために、オンラインでデータを可利用にしなければならないのか?

データとその処理量が大きすぎて、データと処理をネットワークの境界(LANの境界)を越えた複数のマシンに分散しなければならなくなると、それはかなり難しい。分散コンピューティングにはさまざまなトレードオフがつきまとうので、本格的なコンピュータ科学者として問題に取り組むことが必要になる。

Big Dataとクラウド–誰もが口にする流行語だが

クラウドと、その上で提供されるサービスは、企業にとって見過ごせない機会を生み出している。その最大のものは、伸縮性のあるコンピューティングにより、アラカルト方式の経済的な計算機利用が提供されることだ。それは、自前でハードウェアのインフラを構築しメンテナンスする従来のコンピューティングでは高くつきすぎて不可能だったものだ。現在のクラウドの興味深い部分は、導入がスムーズで摩擦や軋轢がないことと、費用に…利用ニーズに応じた…伸縮性があることだ。導入とセットアップはきわめて迅速であり、伸縮性は、100台のマシンのクラスタを1時間だけ使うというニーズにも平気で対応する。

Flightcasterのスタートはおよそ1年前だが、それは計算処理とストレージの両方でクラウドを利用するスタートアップの好例といえる。Hadoopのようなオープンソースプロジェクトにデータマイニングを組み合わせて、比較的少ない初期投資で新しくておもしろい技術を作り出している。

クラウドは、どんな場合にも安上がりだとは言えない。処理ニーズがある規模にまで増えたら、大企業は自前のハードウェアに切り換える。その逆ではない。今後はそれも変わるかもしれないし、クラウド上のサービスもスケールアップに十分対応できるようになるかもしれないが、それはまだ先のことだ。当面は、クラウドのメリットといえば、計算機資源の利用における伸縮性と、運用開始の迅速性だ。とくに、資金の乏しいスタートアップは、これまでには不可能だったようなことを、クラウド上で気軽に試すことができる。

クラウドのもう一つのメリットは、新しいアーキテクチャの導入にタイムラグがほとんど生じないことだ。それも、クラウド側が迅速に対応し、ユーザ側で大きな経済的負担にならないからである。

Amazon Web Services Logo

クラウド上の大量ストレージは、Amazon S3のようなBlobstore(s)により*、分散データストアを常時動かしてメンテするよりもずいぶん安上がりになった。オフラインのバッチ処理が主体で、オンラインの大量ストレージを必要としないなら、魅力的なセットアップだろう。〔*: Blobstore, binary large objectの保存, WebサービスがWebを介しないで直接サーバと大量データのup/downを行う方式。〕

ストレージとNoSQL

GigComのthe future of big data in the cloudから、また引用してみよう:

Big Dataスタックというものが登場しないと、大企業へのクラウドコンピューティングの普及は難しいだろう。このクラウドスタックは、大規模なインターネット対応データセンターにおいて、すでにいろんな…ただし原始的な…方法で実装されている。彼らは、データ量の爆発に伴って従来のSQLデータベースのスケーラビリティの限界に、徐々にではなく急速にぶつかっている。それに代わって、高性能でスケーラビリティに富む分散オブジェクト指向データストアが社内的に開発され、大規模に実装されている。つまり大規模なWeb企業は、独自のいわゆる“NoSQL”データベース(またの名、分散ノンリレーショナルデータベースシステム, distributed, non-relational database systems, DNRDBMS)を構築中だ。

ここには、いくつかの誤認がある。まず、Big Dataスタックとかクラウドスタックというものはない。分散システムは具体的なトレードオフの産物であり、具体的な問題とそのソリューションに付随するものなので、画一的で汎用的なスタックにはなじまない。第二に、大企業はすでに自前のソリューションを持っている…高価なデータウェアハウジングとコンサルティングサポートだ。そういうところに、Clouderaのような連中がサポートするHadoopのようなオープンソースのプロジェクトが、入り込めるだろうか? 入り込めることは入り込めるが、ただし前にも述べたように、Big Dataとクラウドは、大企業にとっては(現状では)決して安上がりではなく、むしろそれは、データ主体型のスタートアップに便宜と機会を提供するものだ。

NoSQL運動については、多くのことが語られている。その最大の眼目は、(関係データベースを前提とする)分散システムは難しいし、トレードオフを要する、そしてときには、(関係データベースにとらわれずに)データの特殊性や固有性に合ったデータストレージやデータ処理を目指したほうがよい、という点だ。なんでもかんでも盲目的に、汎用的なRDBMSを当てはめない、ということだ。ときには、単機上の少量のデータですら、SQLクェリと関係データベースよりも良いデータ形式がある。たとえば、時系列データのほうが役に立つ、という場合は以前から多い。

データ処理とHadoop: 小さな部屋に象がいる

Haddop Elephant Logo

大量のデータを処理しなければならないニーズは、非常にいろいろある。ログ分析のような単純な計算ニーズは、単純にスケーラビリティだけが重要だ。BI(Business Intelligence, ビジネスインテリジェンス)になるとやや複雑になり、機械学習や検索は相当複雑なニーズだ。

各サービスに固有のニーズは、それぞれ対応の仕方も異なる。ここでもやはり、画一的で汎用的なものの発想を捨てることが重要だ。そして、ニーズに合ったものを構築すること。ただし一方には、Map-Reduceのようなきわめて総称的/汎用的な抽象化技術があり、多くのユースケースに対応している。分散システムを正しく実装し正しく運用するのは難しいから、Hadoopのようなものが人気になると、次のより良い技術が成熟…問題解決能力、フォールトトレランス、パフォーマンスの完成…するまではその人気にすがりがちだ。しかし、誰もがレオナルド・ダビンチのような天才ではないから、固有の問題に合った固有のソリューションを自分で作り出すのは難しい。そういう意味で、クラウドとBig Dataはオープンソースの推進役になっている。

Hive Elephant Bee ImagePig Logo
データ処理のスケーラビリティは良質な抽象化にかかっている。Map-Reduceを直接使って複雑な、いや、ごく簡単な計算処理を書こうとすると、コード量がやたら多くなり、プログラマではなくとくにデータサイドの人たちはびびってしまうことが多い。Map-Reduceを抽象化したPigHiveを使うと単純なことを容易にできるようになり、Cascadingのような抽象化は難しいことでも可能だ。Map-Reduceというパラダイムと、とりわけHadoopは、大成功を収めた。ただし、Map-Reduceが唯一の重要な計算処理インフラではない。メッセージキューは多くの計算処理アーキテクチャのバックボーンになっており、たとえばrabbitmqのようなAMQPの実装はその好例だ。また、プロデューサ/コンシューマパラダイムやメッセージングシステム(のような分散非同期並行処理)でも相当いろんなことを達成できる。分散ストレージと分散処理システムは構成と展開が微妙に難しい場合があり、システムをよーく知っていなければならない。だから、Clouderaのようなところの連中に、まかせたほうがいいとも言えるのだ。

Big Dataから学習する

GoogleのチーフエコノミストHal Varianが最近、こんなことを言った:

Hal Varian Picture

次の10年でセクシーな仕事といえば、統計屋だな。データを見分ける能力、データを理解する能力、処理する能力、データから価値を取り出す能力、データを視覚化する能力、データを人に伝える能力。

しかし、毎日データと悪戦苦闘している者から見ると、それほど単純ではない。今起きつつあるデータのルネッサンス(データの復権)を支える人びとは、数学者、統計学者、コンピュータ科学者、機械学習畑の人、そして技術者だ。これらのスキルがない人でも、それを補ってくれるチームとなら仕事ができる。ただしそれができる場は、スタートアップではないだろう。

今や大量のデータがあるのだから、以前は想像もできなかったようなことが、それらのデータを使ってできてもいいだろう。インターネット、バイオテクノロジー、ナノテクノロジー、基礎材料学、などなどの分野でクールな応用が出現するだろう。科学技術のどの分野でも、データと計算処理に依存する部分は大きい。機械学習は数学や統計学のモデルとAI(人工知能)やコンピュータ科学、ソフトウェア工学の世界を橋渡しする、すばらしい役割を発揮している。われわれが探求している学習の素材や契機は、テキスト、ソーシャルネットワーク、実験データ、そのほかのありとあらゆる入手可能なデータと、非常に幅広い。

データルネッサンスがもたらしている困難な問題の一つは、大量データの処理と、そこからの学習(==意味の取り出し)に関する良質な教育の場が、まだ少ないことだ。モデル作成や最適化のアルゴリズムにスケーラビリティを持たせることは、難しい。だから分割や並行処理の方式も、これからの課題だ。ときには、近似解で満足すべき状況もあるだろう。さらに、結果がまあまあだったからといって、単純すぎるモデルを、これまでのわれわれは頻用しがちだ。本物の知性が作り出す、もっと深い近似に向かって進むことも、しなければならない。

いずれにしても、データルネッサンスはもう始まっている。とにかく、全身でそれに参加しよう。

〔FlightCasterに関する日本語記事: (1)(2)(3)。〕

[原文へ]
[米TechCrunch最新記事サムネイル集]

(翻訳:iwatani(a.k.a. hiwa))