Microsoftが社内で使用しているCosmosを顧客向けの有償サービスにする計画を進めているという情報は、筆者の情報筋からの話として既に報道していたものの、同社が目指しているのは単にCosmosのインフラをAzure上で商用サービスとして提供することだけではない。
Cosmosは、Azureや「Bing」「adCenter」「MSN」「Skype」「Windows Live」からのデータを取り扱う、同社の大規模並列ストレージ兼計算サービスとなっている。Microsoftによる最近の人材募集によると、社内の5000人の開発者と「数千人単位のユーザー」がCosmosを利用しているという。
Cosmosには、同社の分散処理技術「Dryad」が用いられている。Microsoftはこれまで社内で、テレメトリデータの処理のほかに、Bingや「Office 365」といったサービスで作り出された大規模データセットの分析やレポート、多種多様なデータの選別や整理およびバックエンドでの処理にCosmosを使用してきた。こういったさまざまな目的で使用された大量のデータは共有される。なお、このデータに対するクエリは、1台から4万台までのマシンで並列処理できる。
Microsoftは今回、Azureの顧客に向けて、Dryadを使用しないバージョンのCosmosを開発した。その分析エンジンは「Apache YARN」上に構築され、そのストアはHDFSと互換性を有したものになっている。また、Microsoftが「SQLのような簡単な使い勝手とC#のような豊かな表現力を併せ持つ新たなクエリ言語」と称しているU-SQLは、同社が社内で開発、使用してきた、大規模データ分析のための宣言型スクリプティング言語SCOPE(Structured Computations Optimized for Parallel Execution)で得たノウハウに基づいている。
Rengarajan氏は「これ(Azure Data Lake)はCosmosよりも野心的だ」と述べるとともに、「これは『Apache Spark』やデータウェアハウスといったものからも着想を得ている。われわれは長年にわたってこの問題に取り組んできている」と述べた。
MicrosoftはCosmosを社内で使用してきたことで並列計算に関する数多くのノウハウを蓄積している。その一方でRengarajan氏は、「われわれのCosmosは、今とは違った時代に違った方法で構築されたものだ」と述べた。今日のユーザーは、数千台のマシン上で動作するタスクを数時間以内にデバッグする方法や、数千台のマシンを横断してクエリを実行する方法といった問題のソリューションを求めている。同氏は、それでもこれは非常に馴染みのある問題だと述べた。
この記事は海外CBS Interactive発の記事を朝日インタラクティブが日本向けに編集したものです。