一体化が進むクラウドデータベースとAI/機械学習――その最新トレンドとは?
AI/機械学習処理は大量のデータを扱うことからデータベースと密接な関係にあり、最近ではデータベースエンジンに機械学習機能が組み込まれる例も見られるようになっている。ここでは、機械学習とデータベースの新たなトレンドを見ていこう。
便利な機械学習サービスには課題も
クラウドの登場と普及は、あらゆるソフトウェアに影響を与えていると言っていいでしょう。そうしたなか、リレーショナルデータベースのクラウド対応が機能やアーキテクチャにどのような影響を与えたのかは、2018年1月の本稿『クラウドの時代に合わせて進化する新しいデータベースの姿とは?』(https://cn.teldevice.co.jp/column/10520/)で紹介しました。
そこで紹介したリレーショナルデータベースの変化をかいつまんで言うと、可用性のレベルが複数のサーバーを束ねたクラスタから複数のデータセンターを束ねたアベイラビリティゾーンやリージョンへと拡大したこと、分散データベースのレベルが地球規模にまで広がったこと、そしてデータベースのバックアップやトラブルシュート、チューニングなどの運用管理作業が機械学習によって自動化されていくこと、などです。
これらが同記事を執筆した2018年当時のリレーショナルデータベースにおける動向だったのです。それから3年が経ち、クラウドにおけるデータベースの進化はさらに進んでいます。そのトレンドの1つが、データベースへの機械学習機能の搭載です。
機械学習の処理は少ないデータでは十分な学習効果が得られず、不十分な処理能力では処理に時間がかかりすぎます。そのため機械学習の処理には、大容量のストレージと大規模なサーバーを備えたインフラが求められます。しかし、この要求にかなう規模のインフラをオンプレミスで構築できる組織はそれほど多くありません。
そのため、クラウドのように事実上の無制限と言ってよいストレージと、何百台、何千台ものサーバーを必要な時だけ従量課金で利用できる仕組みは、機械学習処理にうってつけのインフラなのです。
実際、主要なクラウドは機械学習のためのサービスを提供してきました。AWSであれば「Amazon SageMaker」、Google Cloudであれば「Cloud AutoML」、Microsoft Azureであれば「Azure Machine Learning」などです。
これらをそれぞれのクラウドストレージやデータレイクサービスなどと組み合わせて利用することで、大量のデータを保存し、ラベル付けを行い、アルゴリズムを選択し、学習を行うといった機械学習に必要な処理がひと通り行えるのです。
しかし、ここで課題として挙げられるのが、データの移動の問題、そしてエンジニアのスキルの問題です。
機械学習に用いられるデータをデータウェアハウスなどに蓄積していた場合、その大量のデータを機械学習サービス用にいったんエクスポートし、ストレージに保存して、改めて読み込ませるといった手間がかかる場合があります。そして当然ながら、機械学習サービスそのものの機能と使い方、機械学習用フレームワークなどについて、エンジニアは学習しなければなりません。
データベースと機械学習サービスの統合
そこで登場してきたのが、データウェアハウス用データベースと機械学習サービスの統合です。しかもSQLなどにより手軽にデータベース操作の一部として機械学習処理ができるようにもなってきたことで、データベースと機械学習の一体化が進んでいるのです。
AWSのデータウェアハウスサービス「Amazon Redshift」に、機械学習サービスであるAmazon SageMakerを統合した「Amazon Redshift ML」を例に見てみましょう。
Amazon Redshift MLは、データベースの中からSQL文で選択したデータをもとに機械学習が行われ、それによって作成されたモデルによって推論ができるようになっています。この機能が使われるとき、Amazon Redshift MLの内部ではSQLで呼び出されたデータが自動的にAmazon SageMaker に与えられるようになっています。
Amazon SageMakerには「Autopilot」と呼ばれる、最適なアルゴリズムを自動的に選択してくれる機能があるため、これによりAmazon Redshift MLでも自動的にアルゴリズムが選択され、適切な機械学習モデルを構築し、トレーニングや推論が行われます。そして、その結果がSQLの返り値として戻されることになっているのです。
Amazon Redshift MLでは、機械学習モデルを作成するための「Create Model」文など、いくつかの拡張がSQLに対して行われています。推論を行う際には、このCreate Model文で作成したモデルを用いて、Select文で結果を得ることが可能になります。
これにより、いちいち機械学習処理用にデータを抽出して転送するといった手間がなくなります。さらに、すでにデータベース管理者なら使い慣れているSQL文で機械学習のトレーニングと推論を得られるため、大規模データに対するさまざまな分析や推論がより簡単に行えるのです。
ピンチアウトで拡大
Google BigQueryやOracle Autonomous Databaseも
Googleの大規模データベースサービス「BigQuery」に機械学習サービスを統合した「BigQuery ML」も、ほぼ同様の特長を備えています。
BigQuery MLでも、データを機械学習サービスにエクスポートすることなく処理できますし、PythonやJavaといったプログラミング言語などを用いることなくSQL文で機械学習のモデルを作成するなど、機械学習が容易に利用できます。
Oracle Cloudでも、データベースサービスである「Oracle Autonomous Database 」には「Oracle Machine Learning for SQL」と呼ばれるサービスが提供されています。これを用いることで、機械学習モデルの構築などに同社のPL/SQLが利用できます。
データには“引力”がある
このように主要なクラウド上のデータウェアハウスでは、機械学習との統合が実際に行われ、SQLによってデータベース管理者が以前よりも手軽に機械学習を扱えるようになってきています。
クラウドの分野では、しばしば「データには引力がある」と言われます。データは集まれば集まるほど、他のデータと連携させて深い分析が可能になり、価値が高まります。すると、さらにそこへデータを集めることで、もっと価値を高めようという力が働くわけです。それは質量が大きければ大きいほど他の物質を引きつけていく、まるで引力のようである、ということを示しています。
クラウドベンダーは各社とも、ユーザーを自分のクラウドに引きつけておくためのサービス拡充に余念がありません。なかでも蓄積すればするほど他の場所へ移すことが難しくなるデータを、自社クラウドへ保存してもらうことは高い重要度を持ちます。それはすなわち、ストレージとデータベースを安く高機能に提供し、しかも容易に扱えるようにすることにつながっていくわけです。
データベースにAI/機械学習機能を統合してSQLから使いやすくすることは、クラウドベンダーの重要な戦略であり、今後もその改善や進化の波が止まることはまずないでしょう。
※このコラムは不定期連載です。
※会社名および商標名は、それぞれの会社の商標あるいは登録商標です。
-
新野淳一/Junichi Niino
ブログメディア「Publickey」( http://www.publickey1.jp/ )運営者。IT系の雑誌編集者、オンラインメディア発行人を経て独立。新しいオンラインメディアの可能性を追求。