データ可視化手段を比較してみる (Tableau・Sigma・Streamlit)
はじめに
この記事では、普段私が業務で利用している可視化手段のTableau、Sigma、Streamlitについてそれぞれの特徴をまとめていこうと思います。
私自身は2016年からTableauを使い始め、最近からStreamlitとSigmaを触り始めたという状況です。
比較まとめ
項目 | Tableau | Sigma | Streamlit |
---|---|---|---|
可視化手段 | ドラッグ&ドロップ | スプレッドシートライク | Python記述 |
動作環境 | デスクトップアプリ / Web | Web | ローカル環境 / Snowsight |
データ保持 | しない(ライブ接続) / 抽出でTableau側に保持 | しない(ライブ接続) | しない(ライブ接続) |
データ書込 | 不可 | ライトバック機能あり | 可能 |
Python連携 | 拡張機能を用いれば可能 / 列単位 | 可能 / データフレーム単位 | 可能 |
バージョン管理 | リビジョン管理/環境ごとにワークブック必要 | タグ管理/タグごとにデータソース変更可能・参照者変更可能 | git等で管理可能 |
可視化手段(難易度)
BIツールやPythonを一切触ったことがない人であれば、習熟難易度はSigmaが最も簡単かなと思います。(無論、日頃からPythonを使っていればStreamlit)
Tableauも初めて触った際はドラッグ&ドロップで可視化ができてすごく感動しましたが、実際に利用し始めるとLODやブレンドなどを用いなければ集計できないことも多いです。
SigmaであればExcelライクに計算フィールドを作成でき、LODを意識せずとも行レベル計算も可能です。
動作環境
TableauはデスクトップアプリとWeb編集がありますが、SigmaはWeb編集のみになっています。
個人的にはさっとデータを確認する際にExcelを使う感覚でTableauを使う場面も多かったので、ネット環境がないと利用できないのは不便かなと思ったりはします。
ちなみにローカルデータもアップロードすればSigma上で可視化は可能です。
データ保持
以前と比べDWH側の性能向上が著しく、BI側でわざわざ抽出としてデータ保持せず、クエリキャッシュ等を駆使してDWH側で処理させたほうがよいというのがSigmaの考えのようです。
またセキュリティやガバナンス面でもデータが分散するため、個人的にもできれば抽出は利用せずライブ接続で利用するほうがよいのかなと思います。
データ書込
TableauはReadOnlyですが、その他のツールはデータ更新が可能です。
実際は可視化されたデータを見て次のアクションするためにまたデータを入力して、、、といった業務も多く、そういった場合に個別に入力システムを作らず、可視化側のみで完結できるのは良いですね。
Python連携
Pythonとの連携であればStreamlitが最もよいのは当たり前ですが、SigmaについてもSnowpark等のデータフレームをデータソースとして扱えるようです。
TableauはTabPyという拡張機能を用いれば使えるようですが、自分は今まで使ったことがありません。
バージョン管理
いずれもバージョン管理できますが、Tableauの場合は開発と本番でワークブックを2つ用意しパーミッションを設定して管理するなどの手間が必要です。
Sigmaであれば1つのワークブックに対して、バージョンやタグを設定し閲覧権限を分けることができます。
またタグごとにデータソースもわけることが可能なので、このタグのバージョンは本番DB、もう一方は開発DBといった使い分けも可能なようです。
おわりに
個人的にはTableauが好きですが、改めてまとめてみるとやはり後発のSigmaが優れている点も多いなと感じました。
StreamlitについてはどちらかというとPythonですでにデータ加工や機械学習を行っているユーザーが、より早く可視化するためのツールという印象です。
可視化ツールが増えると様々なツールにダッシュボードが乱立するという問題もありますが、まずはデータ活用を広めるために複数ツールを提供して試してもらうというのも1つの手段なのかもしれません。
Discussion