Apache Superset - データ探索および可視化プラットフォーム
(superset.apache.org)- Apache Supersetは、データ探索と可視化を1か所で行えるオープンソース分析プラットフォームで、さまざまな習熟度のユーザーがチャートやダッシュボードでデータを扱えるようにする
- ノーコード可視化ビルダーとSQL IDEをあわせて提供し、ビジネスユーザーとSQLユーザーがそれぞれの方法でデータを探索できる
- SQLベースのデータベースと接続でき、ペタバイト規模のクラウドネイティブデータベースとエンジンも活用できる
- 既存のデータインフラ上で動作する軽量・拡張型の構造を志向し、別途収集レイヤーを必要としない
- 40種類以上の可視化、プラグインベースの拡張、キャッシュ、Jinjaテンプレート、ダッシュボードフィルター、セマンティックレイヤーにより、セルフサービス分析の流れを支援する
データ探索と可視化プラットフォーム
- Apache Superset™ はオープンソースのデータ探索および可視化プラットフォーム
- 高速で軽量かつ直感的な使いやすさを掲げ、シンプルな折れ線グラフから詳細な地理空間チャートまで多様な可視化をサポートする
- ユーザーはノーコード可視化ビルダーまたはSQL IDEを通じてデータを探索できる
- SQLベースのデータベースに接続でき、モダンなクラウドネイティブデータベースやペタバイト規模のエンジンも対象に含まれる
- 既存のデータインフラを活用する軽量・高拡張アーキテクチャを備え、追加の収集レイヤーは不要
- 40種類以上のプリインストール済み可視化タイプを提供し、プラグインアーキテクチャによりカスタム可視化も作成できる
役割別ドキュメントとコミュニティ
- User Docs: アナリストとビジネスユーザー向けのドキュメントで、データ探索、チャート作成、ダッシュボード作成、データベース接続を扱う
- Administrator Guide: Supersetの導入と運用を担うチーム向けのドキュメントで、インストール、設定、セキュリティ、データベースドライバーを扱う
- Developer Guide: Supersetに貢献したり基盤機能を開発したりするエンジニア向けのドキュメントで、REST API、拡張、コントリビューションワークフローを扱う
- Community: Slack、GitHub、メーリングリスト、今後予定されているミートアップなどのコミュニティリソースを提供する
セルフサービス分析機能
- Supersetはダッシュボード、Chart Builder、SQL Lab、Datasetsを通じて、対話型ダッシュボードでデータを探索しインサイトを見つける流れを支援する
-
可視化とダッシュボード作成
- 40種類以上のプリインストール済み可視化を提供する
- ドラッグ&ドロップとSQLクエリの両方をサポートする
- チャートとダッシュボードの読み込み時間を短縮するためのデータキャッシュを提供する
- Jinjaテンプレートとダッシュボードフィルターで対話型ダッシュボードを構成できる
- CSSテンプレートでブランドのルック&フィールに合わせてチャートとダッシュボードを整えられる
-
分析拡張機能
- SQLデータ変換のためのセマンティックレイヤーを提供する
- cross-filter、drill-to-detail、drill-byにより、より深いデータ分析を支援する
- 一時的なデータ探索にはvirtual datasetsを活用できる
- feature flagsを通じて新機能にアクセスできる
利用組織
- Supersetは、データの探索と可視化に利用している数千社があるとしている
- 利用組織の例として、Xnet Mobile、UserGuiding、Preset、PlaidCloud、VLMedia、Cirrus Assessmentへのリンクが表示されている
1件のコメント
Hacker News の意見
Superset は非常に満足して使っており、Tableau を置き換えた後は戻る気がなくなった
Superset Embedded SDK を使ってアプリに埋め込む方法を把握するには少し時間がかかった。この SDK は、アプリの認証を使って Superset のダッシュボードを自分たちのアプリに入れられるようにするもので、Superset ページを含む iframe をホストアプリに挿入する方式
https://github.com/apache/superset/tree/master/superset-embe...
Superset は品質が高く、よくメンテナンスされているチャートライブラリ ECharts ベース
https://echarts.apache.org/examples/en/#chart-type-linesG
コミュニティのロードマップも公開されている
https://github.com/apache/superset/projects?query=is%3Aopen
Preset.io とそのチームがプロジェクトに貢献し、良い状態に保っていることには大きな敬意を感じる
https://preset.io/blog/
Superset のソースコードは読みやすく理解しやすいので、チャートの負荷を下げる高度なキャッシュ手法も実装できる。完璧な BI は存在しないが、数年見てきた結果、今後も意図どおりに動作するプロジェクトだと信頼できるようになり、いつか一部のパッケージがさまざまな可視化やデータハッキングに再利用できそうにも見える
可視化はまず ECharts と簡単な React ラッパーから始め、パワーユーザー向けにサブドメインで Superset を立ち上げ、どちらがより合うかを見るというアプローチを主に使っている。同じ外観を保てばユーザー体験はかなり良い
https://evidence.dev
以前の HN 議論: https://news.ycombinator.com/item?id=35645464(コメント 97 件)
数年前に Superset を使ってみたので今は変わっているかもしれないが、直感的という言葉は最後の最後に付けたい
他の BI ツールなら数分で分かることを、Superset では文字どおり何時間も探さなければならなかった。途中で中核概念の名前を変えてしまい、オンライン文書の半分が辻褄の合わないものになったことも助けにならなかった。当時一緒に使っていた会社の同僚たちも同じように感じていた
ビジネスユーザーにも好評で自分も満足しており、内部の h2 データベースではなく Postgres バックエンドを接続して管理するのも楽だった
内蔵データウェアハウスとして DuckDB データベースを立ち上げてデータをロードでき、500 以上のコネクタにより、別途 ETL なしで Postgres、Stripe、HubSpot、Zendesk などのデータを自動で取り込める
セマンティックレイヤーでディメンション、メジャー、ジョインを一か所に定義し、対応するソースごとに事前構築済みモデルもある。たとえば Stripe モデルには MRR、チャーン率のようなメジャーがすでに入っている
シンプルな BI のやり方で必要なデータテーブルを作り、そのテーブルから可視化を作成する。質問があれば mike@definite.app まで連絡できる
ドキュメントも、良く言っても貧弱なほう
その代わり、数十個の Python ランタイムエラーと数え切れない欠陥でいっぱいだった。今は Metabase が正解に近い
Superset や Metabase のような完全な BI ツールは、想定されたユースケースでは素晴らしい
ただし主な用途が、非技術系のエンドユーザー向けに、ときどき半分インタラクティブなレポートを作ることで、標準的なグラフと表でほとんど十分な場合には過剰かもしれない。特に SQL に慣れていて元データソースにアクセスできるならなおさら
こうした場合、SQLPage と Evidence が非常に役に立った。SQL を素早く書いて、きれいでプロらしく見える Web UI に変換し、エンドユーザーに届けやすい。Evidence は静的生成サイトで、SQLPage はリアルタイムデータベースに接続する Web アプリ
SQLPage: https://sql.ophir.dev/
Evidence: https://evidence.dev
Superset が好き
2017年から2つの職場で本番環境に載せて使ってきて、今の職場は大企業
汎用のデータベースベースのダッシュボードシステムとしては最高だと思う。Tableau や Power BI にお金を払うつもりはない
Airflow も同じ
Wikipedia の Superset インスタンスを使うと、Wikipedia 内部データベースにクエリできる
https://superset.wmcloud.org
https://phabricator.wikimedia.org/T169452
以前これでカスタム統計を作った
https://github.com/altilunium/wikiidmon
関連記事。他にもあるのか気になる
Open source Business intelligence platform made with Python - https://news.ycombinator.com/item?id=29368664 - 2021年11月(コメント49件)
Apache Superset 1.1 - https://news.ycombinator.com/item?id=27439939 - 2021年6月(コメント28件)
The Apache Software Foundation Announces Apache Superset as a Top-Level Project - https://news.ycombinator.com/item?id=25905277 - 2021年1月(コメント1件)
Apache Superset is an enterprise-ready business intelligence web application - https://news.ycombinator.com/item?id=21133931 - 2019年10月(コメント7件)
Superset は強力だが、なぜ些細な不便を直さないのか気になる。例えばスピナーのピクセルがずれていたり、テーブルのセル値をコピーできなかったり、テーブルの数字に等幅フォントを使っていなかったりする点。製品内にこういう小さなイライラが何百個もある
人々が求める新機能を作るのか、次々出てくるこうした見た目の問題を直すのか、その間で常にバランスを取らなければならない
Superset と Metabase を両方使ったことがある人がいるのか気になる。いくつかのプロジェクトで Metabase を使っていて、かなり良かった。Superset はさらに強力そうにも見える
小さなデータセットの BI にも使う価値があるのか気になる
Metabase を選んだ理由はテーブル結合があったから。自分が使ったとき Superset には結合がなく、その後追加されたのかは分からない。見た目も Metabase のほうが少し洗練されて見える
それでも個人的には Superset のほうをはるかに好む。Metabase は使い物にするには多くの機能をオフにする必要があり、「the_table」を「The Table」と表示し直すところから、モデルと「質問」の間の不透明さまで、ずっと気になった。質問を変更しようとするたびに新しい質問を作ろうとするのもイライラした
特に多数の質問のデータソースを変更しようとしたとき、Metabase には新しい質問を作らずにきれいに変更する方法がなく、大きな問題だった
また Metabase は、お金を払ってセルフホストしないとシリアライズができない。セルフホストしているのに正確に何にお金を払っているのか分からず、かなり引っかかる
https://www.metabase.com/docs/latest/installation-and-operat...
それでもテーブル結合はできる。場合によっては、それだけで Metabase を受け入れる価値がある
Superset はデータ可視化だけで見れば最も良いが、既存のスタースキーマがある状態でビジネスユーザー向けのセルフサービス BI として使うには、ほとんど役に立たないと感じた。Superset で結合をどう扱うかに関するこの Issue は、stalebot が混乱を招いていることも含めて、Superset BI の難しさを一目で示している
https://github.com/apache/superset/issues/8645
Metabase はかなり優れていて、低コストの BI を素早く構築したいスタートアップには間違いなく合った選択肢。依然としてテーブル中心の見方が強いが、単なる可視化よりは BI のために作られている感じがする
Lightdash は YAML、フロントエンドで行うピボット、対称集計の欠如といった大きな欠点はあるが、Looker の影響を明らかに受けていて、ビジネスユーザーにそのまま使えるテーブルグループを提示しやすい。Google に買収される前の Looker が好きだったが、うちのビジネスユーザーはスタースキーマやスノーフレークスキーマという用語は知らなくても、そうした構造には慣れており、既存のデータウェアハウスの上に Lightdash を載せるのは容易だった
会社では Metabase をよく使っている。ただ、こうしたツールがどれも弱そうに見える点は、何百ものダッシュボードや質問を整理する方法だと思う。
組み込み Wiki のようなものがあって、探索の構造をもっと上手く作れるとよい。何か良い方法を知っているか気になる。
役に立つ方法の一つは、Metabase を自身のデータベースに接続して、クエリに対するクエリを作ること。
select *from report_cardwhere dataset_query ilike '%' || {{query}} || '%'作成者や最終実行時刻のようなメタデータも join できる。
Collection のディレクトリ構造もきれいで一貫した状態に保とうと本当に努力しているが、それでもやはり難しい。
もう一つの方法は、LLM でクエリを要約・タグ付け・グループ化して、見つけやすくすることかもしれない。
一人でデータ分析をする場合でも、Superset が良いツールなのか気になる。
たとえば sqlite データベースがいくつかあり、クエリとチャートを作りたいだけだ。Tableau、Power BI、Superset を調べてみたが、どれも単一ユーザーにはかなり重そうで、ローカル設定もそれほど簡単には見えなかった。
単一ユーザー向けに良いソフトウェアや、こうした重いツールをもっと気軽に実行する方法があれば勧めてほしい。
こうした製品は、用意されたデータセットをユーザーに見栄えよく見せるためのデータ可視化とレポーティングのツールに近いと思う。本格的な分析にはあまり向いていない。
Superset や Tableau はよく知らないが、Power BI は組織全体に導入されているので慣れている。Power BI でできる統計はかなり基礎的だ。件数、平均、最小値、最大値のような要約を超えると、それほど簡単ではない。
データ分析には SAS や R を使っている。こうしたソフトウェアでは、多変量回帰、時系列予測、主成分分析、クラスタ分析のような作業ができ、グラフ機能もある。
どちらも少し古めではある。2000年代初めから使ってきたが、最近のやり方は Python のようだ。私たちの組織の最近のデータサイエンス人材はほぼ全員 Python を使っており、特に Pandas や Seaborn(https://seaborn.pydata.org/)のようなライブラリをよく使っている。
私たちの組織の Power BI パワーユーザーは主に財務や HR の人たちで、コストの数値をドリルダウンしたり、KPI や主要指標を経営陣にインタラクティブに見せたりする用途でよく使っている。
単一ユーザーアプリケーションとして使えるし、自分がビルドしたアプリケーションの一部として組み込まない限り、その使い方で問題ない。