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が壊れた場合も、すぐに別のインスタンスを起動する仕組みとなっているため、「アプリケーション側から見ると、障害が起こったようには見えない。パッチも自動適用が可能、スケールアップ、ダウンも柔軟にできるようになっている」と井上氏は説明する。