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. Adobe Analytics

    【実験してみた】CNAMEを使わずにAdobeAnalyticsを1stパーティクッキーで計測する

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

  2. Adobe Analytics

    Adobe Analytics: データフィードをGoogle Compute EngineのLin…

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

  3. GA 360 Suite

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

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

  4. Google Cloud Platform

    Google Compute Engine: 一定時間経過したらタスクを強制終了する

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

  5. Cloud Dataflow

    データアナリスト/データエンジニア向けNext19まとめ

    こんにちは、エクスチュア渡部です。2019/4/9-4/11に行わ…

  6. Google Analytics

    Cloud FunctionsとOpenWeather APIを使ってGoogle Analytic…

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

最近の記事

  1. KARTE 「フローイベント」
  2. KARTE – 「コンテキストイベント」を活用し…
  3. KARTE:最低限!KARTEの運用管理のためにやっておくこ…
  4. YOTTAA:新機能「Anomaly AI」のご紹介
  5. Tableau 2021.1 新機能紹介
  1. Azure

    Google Cloud StorageとAzure Blob Storage間…
  2. Tableau

    Tableau : IF文の「集計」「非集計」の混在を解決
  3. Google Cloud Platform

    GoogleNext 2019レポート:初日目
  4. Google Cloud Platform

    Node.js+GAE: 日本語自然文を形態素解析してネガポジ判定をする
  5. ObservePoint

    機会損失を未然に防ぐ!ユーザエクスペリエンスシミュレーター”WebJ…
PAGE TOP