LinuxでSQL Server 2017が動く
「データプラットフォームの新しい情報をお伝えする」
冒頭でこう宣言し、井上氏のセッションは始まった。井上氏はデータベースを中心にエバンジェリスト活動をしている。「CEOにサティア・ナデラが就任して以来、技術のオープン化が加速している。実は当社では2004年からOSSへの取り組みが始まっている」と井上氏は語る。その成果はこちらで確認できる。
「このページにマイクロソフトがGitHubで公開しているコードが置いてある。フォーマルなものだけで1618個。社員がオープンソースのコードを各自に公開しているので、かなりの数に上っている」と井上氏。なぜ、マイクロソフトがOSSに積極的に取り組むのか。「エンジニアが運用や保守、新しい技術を学ぶリソースを削減したいという思いからやっている。そしてデベロッパーがさらにイノベーティブなサービスを作れるように、プラットフォームを提供している」と井上氏はその理由を語った。
こうして技術のオープン化が進んでいるマイクロソフト。SQL Server 2017も今までのようなWindowsだけではなく、Linux、Dockerでも動くようになっているという。LinuxのディストリビューションはRedHat Enterprise Linux(RHEL)、Ubuntu、SUSE Linux Enterprise Server(SLES)をサポートしている。
ここで、Microsoft Azureの管理ポータルを使って、SQL Server 2017 on Linuxのデモを実施。「コマンドを2つたたくだけで、SQL Serverがすぐに使える状況になる。オンプレミスだとシンプルに使うのは難しいが、Azureであればコンテナイメージがあれば、Dockerですぐに利用できる」と説明した。
SQL Serverは元々、Windowsサーバに密接にひも付く形で実装されていた。しかし、DBとOSの間にある抽象化レイヤーを設け、ここがブリッジの役割を果たすことでLinux環境でも従来同様の機能を提供できるようになっている。「Drawbridgeというテクノロジーをベースにこれを実現した」と井上氏。
クライアント環境も変化している。Windowsに特化した便利なツール「SQL Server Management Studio」を提供していたが、それをMacでもLinuxでも同様の経験ができるように提供しているのが、「Microsoft SQL Operations Studio」である。これも使い方をデモで紹介。DBを接続すると、Visual Studio Codeと同様のGUIが表れる。「CSVやJSON形式などでエクスポートできたり、グラフィカルにデータを表示したりする機能など、多彩な機能が提供されている」と井上氏は説明。これを使えば、LinuxユーザーでもMacユーザーでもSQL Serverの管理が可能。サーバでもクライアントでも動くという。
もう1つ特長的な点がある。それはSQL ServerでRやPythonが動くことだ。次の図を見ればわかるとおり、通常のデータベースの場合、データベースの上にアプリケーションやマシンラーニングの環境がある構成になっている。一方、右側のSQL Server 2017はインテリジェンスDBなので、DB側でPythonやRによってDBの知的ライブラリを使ったモデルを作ることができる。
「つまり分析のためにデータを移動する必要がなくなるということ」と井上氏。SQL Serverの非常にセキュアで堅牢性、可用性が高いといったメリットをそのままインテリジェントのところに享受できるというわけだ。井上氏は、「自動的にチューニングする機能も入っていて、どんどん賢くなっている」と高い機能性を示した。
SQL Serverのフルマネージド版「Azure SQL Database」は、2009年から提供しているサービス。それに新しく「Azure Database for PostgreSQL」と「Azure Database for MySQL」が仲間入りした。これらのサービスの特長は、高可用性、障害があっても自動で回復できること。スケールアップ、スケールダウンも柔軟で、既存のドライバ、ライブラリ、ツールと100%互換となっている。
このシリーズにさらに加わったのが、昨年末にリリースされた「Azure Database for MariaDB」である。Azure Databaseの使い方もデモで紹介。こちらもAzureの管理ポータルから簡単に使えるようになっていた。「PostgreSQLやMySQLのスキルをそのまま生かせる」と井上氏は語る。またこれらのインフラストラクチャーは高い可用性や監視の機能を備えている。Azure Databaseは、SQL Databaseと同様のインフラストラクチャーが基になっており、バックアップやハイアベイラビリティ、リソースガバナンスなどの機能がそのまま使えるようになっている。「枯れた技術がベースになっていることも頭に入れておいてほしい」と井上氏。
なぜハイアベイラビリティを実現できるのか。Azure DatabaseではデータをAzure Storageで3重化して格納しているので、障害でストレージが壊れても自動的に再生できる。またMySQLが壊れた場合も、すぐに別のインスタンスを起動する仕組みとなっているため、「アプリケーション側から見ると、障害が起こったようには見えない。パッチも自動適用が可能、スケールアップ、ダウンも柔軟にできるようになっている」と井上氏は説明する。
NoSQLの「Azure Cosmos DB」は惑星規模のアプリでも使えるデータベース
マイクロソフトではNoSQLも用意している。それが「Azure Cosmos DB」である。「名前からもわかるとおり、惑星規模のアプリでも使えるデータベース。『惑星規模のアプリなどは作らないぞ』という人も大丈夫。小さなアプリでも活用できる」と、井上氏は笑いを交えて紹介した。
特長はマルチモデル、マルチAPIであること。Cosmos DBは人気があり、すでにさまざまなプロジェクトで活用されているという。APIの中で特に活用されているのはJSONを格納できるDocumentDBというSQL。そのほかにもMongoDBのAPI、GremlinというグラフのAPIなどが提供されている。またコネクターはApache Sparkに簡単に接続できるコネクターを提供している。
さらに最近、追加されたのが、Apache Cassandra API。「Cassandraはクラスタを管理するのが大変だったが、Cosmos DBはフルマネージドなので、インフラをほぼ意識しなくていい」と井上氏。Cosmos DBはターンキー形式で世界中にデータを分散配置できる。
もちろん先述したとおり、小さなデータなので東日本のリージョンしか使わないといったこともできるうえ、ペタバイト級で1秒間に数100万トランザクションのデータでもグローバル分散できるので、容易に扱うことができる。しかも「Azure内で唯一、低レイテンシーの保証がある」と井上氏。同一リージョンで読み書きを行った時の速度は1KBの読み取りに関しては50%以上のリクエストは2ミリ秒以下、99%の以上は10ミリ秒以下、書き込みも50%以上は6ミリ秒以下、99%以上の場合は15ミリ秒以下といった具合だ。
Azure Cosmos DBは整合性モデルを5つサポートしている。「Cosmos DBの基盤について詳しく知りたい方は、Dr.Leslie LamportがYouTubeで熱く語っているので、ぜひ見てほしい」と井上氏はチャンネルを紹介。ちなみにDr.LamportはLaTeXの開発者。マイクロソフトリサーチで研究に従事しており、2013年にはチューリング賞も受賞した人物である。Cosmos DBはInfoWorld 2018でTechnology of the Yearを受賞。「かなり先進的なデータベースとして取り上げられている」と井上氏は話した。
Cosmos DBの使い方もデモで紹介。こちらも先のサービス同様、Azure管理ポータルからCosmos DBを選択するところから始まる。IDを入れてAPIを選択すると、Cosmos DBのデプロイが始まる。世界地図をクリックすると、惑星規模でデータを分散できるようになる。「アメリカやインド、アジアなど、どこでもクリックしてOKするだけで、データを世界中に分散配置できる」と井上氏。コレクション単位で課金や性能が決まる。キャパシティは10GBかアンリミテッドとなっている。
「Azure Databricks」も紹介。DatabricksはSparkを作っていたエンジニアがスピンアウトして作った会社であり、製品である。Azureと冠がついていることからわかるが、「マイクロソフトがファーストパーティとして提供している」と井上氏。つまりサポートや、課金、アップデートの責任をマイクロソフトが負う。またApache Sparkがフルマネージドの形で動くようになっているのも特長だ。
「従来、Sparkを環境や運用の保持が大変だったが、Databricksを使うと、それが容易になるのでSparkが使いやすくなる。Azureの他のサービスと連携しやすいのもメリットの1つ」(井上氏)
DatabricksのCollaborative Workspaceではデータエンジニアとデータサイエンティスト、ビジネスアナリストの3者のコラボレーションが容易になる。
実際に動かし方をデモで紹介。これもAzure管理ポータルから利用できる。「Workspaceの名前を設定し、『Launch Workspace』というボタンをクリックすると、DatabricksでSparkを管理する画面が表示される。ここでWorkspaceを作ったり、データやクラスタの管理をしたりする。StandardとServerless、いずれかを選べる。後者を選ぶと運用の手間を省くことができる。Azure HDInsightというマネージドサービスがあるが、それよりもさらにフルマネージドされたSparkのサービスがDatabricksだ」と井上氏は説明する。
最後に井上氏は次のように参加者に呼びかけ、セッションを締めた。
「Azure Free Trialだと2万2500円分フリーで使える。1年間ずっとフリーで使えるものもあるので、ぜひ、興味のある人は使ってほしい。また5月22日、23日にde:code 2018を開催する。100を超える濃いセッションが開催される予定。こちらもぜひ参加してほしい」
お問い合わせ
日本マイクロソフト株式会社