GPUの並列処理でSQLクェリを超高速化するBlazingDB、AWSのGPUインスタンスなどを利用

blazingdb1

顧客データを数ペタバイトも集めるのはクールだけど、でもそれをどうやって有効利用するのか? BlazingDBは、大量のGPUを使ってデータベースに対するSQLクェリを高速化する。同社はTechCrunch Disrupt SFのBattlefieldコンペで、そのソリューションの無料のコミュニティエディションを披露した。

複雑なSQLクェリは、実行時間が長すぎてこっちが眠ってしまいそうになることもある。それは、クェリをCPUが実行していて、必要十分なスケーリングができないからだ。

BlazingDBの協同ファウンダーでCEOのRodrigo Aramburuはこう言う: “サーバーをスケールアップすることはできるが、リニアー(線形)な処理の場合、効果的なサーバーの増設は難しい”。

データベースにGPUを使うのは、なかなかおもしろい。GPUは大量のタスクを並列に動かせるから、一部の限られた種類のタスクにとってはとても有利だ。とくに今では、画像処理や機械学習のアプリケーションでGPUが多用されている。でも、データベースでGPUを使うという話は、今回が初めてだ。

クラウドコンピューティングのおかげで、大量のデータをデータベースに保存することは、とても簡単になった。でも企業のデータベースは今では、アナリティクス(データ分析)のダッシュボードやビジネスインテリジェンスのためのツールなどを構築するためにも使われている。

このような、データベースの高性能な利用が求められる場面が、BlazingDBの出番だ。短時間で、集計をしたり、述語を使ったり、データベースの大量のエントリーを操作しなければならない。同社が顧客を受け入れ始めたのは2016年の6月だが、すでにFortune 100社に挙げられる大企業数社がBlazingDBを使っている。

Aramburu曰く、“彼らがそれまで使っていたツールはSQLの処理に数時間を要していたが、うちのツールなら数分だ。BlazingDBは何千ものコアを使って大規模な並列処理を行う”。

BlazingDBが実際に使うのは、Amazon Web ServicesやIBMのSoftLayer、Microsoft AzureなどのGPUインスタンスだ。だから企業はサーバーを(少なくとも今のところは)自分で管理する必要はないが、大量の機密データを扱うような企業はサーバーの自己管理を選んでもよい。

“うちのインフラストラクチャは、サーバーの種類やタイプを特定しない”、とAramburuは語る。“われわれが構築したコードベースは、そのための問題解決に尽力しているから、けっこう複雑だ”。

顧客は、そのほかのSQLデータベースと同じく、BlazingDBにプログラムでアクセスできる。たとえばPythonでETLのスクリプトを書いて、BlazingDB上のデータにアクセスしてもよい。

今BlazingDBのチームは6名だ。同社は今、大企業の顧客を獲得していくための概念実証の構築を、計画している。一方BlazingDBには無料のコミュニティエディションもあるから、ちょっと遊んでみることもできる。

SQLデータベースの企業というと、あまりセクシーには響かないが、BlazingDBがやってることはおもしろい。今、多くの企業がデータ駆動型になりつつあるが、BlazingDBは大量のデータから意味を見つけ出す作業を助ける。

  1. blazingdb21.jpg

  2. blazingdb2.jpg

  3. blazingdb31.jpg

  4. blazingdb11.jpg

  5. blazingdb12.jpg

  6. blazingdb3.jpg

Q&A

Q: これまでのどんなツールより速いようだが、切り替えの費用は?
A: コネクタを提供していますから、データが数テラバイトあっても、切り替えはかなり容易です。

Q: 御社のスライドにはDeepMindが登場するけど、AlphaGoもGPUを使っているからか?
A: あれはとても多層的なニューラルネットワークを使っていますが、それはGPUの集合で構成されています。

Q: このソリューションの欠点は何か?
A: トランザクション型のデータベースではないことです。その方面では、そんなに速くありません。また、SQLの規格のすべてを実装してはいません。ウィンドウファンクションやストアプロシージャはありません。

Q: 類似特許は存在していないか?
A: 特許については詳しくないんですけど、既存のSQLツールをGPU利用バージョンに改装しているところは、いろいろあります。われわれは、スクラッチから(ゼロから)スタートしました。

disrupt

[原文へ]
(翻訳:iwatani(a.k.a. hiwa))