新しい部署では、まだメインストリームに来ていない製品・サービスを普及させ Windows Server や SQL Server のように当たり前に使って頂く事を目的に活動しています。私はデータ分析に関する製品・サービスを担当しており、今回ご紹介する「SQL Server 2016 R Services / Microsoft R Server」の他に、「Azure Machine Learning」や、データ授受から格納、分析までを一気通貫で行う「Cortana Analytics Suite」の導入支援や普及活動を行っています。
ということで、今回はマイクロソフトの製品スタックに加わると共に SQL Server 2016 の1機能となる R 言語実行環境について見ていきたいと思います。前編では SQL Server R Services / Microsoft R Server が何であり、どのような利用メリットがあるかの概要を紹介します。後編では機能の詳細をご紹介します。
SQL Server 2016 に追加される R Services と Microsoft R Server
マイクロソフトが R の実行環境を提供する、と言われても多くの方にはピンと来ないかもしれません。実際のところ、今回提供する R 実行環境は、約1年前にマイクロソフトが買収した商用 R ソフトウェア最大手だった Revolution Analytics (レボリューション アナリティクス) という会社の製品をベースとしています。Revolution Analytics 社が提供していた「Revolution R Enterprise (RRE)」という有償の R 実行環境をリブランドして提供するのが「Microsoft R Server 2016」であり、SQL Server の機能の1つとして組み込んで提供するのが 「SQL Server 2016 R Services」となっています。
SQL Server R Services / Microsoft R Server が持つ機能は複数ありますが、最も大きな特徴は R スクリプトを並列分散実行できる点です。多数の CPUコア、ノード、クラスターで処理を並列分散実行してスループットを上げると共に安定化させます。メモリに収まらない大規模データであってもエラーとならずに処理を行えます。並列分散する実行環境として、Microsoft R Server では、Cloudera 社の CDH、Hortonworks 社の HDP、MapR といった各種 Hadoop ディストリビューション (*1) に加えて、Teradata 社のデータウェアハウス、Red Hat Linux、SuSE Linux もサポートしています。
また、Revolution Analytics 社は「Revolution R Open」という無償の R 実行環境も提供しています。この無償の R 実行環境も「Microsoft R Open」という名前にリブランドされ継続して提供します。(*2)
まとめると、Revolution R をそれぞれ以下のような製品ラインナップとして提供します。ちなみに、Revolution Analytics 社の製品をマイクロソフトに統合するに際して、元 Revolution Analytics 社員も世界中のマイクロソフトに参画しています。私の属するアジア地区のチームにも、シンガポールやオーストラリアを拠点とする技術者や営業が参画しており、今後は完全なマイクロソフト製品として提供していきます。(*3)
(*1) Microsoft Azure 上で利用できる Hadoop サービスである Azure HDInsight も今後数ヶ月以内にサポート対象となる予定です。
(*2) Microsoft R Open (Revolution R Open) は多くの計算パッケージをマルチスレッドで実行できます。そのため、基本シングルスレッドで実行する通常の Rランタイムよりもスループットが向上する可能性が高いというメリットがあります。
(*3) SQL Server 2016 を正式リリースするまで、あと数ヶ月あるため、少なくともそれまでの期間は Revolution R という表記が随所に現れると思います。