こんにちは、Beatrust で Data Scientist をやっている Ouyang(欧陽 江卉)です。
Beatrust では、ユーザー情報を匿名化した上でプロフィールデータや行動ログなどの様々なデータを蓄積・活用しています。また、クライアントや内部向けにデータ分析・レポーティングも行っています。それらのほとんどは手に馴染んだツールを使って内製しているのですが、近年モダンなデータスタックを用いたデータ利活用もトレンドになっています。今回は、そのトレンドをキャッチアップし、有用なツールがあれば積極的に導入していこうと考え、下記のツールを試用しそれぞれの強みをまとめてみました。
- データの探索的分析のツール Exploratory
- Reversed ETL プラットフォーム Hightouch
- データモデリング・レポーティングツール Holistics
Beatrust のデータ分析における課題
現在、Beatrust はデータウェアハウス BigQuery に蓄積した各種データを用いて、Redash と Google Data Studio を用いてデータ分析・レポーティングを行っています(データ分析基盤に関するテックスタックはこちらをご参照ください)。
Redash や Data Studio はデータ集計や可視化が手軽にできるところが素晴らしいのですが、分析内容の品質保証や顧客との共有などを行うにあたって、下記の点に課題を感じていました。
- クエリーやダッシュボードのコード管理ができず、プロダクトと同レベルの品質保証が難しい
- 閲覧者ごとに見られるデータ範囲を限定するのが難しく、顧客ごとに同一ダッシュボードの閲覧範囲を変えて出し分けることができない
そのため、自分たちの用途に適した BI ツールをキャッチアップし、評価・検証することにしました。要件としては以下と整理しましたが、2020年創業でまだ3年目が始まったばかりのスタートアップであることもあり、なるべく懐に優しいサービスであることも重要な評価ポイントです。
- Embedded analytics/dashboard でアプリ側でダッシュボードの提供
- 行レベルでのセキュリティポリシー
- 閲覧者(顧客など)に応じたフィルタリング条件でダッシュボード管理
- クエリやサブクエリを再利用するための Code-based 管理
良いタイミングなので、いわゆる Modern Data Stack へのキャッチアップも兼ねて、Beatrust で活用できそうなサービスはないか、BI ツールに限らず検証しています。
Exploratory「データサイエンスの民主化」
まず、Exploratory デスクトップの 30 日間のトライアルプランを利用しました。
Exploratory はデータインポートを含めてデータ分析はすべてプロジェクト単位で行います。新規プロジェクトを作成した後、データソースをインポートします。データソースに対して下記のメニューでデータ探索できます。
- サマリ:各カラムの統計量や分布が見れます。pandas-profiling に近いイメージです。
- テーブル:インポートされたデータにフィルターをかけたり結果をエクスポートしたりできます。
- チャート:よく使われる可視化プロットは全部ついていて、さらに細かい調整も可視化タイプ選択後にできます。EDAする際のコーディング手間はかなり省かれると思います。
すでに実装されている機能以外に、R 言語のスクリプトを書いてさらに高度なデータ処理もできます。
データドリブンな意思決定をサポートするためのデータ分析や可視化のためには、非常に優れたツールだと思います。Tableau と比べて、UI はより簡潔かつ使いやすい印象がありました。Exploratory を利用したアナリティクスギャラリーも用意されており、ケーススタディの教材としても良いでしょう。さらに、毎週 Exploratory 社が主催のオンラインセミナーも開催されており、サポートが非常に手厚いですね。
Hightouch「The leading Reverse ETL platform」
次は、Reversed ETL プラットフォームの Hightouch を試しました。データソースからデータウェアハウスへデータを移行させる通常の ETL(フォーワード ETL)と異なり、リバース ETL はデータウェアハウスのデータに対して必要な処理を行ってサードパーティーのサービスにロードするブリッジになります。
Hightouch を使ってみてまず UI は非常にシンプルだという印象を持ちました。
データパイプラインを作成する順番としては、
1.Sources
: データソースの連携に関する設定します。
2.Model
: クエリでデータを集計した結果を使ったりテーブルそのままソースとして使ったり dbt や Looker と連携したりしてデータモデリングします。
3.Sync
: 通知内容や通知先(Destination)を設定します。
サポートされている Destination はかなり豊富で、数えてみたところで対応 Destination 数は 100 件を超えていました。
今回は試しに Slack を Desitination にして、エイプリルフールイベントと連動させてみました(イベント Wrap-up 記事はこちらをご覧ください)。一日限定で Beatrust ページに出没する Belle ちゃんのプロフィールページにアクセスしたりタグへ +1 などのアクションをすると、Belle ちゃんがお肉もらえます。今回は、今どれくらいのお肉もらえているかを Scheduler Sync を使って Slack のチャンネルに通知が届くように設定しました。
上記のような感じで集計結果を定期的にどこかに送ることが簡単にできますし、テーブルレコードの Update や Delete、Insert なども監視できます。Beatrust が蓄積したユーザー行動データに基づいて、ユーザー行動をモニタリングしプロダクトグロースにつなげたりも簡単にできそうだと感じました。
Hightouch は 1 つの Destination だけであれば無料で使えるので(Pricing)、社内で価値検証するのが非常にやりやすいですね。
Holistics「Modern Self-Service BI Platform」
最後に、BI Platform の Holistics を調べてみました。ネットで Holistics を調べても、紹介記事がまだ少ない状況です。 現在の最新Versionは 3.0 系なのですが、現状Beta版であるVersion 4 ではデータモデリングのコード管理やそれの Git でのバージョン管理・レビューやクエリの再利用ができるようになります。v3のトライアル中にサポートの方へ問い合わせたところ、試用を快諾いただきました。具体的な Feature 比較はこちらをご参照ください。
Holistics 4.0はコードベースでデータソースに対するモデリングやトランスフォーメーションを行えます。プラットフォームで作成したリポジトリを用いて各モジュールを紹介します。
下記のように derived model
ディレクトリにクエリモジュールを追加し、datasets
ディレクトリにクエリモジュールのテーブルモジュールを追加すれば、ダッシュボード側でそれを再利用することもできます。
クエリモジュールは View に近いイメージですが、設定によってテーブル永続化もでき、クエリパフォーマンスが向上します。
自動ドキュメンテーションでデータトランスフォーメーションの依存関係図も可視化できるのも非常に素晴らしいですね。(ただ、テーブル名が長い時に表示し切れない問題が あったので、改善要望を出しておきました)
データ可視化のツールとして、可視化の種類もかなり豊富で一般的なレポーティングは困らないでしょう。
色々なデータ可視化のウィジェットを作成した後に、完成したダッシュボードを社内外に共有することも当然できますし、さらに Embedded Analytics 機能もサポートされており、スクラッチの開発なしでアプリ側にダッシュボードをそのまま埋め込んでクライアントに提供することができます(大雑把には埋め込み数に応じた課金はされますが)。ただ、ダッシュボードの Versioning はできていないので本番で利用するのはまだハードルが高いかもしれません。
同じくエイプリルフールのイベント用にDashboard を作成してみました。集計結果のテーブルウィジェットなどがサクサクと作れるのでとても使いやすいです。
Holistics はデータトランスフォーメーション・データ可視化において非常に優れたツールで、Redash や Google Data Studio の上位交換とも言えるでしょう。今回のトライアル中もなにかあるとサポートの方から状況確認していただいたり、質問にも迅速に回答してくれたりして、アカウントサポートは非常に素晴らしかったです。Holistics 4.0 の正式版リリースを楽しみにしています!
まとめ
今回はいくつかの Modern Date Stack を使ってみてそれらのコンセプトと使い方に関するノウハウを貯めて評価と検証を行いました。他の気になるツールもありましたが、プライシングと機能のトレードオフはかなり悩みました。試算してみたところ、HolisticsでEmbeded Analyticsを含めて使ったとしてもLookerやModeは年間で数倍の費用がかかりそうだったため、現段階のBeatrustはまだ気軽に契約の意思決定ができないですね。Holisticsを中心に最初に定義した課題を振り返ってみると、
Embedded analytics/dashboard でアプリ側でダッシュボードの提供
ベーシックプランとは別の料金がかかりますが、他のクラウドサービスと比べると安いほうではないかと思います。行レベルでのセキュリティポリシー
行レベルパーミッションが提供されているので、ダッシュボードを共有する際に安心しますね。閲覧者(顧客など)に応じたフィルタリング条件でダッシュボード管理
ダッシュボードを共有する際に画面からフィルタリングすることができますが、このあたりもCode-basedで管理したいのでまだ検討する必要がありそうです。クエリやサブクエリを再利用するための Code-based 管理
今回トライアルしたHolistics 4.0 Beta版はGitを使ってブランチを切ったり作業履歴をみたりするのはできますが、GitHubインテーグレーションやバージョン管理などはできないので、Beta版を導入するのが難しいと感じました。
選定基準や本番導入はまだ社内で議論する必要があって、Holistics V4.0が正式にリリースされたらポジティブに検討していきたいと考えています。Beatrust では今後とも定期的に新しい Data Stack をキャッチアップしていきます!
もし本記事や Beatrust 自体に興味を持っていただけたら、下記からお声がけください!