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を使った分析基盤構築を提供して行く予定です。
お問い合わせはこちらからどうぞ。

ビッグクエリ(BigQuery)って何?前のページ

HDD、SSDって何?次のページ

ピックアップ記事

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

関連記事

  1. Google Cloud Platform

    VPC Service Controlsで「NO_MATCHING_ACCESS_LEVEL」とエラ…

    こんにちは!はじめに今回、セキュリティ強化の…

  2. Adobe Analytics

    Adobe Analytics: データフィードをGoogle BigQueryのテーブルにロードす…

    ※2019年9月4日追記この記事は情報が古いので、新しい記事を書き…

  3. Google BigQuery

    BigQueryでWindow関数を用いて、累積和を計算する

    こんにちは。エクスチュアでインターンをさせて頂いている中野です。今…

  4. Application Integration

    Google Cloud iPaaS 「Application Integration」を使ってみた…

    こんにちは、エクスチュアの黒岩です。今回の記事では、Goog…

  5. Google Cloud Platform

    GCSへのSnowflake Open Catalogによるデータレイクハウス導入チュートリアル

    はじめにこんにちは、エクスチュアの石原です。今回は1…

  6. Firebase Analytics

    Firebase AnalyticsのデータをフラットなCSVに変換するETL処理

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

カテゴリ
最近の記事
  1. モック作成が面倒で “楽” した話
  2. Fivetranからdbtプロジェクトを実行する
  3. Account Engagementで送るメールをマルチエー…
  4. 協力と裏切りの理論
  5. 【Snowflake Tips】Content-Typeには…
  1. Amazon Web Services

    IAM (Identity and Access Management) を理解…
  2. Tableau

    Tableauで長い文字列データをシート上で折り返す方法
  3. Adobe Analytics

    Adobe Analytics: VisitorAPIでSafariでもクロスド…
  4. Google BigQuery

    GCP: 今月のGCP課金額をslackに自動的に書き込む
  5. Tableau

    Tableauの便利な機能
PAGE TOP