オープンソースのWebアプリケーション分析ツール「Cube.js」

2019/07/25 07:31

「Cube.js」は、npmやyarnでインストールできるオープンソースのWebアプリケーション用分析ツールです。RDBだけでなく、AWS AthenaやGoogle BigQueryなどのサーバーレスクエリエンジンと連携するように設計されています。機能が非常に豊富なので、今回は初期セットアップに的を絞ってご紹介します。

◆ オープンソースのWebアプリケーション分析ツール「Cube.js」
https://cube.dev/

紹介

「Cube.js」は、GUIも完備した高機能なWebアプリケーション分析ツールです。

インストール

$ npm install -g cubejs-cli
# or
$ yarn global add cubejs-cli

npmまたはyarnでインストールします。

$ cubejs create <プロジェクト名> -d <データベースタイプ>

(データベースタイプ)
postgres
mysql
mongobi
athena
bigquery
redshift
mssql
clickhouse
snowflake
presto

(例)anypicksというプロジェクトかつMysqlの場合
$ cubejs create anypicks -d mysql

続いてデータベースの初期設定をつくります。

- Creating project structure
- Installing server dependencies
npm WARN deprecated joi@14.3.1: This module has moved and is now available at @hapi/joi. Please update your dependencies as this version is no longer maintained an may contain bugs and security issues.
npm WARN deprecated hoek@6.1.3: This module has moved and is now available at @hapi/hoek. Please update your dependencies as this version is no longer maintained an may contain bugs and security issues.
npm WARN deprecated topo@3.0.3: This module has moved and is now available at @hapi/topo. Please update your dependencies as this version is no longer maintained an may contain bugs and security issues.

> core-js@2.6.9 postinstall /home/vagrant/raptor/server/raptor/anypicks/node_modules/core-js
> node scripts/postinstall || echo "ignore"

Thank you for using core-js ( https://github.com/zloirock/core-js ) for polyfilling JavaScript standard library!

The project needs your help! Please consider supporting of core-js on Open Collective or Patreon: 
> https://opencollective.com/core-js 
> https://www.patreon.com/zloirock 

Also, the author of core-js ( https://github.com/zloirock ) is looking for a good job -)

npm notice created a lockfile as package-lock.json. You should commit this file.
+ @cubejs-backend/server@0.10.16
added 177 packages from 188 contributors and audited 403 packages in 25.991s
found 0 vulnerabilities

- Installing DB driver dependencies
+ @cubejs-backend/mysql-driver@0.10.16
added 14 packages from 28 contributors in 14.039s
- Writing files from template
- anypicks app has been created 🎉

📊 Next step: run dev server

     $ cd anypicks
     $ npm run dev
最後にNext stepが出力されたら成功
$ cd /anypicks
$ ls -alt

drwxrwxr-x   8 501 games   256  7月 24 05:00 .
-rw-rw-r--   1 501 games   196  7月 24 04:58 index.js
-rw-rw-r--   1 501 games   307  7月 24 04:58 .env
drwxrwxr-x   3 501 games    96  7月 24 04:58 schema
-rw-rw-r--   1 501 games 55154  7月 24 04:58 package-lock.json
-rw-rw-r--   1 501 games   251  7月 24 04:58 package.json
drwxrwxr-x 172 501 games  5504  7月 24 04:58 node_modules
drwxr-xr-x  37 501 games  1184  7月 24 04:58 ..

プロジェクト名で自動作成されたフォルダに移動します。

[vagrant@localhost anypicks]$ vim .env 
CUBEJS_DB_HOST=<YOUR_DB_HOST_HERE>
CUBEJS_DB_NAME=<YOUR_DB_NAME_HERE>
CUBEJS_DB_USER=<YOUR_DB_USER_HERE>
CUBEJS_DB_PASS=<YOUR_DB_PASS_HERE>
CUBEJS_DB_TYPE=mysql
CUBEJS_API_SECRET=b7058b3c0aa6b76fdb0b494ba161bc071fbfb0f2f44483f0c9f2cb8f01995f866b496e826f77f15c17753d3b68adb4baef345185c5f95061abbe0938bb051e94

「.env」ファイルに、アプリケーションに接続するDB設定を記載します。

$ npm run dev

以上で設定は完了。モジュールを起動してサイト(http://localhost:4000)にアクセスします。
※ localhostはご自身のホスト情報に書き換えてください。

無事起動しました。

使ってみる

分析するテーブルを選択して

「+」ボタンからGenerate Schemaを実行します。

Exploreに移動して、分析する指標を選びます。今回は「Notices Count」を選択。

すると、Notices Countのグラフが表示されます。検索条件や表示するグラフを変えらることもできます。

そして興味深いのが、結果を取得するReactのコードスニペットを吐き出してくれます。ですので、webサイトの分析レポートの一部として組み込むことも可能です。

他にはダッシュボードなど、色々な機能がありオープンソースとは思えないほどの充実ぶりです。ぜひ、社内のインテリジェンスツールとして活用してみてください。

◆ オープンソースのWebアプリケーション分析ツール「Cube.js」
https://cube.dev/

新着ピック  






皆川 祥皆川 祥2時間前株式会社LOB バックエンドエンジニア
















新着ニュース

INT 32 障害とその BOLD な対策 - Mercari Engineering Blog

INT 32 障害とその BOLD な対策 - Mer...

Mercari Engineering Blog / 4時間前


東大、量子コンピュータ研究・教育を促進 IBMと提携

ディスカバリーが独自の動画配信サービス「Dplay」開始 男性が好む番組を無料で

東芝レグザが「Amazon Prime Video」に対応 18年以降の4Kテレビで

キュア・アップ、豊中市や三井住友銀行らと禁煙SIB契約を締結--「とよなか卒煙プロジェクト」

[小ネタ] WindowsでTerraformを試してみた | DevelopersIO

Amazon Auroraの各種ログをCloudWatch LogsからS3に連携してみた | DevelopersIO

Impossible Foodsの開発者が共同創業した植物性ミルク製品企業のKite Hillも注目を集めそうだ | TechCrunch Japan

セブン-イレブン、10月から「au PAY」「d払い」など4種のスマホ決済を導入

グーグルとFTCの和解で示された子供のプライバシーの価値はわずか181億円 | TechCrunch Japan

AWSセキュリティベストプラクティスを実践するに当たって適度に抜粋しながら解説・補足した内容を共有します | DevelopersIO

ソフトバンク「半額サポート+」の注意点 SIMロックあり&他社ユーザーのロック解除は有料

DevRel/Japan Conference 2019に参加してきました | DevelopersIO

DevRel/Japan Conference 201...

DevelopersIO / 8時間前


Google Maps APIを使ってマーカーを立ててサーバーレスなAPIで保存する | DevelopersIO

WafCharmによるマネージドルールの管理 | DevelopersIO

NTTドコモ、ファーウェイ製スマホ「P30 Pro」を9月13日に発売へ

【F-Secure Radar API + CodePipeline】Webスキャンの実行と結果判定を自動化してみた | DevelopersIO

【F-Secure Radar API + CodeP...

DevelopersIO / 8時間前


AWS ワークショップを探してみました! | DevelopersIO

KDDI、千葉県全域で災害時無償Wi-Fi「00000JAPAN」を開放--キャリア問わず利用可能

TypeScript で 数当てゲーム に挑む #TypeScript #CLI | DevelopersIO

もっと見る
記事をPICKする
ログイン
会員登録
Register
記事をPICKする

会員登録すると、もっと便利に利用できます。