IT業務効率化

GPUデータベースOmniSciを100円から始めてみる

OmniSciとは

OmniSciはGPUデータベースです。GPUボード状のメモリと大量のコアを使って高速のクエリを実現できます。

ベンチマークをしてみた海外の記事では、Postgresで152秒かかっていたクエリが、OmniSci(旧MapD)は0.021秒で7000倍の速度が出ています。(スペック・バージョンに依存することはさておき)

本記事では、30日間無料のOmniSciトライアルキーと1時間100円の最低スペックEC2インスタンスで、GPUデータベース試す方法をご紹介します。

ライセンスキーを取得しておく

ライセンスキーはOmniSciの公式のダウンロードページに移動し、30日間のトライアルキーを取得してみましょう。

OmniSci how to start

一番左のEnterprise Free Trialを選択します。

真ん中のCloudを利用してもよかったのですが、30分のチュートリアルを受ける必要がありそうだったのでやめました。

次に必要な情報を入力します。

OmniSci

companyには「Personal」と記入しました。30日間のトライアルなので、料金の発生はないはずです。

利用規約等はご自身でよくお読みください

OmniSci クラウドについて

私の調べたところEnterprise Editionの料金については要相談なようです。

クラウドの利用については料金が決まっているので、わかりやすいです。

OmniSciクラウドの利用料

メールを受け取る

上記の30日間のトライアルに登録すると「Your OmniSci Enterprise 30-Day Trial Key」というタイトルのメールが届きます。(私は1時間程度待ちました)

このメールにラインセンスキーが登録されているので、保存しておきます。

これでEC2でGPUインスタンスを起動してから、スムーズに利用することできます。

GPUインスタンスを起動する

AWSのコンソール画面

EC2のダッシュボードを開く

mapd AWSEC2ダッシュボードからインスタンスを作成する

検索画面で「omnisci」と検索してAMIを見つけます。ここではEnterprise Editionを使用します。

omnisci awsマシンのイメージからOmniSciを選ぶ

次にインスタンスタイプ(マシンのスペック)を選択します。画像のようにOmniSciはGPUインスタンス以外は選択できません。

OmniSci AWSCPUインタスタンスは選択できない

今回はp2.xlargeインスタンスを利用しようと思います。そこから先は通常のEC2インスタンスを作成する方法で問題ありません。またElasticIPを適用します。

https://qiita.com/HitomiHoshisaki/items/4e1eff6b32bcf91ec0d8

こちらの記事がEC2インスタンスの作成についてわかりやすかったので、参考にしていただければと思います。

omnisci インスタンス作成

淡々と説明してきましたが、この時点から1時間あたり大体100円くらいの料金が発生します。使用していないときは、小まめに停止してください。

OmniSci Immerseにアクセスする

OmniSci自体はGPUデータベースですが、OmniSci Immerseというデータ可視化のためのダッシュボードのwebアプリケーションを搭載しています。

パブリックDNSをコピーし、httpをhttpsに変更し、ポート番号を6273に指定してブラウザで開きます。

https://<パブリックDNS>:6273

するとOmniSci Immerseの画面に移動します。

ここでライセンスキーの入力を求められるので、最初に取得したライセンスキーを入力します。

次に、USER_IDとPASSWORDを聞かれます。公式ドキュメントにはadmin、{Instance ID} と書かれています。まずadminはデフォルトだとmapdでいいようです。パスワードはEC2のインスタンスIDです。

パスワードとなるインスタンスID
OmniSci how to use

もう一度ラインセンスキーを求められるので、再度同じキーを入力します。

再度同じライセンスキーを入力

どん!

無事にログインできました!

デモを触って見る

実際に利用してみたデモです。

最も特徴的なのは10億以上あるレコードを数秒単位の計算で表示している速さと、それぞれのチャートのフィルタリングが相互に相関するクロスフィルタリングです。

データを入れて見る

左上のDATA MANAGERからデータを入れられる

左上のDATA MANAGERからデータを入れることができます。

データを入れるときはローカルのファイルかS3から転送するか選ぶことができます。

データの型は自動で判別され、テーブルが作成されます。

mockaroo と言うサイトで生成したランダムデータを読み込ませて見ると下の画像のようにpreviewでデータを確認できます。

データ型を自動で判別している

データに問題がなければ、テーブル名を入力し、確定します。

チャートを作ってみる

右上のnew Dashboardをクリック

続いて右上に「Add Chart」と表示されるので、クリックします。

チャートを作成する
  1. チャートタイプを選択
  2. データ(テーブル)を選択
  3. グラフのx軸を選択
  4. グラフのy軸を選択(3、4についてはチャートのタイプに依存する)

同様の方法で2つのチャートを作成すると、それぞれがフィルタンリング反映されるようになります。

ダッシュボードの完成

終わりに

昔はオープンソースだったのに、気がついたら一部の機能が使えなくなっていたのが、個人的には残念です。。。

ただデータベースとしてはまだ無料で利用できますし、pymapdというPythonのインターフェースができたのことも嬉しいポイントです。やはり速さが一番の特徴なので、機械学習のためにそもそもGPUインスタンスをもっている方は、利用を検討してもいいかもしれません。(個人ではいないと思いますが)

style=”maru”]紆余曲折しすぎて、GPUインスタンス立てたまま色々したので、数千円飛んでしまいました。皆さんはそうならないように細かく書いてみたので、お役に立てば嬉しいです。

お読みいただきありがとうございました!
ABOUT ME
hirayuki
今年で社会人3年目になります。 日々体当たりで仕事を覚えています。 テーマはIT・教育です。 少しでも技術に親しんでもらえるよう、noteで4コマ漫画も書いています。 https://note.mu/hirayuki