Enterprise Data Warehouse

爆速データウェアハウスなApache Druidを試す

こんにちは、エクスチュアの權泳東(権泳東/コン・ヨンドン)です。

今回はApache Druidについてです。

Apache Druidとは

Apache Druidはカラム型(列指向)の分散型データストアで、オープソースで開発が進められてます。
データのインジェストはバッチとストリーミング両方に対応しており、垂直方向へのスケールに強く、また、新しくインジェストしたデータにはリアルタイムで検索インデックスが作成されるという特徴があります。
SQLインターフェースを備えたリアルタイムデータウェアハウスと言う感じで、とにかくパフォーマンス命で低レイテンシを重視してます。
クエリ実行におけるパフォーマンスはHiveの260倍、BigQueryの10倍出るらしい。。

TL;DR

Apache Druidは爆速データウェアハウスです。

そんなApache Druidを早速GCP上で動かして見ました。

さっそくQuickStart

Apache DruidのQuickstartを実際に試しました。
Quickstart · Apache Druid

まずはVMを用意します。
マシンタイプは n1-standard-1 (1 vCPU, 3.75 GB memory) で、OSはUbuntu 18.04にしました。
これはApache Druidの必要最低スペック(nano-quickstart用)です。

DruidはJava 8が必要なので今回はOpen JDK 8をインストールします。

Open JDK 8をインストール

Ubuntuでインストールするには、下記のコマンドを実行します。

sudo apt install openjdk-8-jdk -y

インストール後、/etc/environment に環境変数JAVA_HOMEをセットします。

JAVA_HOME="/usr/lib/jvm/java-8-openjdk-amd64"

それからsourceコマンドでJAVA_HOMEを反映。

source /etc/environment

Apache Druidをインストールして起動

Apache Druidを下記のミラーサイトからダウンロードします。
Apache Download Mirrors

ダウンロード後、tar.gzを展開します。
私は/usr/localにコピーしました。

tar -zxf apache-druid-0.17.0-bin.tar.gz
sudo cp -r apache-druid-0.17.0 /usr/local/
cd /usr/local/apache-druid-0.17.0/

そしてDruidを起動します。
n1-standard-1マシンを選んだので、nano-quickstartを起動します。

export DRUID_SKIP_JAVA_CHECK=1
nohup ./bin/start-nano-quickstart &

これでDruidがtcp 8888番ポートで起動するので、ブラウザでアクセスします。
なお、VPC FirewallでVMインスタンスのtcp 8888番ポートとの通信を許可する必要があります。
IP制限も適宜実施してください。

Apache Druid トップページ

サンプルデータをロード

次はサンプルデータをロードします。
画面上部の[Load data]をクリックするとこういう画面が出ます。

Druidにデータをロード

この中の[Local disk]を選んで[Connect data] に進みます。

次の画面で下記を入力します:

  • Base directory: quickstart/tutorial/
  • File filter: wikiticker-2015-09-12-sampled.json.gz

そして[Appl]を押すと下記のようにデータをプレビュー出来ます。

データをプレビュー

で、ここから先はデフォルトのまま3ステップ飛ばすので、

  • Next: Parse time
  • Next: Transform
  • Next: Filter

の順番にボタンを押して進みます。

すると[Configure schema]の画面になるので、ここでは[Rollup]のチェックを外します。

Configure schemaでRollupをオフ

続いて[Next: Partition]に進みます。
ここでは、[Segment granularity] を [DAY] にします。

Segment granurality: DAY

続いて[Next: Tune]に進みます。
[Datasource name]にわかりやすい名前をつけます。
ここでは[wikipedia]という名前にしました。

パブリッシュ設定

それから[Edit spec]に進み、[Submit]を押すとデータロードが始まります。

Submitでアップロード開始

アップロードが終わると[Datasources]に表示されます。

データソース一覧

SQLを実行

それではSQLでクエリを実行します。
[Query]を開いて、下記のSQLを記入して[Run]を押すと実行します。

select * from wikipedia

SQLを実行

結果がすぐに返って来ます。

クエリの結果

まとめ

今回はApache Druidのnano-quickstartを、n1-standard-1タイプのVMを1台使って動かして見ました。
さらにパフォーマンスを求める場合は、ハイメモリマシンを複数台使ったクラスタを構成する事で、より高速なクエリを実行できる事が期待されます。

今後弊社ではApache Druidを使った分析基盤構築を提供して行く予定です。
お問い合わせはこちらからどうぞ。

ピックアップ記事

  1. 最速で理解したい人のためのIT用語集

関連記事

  1. Google Cloud Platform

    Looker: LookerbotでSlackにグラフ画像をスケジュール投稿する

    こんにちは、エクスチュアの權泳東(権泳東/コン・ヨンドン)です。…

  2. Google BigQuery

    GoogleNext 2019レポート:3日目

    こんにちは、エクスチュアの權泳東(権泳東/コン・ヨンドン)です。…

  3. Google Cloud Platform

    Vertex AIのベクトル検索によってブログの検索エンジンを作成してみた

    はじめにこんにちは、石原と申します。こちらの記事は前…

  4. Cloud Dataflow

    Firebase AnalyticsのデータをフラットなCSVに変換する – Googl…

    こんにちは、エクスチュアの權泳東(権泳東/コン・ヨンドン)です。…

  5. GA 360 Suite

    GoogleDataStudio:複数のデータソースにフィルターを適用する

    こんにちは。エクスチュアの渡部です。今回はDataStudio(デ…

  6. Adobe Analytics

    Adobe AnalyticsからDWHレポートをGoogle Cloud Storageにアップロ…

    こんにちは、エクスチュアの權泳東(権泳東/コン・ヨンドン)です。…

最近の記事

  1. 回帰分析はかく語りき Part3 ロジスティック回帰
  2. GCSへのSnowflake Open Catalogによる…
  3. VPC Service Controlsで「NO_MATCH…
  4. モダンデータスタックなワークフローオーケストレーションツール…
  5. Streamlit in Snowflakeによるダッシュボ…
  1. Google Apps Script(GAS)

    Google App ScriptでWebアプリを作る
  2. IT用語集

    アーカイブ(Archive)って何?
  3. Data Clean Room

    セッション資料:第13回関西DB勉強会 Snowflakeデータクリーンルーム
  4. Mouseflow

    分析対象を絞り込むフィルター機能
  5. IT用語集

    【完全版】Tableau(タブロー)って何?
PAGE TOP