この記事はテックタッチアドベントカレンダー23日目の記事です。
分析チームでエンジニアリングマネージャーをしている takeshi です! 入社して1年が経過しました。
今回は、分析チームの日々の業務の中で活躍してくれているRedashとTableauについて、経験したことを紹介したいと思います。分析関連の業務をされている方に、少しでも参考になれば幸いです。
RedashとTableauとは
どちらも、社内のデータをビジュアル化し社内で共有するというところは同じですが、Tableauの方がよりデータを用いた意思決定を強化したり、課題を発見するといったことをメッセージとしては強く推しているような説明がされています。
Redashの場合
データソースに接続してクエリを実行し、ダッシュボードを作成してデータを視覚化し、会社内で共有します。 出典: redash.io
Tableauの場合
データドリブンな課題解決を変革し、組織のデータを最大限活用することを可能にするビジュアル分析プラットフォームです。 出典: tableau.com
RedashとTableauを比較して
では、実際に比較していきます。私自身が使ったことがある機能をベースに比較をしており、恣意的な判断軸で評価しておりますので、実際のツール導入の判断の際には公式の情報等を参考に判断いただければと思います。
シンプルな比較
パッと思いつく機能でリスト化してみると、大きな機能的な差はないかなと思います。
Redash | Tableau | |
---|---|---|
コスト | ホスティング費用のみ | ホスティング費用+アカウント費用 |
API | ◯ | ◯ |
アラート | ◯ | ◯ |
ユーザー管理 | ◯ | ◯ |
フォルダ管理 | ◯ | ◯ |
データ接続 | ◯ | ◯ |
ビジュアライズ | ◯ | ◯ |
探索的分析 | × | ◯ |
大量データの扱い | △ | ◯ |
ダウンロード | ◯ | ◯ |
実際にいくつかの機能を取り上げてRedashとTableauでどういった機能差があるのか紹介していきます。
データ接続
Redash、Tableau共に多くのデータに接続ができますが、Excelや、CSVなど、ローカルのファイルに接続できるのはTableauのみになります。
社内のデータというとデータベースで保持しているものだけではなく、売上やアンケート結果などExcelなどで管理しているものもあると思いますが、そういったデータもTableauの場合は、気軽に取り込みをして可視化ができます。
変数利用
Redashの場合
手軽に変数を作成し、簡単にクエリの中でも使うことができます。
変数作成(データの絞り込み)
変数を使用したクエリ
Tableauの場合
Tableauでもredash同様に変数を作成し、クエリで使うことができますが、クエリの時点で絞り込むよりもビジュアルの時点で絞り込むことが便利で多いため、今回はそちらを紹介します。
フィルター作成
絞り込み適用
idのような認識しづらいものではなく、名前などでの絞り込みが容易にできる点が優れています。
複数データソースを結合して扱う
Redashの場合
- Query Resultを使う方法
クエリとして保存したものを別のクエリから参照することで、結合してのクエリ実行が可能です。
- Pythonを使う方法
Python処理の中で、execute_queryなど実行し、データを集めた上で加工し出力するといった実装をすることで、結合などをすることができます。
Tableauの場合
一つのデータソースの設定の中で、複数データソースを使って結合させることが可能です。今回のサンプルでは、どちらもExcelファイルを使っていますが、Excelとデータベースなどと結合することもできます。
大量データの扱い
Redashの場合
あまり重たいクエリを書くと、処理が止まってしまい結果が返ってこないことがあります。テックタッチの環境ですと、10万件程度を超えてデータを扱おうとすると一時的にシステムがダウンするということが起きていました。
Tableauの場合
Tableauには抽出という独自にデータを高速化するための機能があります。結果が返ってくるまでに時間がかかってしまうようなクエリや、対象とするデータの量が多い場合には、抽出を実行しておくことでビジュアライズ時には快適に操作をすることができます。 注意点としましては、抽出は抽出時のクエリ実行した状態を保持しますので、データのリアルタイム性は失われますので、適切な場面での利用を考える必要があります。
実行ファイルの管理のしやすさ
Redashの場合
ArchiveやFork機能などを活用しながら改修前後を管理するといったことは容易にできます。一方で、マスタを誤って更新した場合にはいつどのような変更がされたかわからないといったことが起こってしまいます。わかるのは最終更新者が誰なのかということのみです。
Tableauの場合
- リビジョン履歴機能
リビジョン履歴機能があり、過去の編集履歴を見ることができます。実際の変更された内容や差分を簡単に見ることはできませんが、以前の状態に戻すことが可能ですので、誤って更新した場合には復旧が可能です。また、改修前後の比較を行っていくことで原因を特定することも手間はかかりますが可能です。
- 実行ファイルのダウンロード機能
実際に実装したクエリやビジュアルの設定などを含んだ実行ファイルのダウンロード機能があります。twbxというTableau独自の拡張子で実行ファイルをダウンロードできますので、それを好きな場所へ保管しておくことでバックアップをとっておくことが可能です。
また、twbxは実態はzipであり、解凍をするとtwbというファイルと取得することができます。twbはXMLで作られているため、githubなどで管理をすれば、変更の有無などを明確に管理することも可能です。
探索的分析
redashの場合
該当する機能はなく、ビジュアル化したいイメージを持った状態で作業をしていく必要があります。
Tableauの場合
ビジュアル化したいイメージが少し曖昧であっても、実際に手を動かしながら数値の集計軸を変更しながら様々な角度や、ビジュアルでデータを見ていくことができます。
地域を集計キーとして集計する
都道府県を集計キーとして集計する
年次から月次に集計キーを変更して集計する
総括
今回いくつかの機能を取り上げてRedashとTableauの機能差について私が感じていることを紹介させていただきました。
redashは無料でありながら十分な機能がありますし、クエリを書くまでの手軽さや、pythonなども手軽に実行できるという点で最初に使い始めるBIツールとして良いですし、長期的に運用する点でも使い方によっては十分に活躍してくれる優秀なツールだと思います。 テックタッチでも、試しにクエリを書いたり、簡易的なツールを実装したり、数値の確認をしたりといった場面で活躍してくれています。今後は無料でどのレベルまで使い続けられるのかわからないところはありますが、社内のデータを民主化する第一歩として非常に良いツールかと思います。
一方、Tableauは、コストは上がりますが、機能が豊富で、データ量やデータ種類が増えてきた時にも安定して運用できるツールかと思います。 豊富な機能の中でも特に私が価値を感じているのは、探索的分析のところで、これによってエンジニアはローデータだけを準備するといったことに集中し、実際の集計や分析は各チームに任せるような運用が可能になります。テックタッチ社内でもこれまで以上にチームを超えたデータの活用を推進し、データドリブンでより良い意思決定や、提案などが実現できる環境を整えていきたいと思います。