違う視点の3人が出会うと素朴な疑問がわいてくる
山本:本日はそれぞれ違う分野で活躍している方々にマイクロソフトのデータプラットフォームについてご意見をおうかがいできればと思い、お招きしました。三宅さんは主に PaaS や NoSQL など新しいデータベースに詳しく、太田さんは SQL Server やマシンラーニングをガチでやっていて、長田さんは長らくマイクロソフト技術をはじめとし、他社のデータベースも幅広くご存じの方というイメージです。「混ぜるな危険」的な試みです(笑)。ゆるふわで話していきたいと思います。マイクロソフトの SQL Server は最新版ではマルチプラットフォームを実現し、性能強化もしています。皆様はどうご覧になっていますか?
太田:外資の会社ってすごいなと思いました。CEO が代わって一気にベクトルが変わった印象があります。世界でマイクロソフト社員は10万人以上いるのに。「あっちに舵を切ろう!」と言えばそうなる。たとえば、SQL Server なら Windows でしか動かさないことが当たり前だったのではないでしょうか。
三宅:以前 Linux で動かすことが要件で求められ、SQL Server がLinux で動いたらいいのになと思いながらも「絶対にかなわない」と思っていました。それが変わるなんて感慨深いです。
長田:弊社はパッケージベンダーなのでデータベースの変更はなかなか容易ではありません。しかし近年 SQL Server はますます強化され、.NET Framework がオープン化されるなど、面白い挑戦がされているので、SQL Serverの活用も検討していきたいと思っています。
山本:そうおっしゃっていただけるとうれしいです。
長田:最近データベース移行で太田さんにアセスメントしてもらいました。よほど方言をつかわなければ、移行のハードルは低いと実感しました。ただ政治的な理由が残るのですけどね。
山本:マイクロソフトのデータプラットフォームには RDBMS の SQL Server をはじめとして、その双子となる Microsoft Azure SQL Database、また Microsoft Azure では MySQL など OSS のデータベースが利用可能となり、ほかにも NoSQL の Azure Cosmos DB とか、SQL Data Warehouse とか、Data Lake とか全方位でやっています。どうご覧になりますか。節操ないって感じでしょうか?
三宅:MySQL は特に歓迎です。我々だとオンプレミスの MySQL や PostgreSQL からクラウドへの移行案件が多いです。OSS データベースから Microsoft Azure SQL Database への移行はやろうと思えばできますが、お客さまはそのリスクをとりたくない。だから Microsoft Azure Database で OSS データベースもフラットに選択できるのはありがたいです。ないとムリ。
太田:ところで、お客さまがPaaSを選ぶポイントはどういったところにあるのでしょうか?
三宅:そこ聞きますか(笑)。うちの案件は事業部門のものが多く、運用管理ができる人がいません。そのため DevOps を越えて NoOps 、運用管理が要らないものを求めています。逆に言えばクラウドのメリットはそこにあると思います。クラウドには多くの SaaS があり、手軽に使えますがかゆいところに手が届かない。PaaSならちょうどいいのです。うちだと NoOps を目指しているので、オンプレかクラウドかで選択することなくプロジェクトが進んでいます。
山本:昔、Microsoft Access の VBA で開発したシステムが進化した感じでしょうか?
三宅:そう。昔は EUC(End User Computing)と言いました。デメリットは個人依存になり、行き詰まってしまいます。Microsoft Azure(クラウド)ならインフラはマイクロソフトがやってくれるので、PaaS が本当にちょうどいい。基幹システムほど大規模になると(技術面はさておき)クラウド利用に対する政治的な議論が起こりやすく前に進みません。ある程度の規模なら Microsoft Azure のPaaS はちょうどいいです。
山本:最近 Microsoft Azure SQL Database のオンライン セミナーを実施したところ Access からの移行について質問があり、「まだ Access が現役だったんだ」と驚いていたところです。みなさん、それぞれどんなデータに向き合っていますか?
長田:オンプレの SQL Server であれば、データはサーバーに一極集中しています。ただAccess も現役ですよ。オンプレでクライアント・サーバー環境を構築したとき、マスターメンテは SQL Server に入れるほどではなくAccess で十分なので。
山本:すごく腹落ちしました。
三宅:マスターメンテは本当に無駄。Cosmos DB ならデータは JSON になるのでデータの意味も分かります。もうマスターメンテはやめましょうと言ってます。Access なら合っていると思います。
注
[1]: 参加者がダウンロードできるスライド資料は、「SQL Server 2017新機能概要」のものが62ページ、「Azure SQL Database概要」のものが115ページ、「MS New Technology概要(ML、Ai、Bot)」のものが30ページ、「DB(Oracle/Cloud) Migration」のものが36ページある。
AI の壁、エンジニアが生き残る道は
山本:いま Access が話題になりましたが、SQL Server などもあり。スモールからビッグまで、どう使い分けていますか?
太田:ユースケースの違いだと思います。
長田:ここだから質問したいのですが、RDB と NoSQL 、どう使い分けていますか?いまいち腑に落ちないんですよ。
三宅:データの数や量よりもトランザクション管理ですね。トランザクション管理が厳密ならRDB がいいです。NoSQL でもできなくないですが、ハックレベルなので。
山本:商用データベースならトランザクション管理は当然ですが、OSSのデータベースではトランザクション管理が実装されてない時代があったと聞いて驚きました。
三宅:それなら NoSQL でもいいかもしれませんね(笑)。ブログとかならトランザクション管理は要りませんし。
太田:わたしがよく説明するのは CAP 定理です。一貫性(Consistency) 、可用性 (Availability)、分割耐性(Partition-tolerance)。この3つを同時に保証することは難しいとされています。例えばSQL Serverのようなリレーショナルデータベースは一貫性と可用性の保証を重視しています。一方でNoSQLは可用性と分断耐性、もしくは一貫性と分断耐性を重視しています。つまり、どれを取捨選択するかの違いです。
三宅:それでうちは3~4つのデータソースを組み合わせることも多いです。
山本:CAP 定理は基本に立ち返るという意味で納得しました。最近だと AI が話題で、SQL Server には機械学習サービスが組み込んだりしています。長田さんはどう見ていますか?
長田:最近だと人工知能、AI、ML(マシンラーニング)という言葉が一人歩きしていると感じています。「 AI がなんでもやってくれる」と考えている経営層とか。一方開発者は考え方を変えていく必要があると考えています。
太田:わたしはAI をブームではなく必然だと思っています。その説明として最近オンライン セミナーで使ったネタを話させてください。
山本:どうぞ。お願いします。
太田:ここではAIは生産性を向上させるためのツールであることをお伝えしています。これまでは人がルールを決めてアルゴリズム(プログラム)を記述していました。これには多くの時間を要していました。しかし今は機械学習を活用することによりデータからアルゴリズム(モデル)をあっという間に導くことができるようになっています。これからのエンジニアはプログラムではなくモデルを管理していくことになるのではないでしょうか。
長田:考え方やアプローチを変えていく必要があるということですね。聞いてて思ったのはデータの質も重要だと思いました。最近聞いた話で、糖尿病研究で検尿のデータを集めて分析しようとしたら、人間のものではないサンプルが混じっていたというのです。
山本:それ、聞いたことあるかも。犬のを持ってきたとかではないですか?
長田:そうなんです。人間の糖尿病検査なのに、自分よりペットの糖尿病が心配でペットの尿を提出した人がいたのです。この1件の混入でデータの集合がおかしくなってしまいます。
山本:データ整備は「マエショリスト(前処理する人の意味)」というデータサイエンティストさんも言っていました。「データ分析をする前に、データにゴミが入らないようにデータを選別する、必要なデータを収集することが大事」と話されていました。
太田:特異なデータについてはプログラムで処置するのも大事ですね。
三宅:前処理は時間がかかります。先日画像でディープラーニングをしたのですが、実際の処理にかけるまで、クリーンなデータを準備するのに数日かかりました。いいところで切り取ったり。「これはまだ AI 処理の手前だ」と思いながら。前処理の機能は充実してほしいですね。
山本:みんなでボーティングしましょう(笑)。
三宅:マイクロソフトの前処理ツールで vott があります。タギングができてすごく便利です。これがなければ GPU がんがん回しても(分析で)意味がない。前処理、すごく重要だと痛感しました。また、今は前処理のノウハウが重要なので、まだエンジニアが活躍できる領域だと思っています。
山本:太田さんの話にも通じますね。AI の台頭でエンジニアが要らなくなると懸念もありますが、モデルの管理と前処理はまだ必要ですから。
三宅:あとモデルのデプロイ。モデルを作ったり、分析自体は AI に任せてもいいのでは。いかにそうしたツールを使うか。
山本:AI のモデルと GPU のドライバセットをコンテナ技術で管理している例もあります。Machine Learning Workbench のコンセプトがこれに該当します。
三宅:AI とコンテナ技術は相性良さそうですね。ディープラーニングは環境構築がすごく大変ですから。SQL Server も Docker が使えるようになったから、元データも管理できるといいですね。コンテナ技術はエンジニアなら覚えておいて絶対に損はないですよ。
太田:リレーショナルデータベースのオプティマイザにもAIが活用されそうです。当初はあらかじめ決めたルールベースで動いていた、今はDB内に蓄積した統計データを頼りにコストベースで動いている、これがさらに進化しモデルベースで動くようになることは自然な流れである気がします。
山本:もう少しで実現できるのではないでしょうか。
三宅:ぼくの SQL Server が好きなところって管理の自動化なんですよ。AI でどんどん便利になるといいですね。
山本:SQL Server のデータならオプティマイザのエンジンを作ったとしても自社製品どうしなので学習効率も良さそうですから。期待したいです。Cosmos DB で最適化したいものはありますか?
三宅:クエリがすでに速いですからね。頑張ってほしいのはグローバル分散での強い整合性ですね。Google Cloud Spanner がありますから。Amazon DynamoDB も Cosmos DB に近づいていますし。他社製品の話ばかりですみません。
山本:いえいえ。満足してしまうと製品の将来はないですから、フィードバックは大事です。Azure Database for MySQL や Azure Database for PostgreSQL も元はフィードバックから製品化にこぎつけたんですよ。今皆さんなら、どんな要望をあげたいですか?
三宅:ぼくなら Cosmos DB のオートスケールです。Amazon DynamoDB ができるので、Cosmos DB で大至急できるようにしないとまずいと思います。Microsoft Azure SQL Database ならバーストが起きてもなんとか頑張ってくれるじゃないですか。
山本:みんなで(フィードバックという形で)声を上げましょう。
注
[2]: Azure仮想マシン(Azure Virtual Machine)はマイクロソフトが提供するIaaS。単にMicrosoft Azureという場合はPaaSである。
マイクロソフトのデータプラットフォームに期待すること
太田:話が変わりますが、いま、写真はどこに置くのが安心だと感じますか? 個人で見ると、写真データってむちゃくちゃ大事ですよね。私はクラウドが一番安心な保存先に感じます。
山本:私はけっこう前から Flickr で有償契約しています。無制限だった時に契約したのでRAW のデータも入れています。
太田:前は自宅で RAID で可用性を高めていました。
山本:それはもうナンセンスな時代ですね(笑)。
三宅:写真のバックアップなら Amazon が最も安かったと思います。法人ならIMAGE WORKS(富士フイルムソフトウェア)もいいと思います。ぼくはアップルですが、今は選択肢がたくさんありますね。
山本:Azure Site Recovery もどうぞ。個人で使っている人、けっこういますから(笑)。太田さんからの要望はローカルのディスクを Azure にバックアップするこということでいいですか。写真データってプレゼンで使えたりしますし、API で簡単に写真をとれるような管理システムがあるといいですね。
三宅:そうしたら Azure BLOB Storage でしょう。
山本:個人だとおかしいですよね。しかもジオレプリケーションするなんて。
三宅:あはは。
太田:マイクロソフトへの要望は日本での情報提供ですね。先日 PASS(SQL Serverの年次イベント) に行きましたが、圧倒的に集客力があるのは地に足の着いたセッションでした。現場レベルの体系だったMESEなノウハウをCAT(Customer Advisory Team)など現場でお客さまと伴走している人がSQL Serverのパラメータレベルのボトムアップではなく、システムの視点で熱く語っていました。こうした、すぐに現場に役立つものを日本でもやってほしいです。
山本:Microsoft Tech Summit でもできるだけ準備したんですよ。
三宅:性能は永遠のテーマですから。チューニングネタは関心が高いと思います。
太田:わたしは現場ノウハウの辞書を作りたいと思い、それで DB Online で連載しているんですよ。
三宅:そういう背景の連載だったんですね。データベースの大きさや配置、ブロックサイズとか、こうした内容は特に若いエンジニアに知ってほしいです。チューニング以前に設計の基本を知らずにデータベースを運用している場合もありますから。
山本:太田さんからは現場ですぐに活用可能な情報提供ということでしたが、長田さんと三宅さんはどうですか?
長田:Microsoft Office 365 だと Power BI も普及してほしいと思います。まだ Excel と混同されがちですが、使い方を覚えたら手放せなくなりますから。ISV としてはライセンス周辺の価格や使いやすさはより向上するといいなと思います。
三宅:ぼくからの要望は OSS へのスタンスはこのまま突き進んでもらいたいです。
山本:今日は貴重な意見をたくさん聞けました。どれか1つでもいいので、これからもマイクロソフト製品をかわいがってくださいね。ありがとうございました。