データウェアハウスが要らなくなるというデータのミドルウェア、Dremioを使ってみる

最近、こちらシリコンバレーのデータ界隈でよく話題になっているDremioというテクノロジーがありますが、MongoDB、JSONファイルといった非構造型のデータや、Redshift、Postgres、SQLServerといった従来の構造型のデータに対して統一したSQLインターフェイスを提供してくれます。さらに、そうしたさまざまな種類のデータソースに対してクエリの最適化とデータのキャッシュの管理を自動的に行なってくれます。また、Apache Arrowを使用したカラムナーのインメモリ処理と、(RDBMSまたはNoSQLソースの時に)元となるデータソースへの先進的なプッシュダウンを活用し、Apache Parquetによるデータソースの高度に最適化された物理的表現を利用することで、クエリパフォーマンスを最大1000倍まで高速化できるらしいです。

言ってみるならば、データ分析者が分析に必要なデータをSQLを書くことで簡単に一元管理できるサービスといったところでしょうか。

今日はそのDremioをインストールし、ExploratoryからDremioにつないでデータをとってくる方法を紹介します。

Dremio サーバ

始める前に

もし、ご使用のマシンにJDK (Java Development Kit)がインストールされていない場合、JDKをインストールしてください。JDKはこちらからダウンロードできます。

ダウンロード

まず、DremioのダウンロードサイトからDremioをダウンロードする必要があります。このブログ記事では、Mac版のDremio Community Editionのインストールについて説明します。

インストール

インストールファイル(この例では.dmgファイル)をダウンロードしたら、ファイルをダブルクリックします。 すると以下のようなダイアログが開きます。ここで、DremioアイコンをドラッグしてApplicationsフォルダに移動します。

これでインストール完了です!ではDremioを起動してみましょう。

設定

Dremioを起動するには、今インストールしたDremioのアイコンをダブルクリックします。

そして管理画面がこのようにポップアップするので、開始ボタンをクリックします。

起動すると、Open Dremioというボタンがクリックできるようになるので、クリックします。

管理アカウントを作成

すると、ブラウザが起動するので(または、すでに起動している場合は新規のタブが開きます)、入力必須項目に必要な情報を入れて、管理アカウントを作ります。

Nextをクリックすると、無事に管理アカウントが作成できました!そして、以下のようなDremioの画面が表示されます。

サンプルソースを追加

Dremioにはサンプルソースが事前に準備されているので、それを見てみましょう。 Add Sample Source ボタンをクリックします。

すると、sample.dremio.com が追加されます。このsample.dremio.comをクリックしてみましょう。

samples.dremio.com の下に3つのサンプルソースがあるのが分かります。一番最初のサンプル(SF_incidents2016.json)をクリックして見ましょう。

すると、以下のようなダイアログが開いて、データをプレビューできます。 Save ボタンをクリックします。

すると、SQLのクエリーのダイアログが開いて、データを確認できます。

見ての通り、このサンプルファイルはローカルのファイルシステムに置いてあるJSONフォーマットのデータですが、ここでSQLを書いて一部のデータを持ってきたり、集計しちゃうことができるんです。この辺の詳しい話はまた別の機会に紹介したいと思います。

Dremio ODBC ドライバー

ExploratoryからDremioにはODBCでアクセスすることができるので、Dremio用のODBCをインストールします。以下はMacの例です。

ダウンロード

Dremio本体をダウンロードしたのと同じページから、Dremio ODBC Driverをダウンロードします。

インストール

ダウンロードしたファイル(この例では.dmgファイル)をダブルクリックしました。これにより、以下のようなウィンドウが開きます。

Dremio ODBC.pkgファイルをダブルクリックします。ダイアログの指示に従います(Continueと「続行してライセンスに同意する」をクリックするだけです)

マシンのアカウント情報を聞かれたら、適宜入力してインストールを続けます。

これでインストールは完了です!

Exploratoryでデータソースを設定

Exploratory Desktopで、プロジェクト・リストのページまたはプロジェクトを開いた後のヘッダーメニューのいずれかから接続ダイアログを開きます。

プロジェクトのヘッダーメニューからコネクションダイアログを開く

プロジェクトを開き(または新規に作成し)、ヘッダーメニューからコネクションを選びます。

新規にDremioコネクションを追加

コネクションリストのダイアログで追加ボタンをクリックします。

コネクション選択のダイアログで、Dremioのアイコンをクリックします。

以下の情報を入力します。

  • 名前
  • ホスト (この例ではlocalhost)
  • ポート (デフォルトは31010)
  • ユーザー名 (先ほど作ったDremio 管理アカウントのユーザー名)
  • パスワード(先ほど作ったDremio管理アカウントのパスワード)

コネクションをテスト

これらのフィールドに入力したら、コネクションをテストボタンをクリックしてテストし、正常に接続できることを確認します。

接続がうまく行ったら追加ボタンをクリックしてこのコネクションを追加します。

Dremioからデータをとってくる

画面左側にあるツリーの、データフレームというラベルの横にあるプラス(+)のボタンをクリックして、データベースデータを選択します。

そして、以下のダイアログでDremioを選択します。

さきほど作成したDremio用のコネクション(Dremio - ローカル)を選択し、 画面左側のスキーマの下にあるSamples.'sample.dremio.com'をクリックして開くと、先ほどサンプルからDremioで追加したSF_incidents2016.jsonが表示されます。テーブル名をクリックすると、SQLエディタで次のクエリが自動的に設定されるので、プレビューボタンをクリックします。するとExploratoryからDremioにクエリーが発行されて、結果を確認することができます。

select * from "Samples.'samples.dremio.com'"."SF_incidents2016.json"

ここから先は、Dremioからインポートしたデータを使って、Exploratory Desktopで探索的なデータ分析を試してみてください!

Loading...

まとめ

このポストではDremioとODBCドライバをマシンにインストール/セットアップし、ExploratoryからDremioデータにアクセスする方法を説明しました。次のブログ記事では、DremioとExploratoryを使ってサンプル以外の実際のデータ(JSONファイル、MongoDB、Redshiftなど)をどのようにクエリできるかについて説明します。


まだExploratory Desktopをお持ちでない場合は、こちらから30日間無料でお試しいただけます。また学生・教員の方は30日後も無料でお使い頂けます。