最近、本業の方ではBigQuery + RedashによるBI環境構築をやっていたりします。
Redash*1はなかなかよくできたツールですが、 それなりに触ってみるとイケてないところに気が付くこともあります。 Redash以外に使えそうなBIツールがないか探したところ、Metabase*2やSuperset*3が見つかりました。
現時点(2020-03-29)でのGithubリポジトリのスター数は
- Superset: 28.2k
- Metabase: 19.9k
- Redash: 15.7k
となっています。
早速インストールして使い勝手を比較...の前に、先ずはそれぞれが対応しているデータソースの比較をしてみようと思います。
対応データソース比較表
- 〇 -> 公式に対応
- △ -> (Metabaseのみ)コミュニティDriverによる対応
| データソース | Metabase | Redash | Superset |
|---|---|---|---|
| Amazon Redshift | 〇 | 〇 | 〇 |
| Apache Druid | 〇 | 〇 | 〇 |
| Google BigQuery | 〇 | 〇 | 〇 |
| MySQL | 〇 | 〇 | 〇 |
| Oracle | 〇 | 〇 | 〇 |
| PostgreSQL | 〇 | 〇 | 〇 |
| Presto | 〇 | 〇 | 〇 |
| Snowflake | 〇 | 〇 | 〇 |
| SQL Server | 〇 | 〇 | 〇 |
| SQLite | 〇 | 〇 | 〇 |
| Vertica | 〇 | 〇 | 〇 |
| Amazon Athena | △ | 〇 | 〇 |
| ClickHouse | △ | 〇 | 〇 |
| IBM Db2 | △ | 〇 | 〇 |
| Apache Hive | 〇 | 〇 | |
| Apache Impala | 〇 | 〇 | |
| Apache Kylin | 〇 | 〇 | |
| Elasticsearch | 〇 | 〇 | |
| Google Spreadsheets | 〇 | 〇 | |
| Greenplum | 〇 | 〇 | |
| Apache Spark SQL | 〇 | 〇 | |
| Teradata | △ | 〇 | |
| Apache Drill | 〇 | 〇 | |
| Apache Pinot | 〇 | ||
| Exasol | 〇 | ||
| Hana | 〇 | ||
| Google Analytics | 〇 | 〇 | |
| MongoDB | 〇 | 〇 | |
| Databricks | △ | 〇 | |
| Amazon Aurora | 〇 | ||
| Amazon DynamoDB | 〇 | ||
| Axibase TSDB | 〇 | ||
| Azure Data Explorer (Kusto) | 〇 | ||
| Cassandra | 〇 | ||
| CockroachDB | 〇 | ||
| Graphite | 〇 | ||
| InfluxDB | 〇 | ||
| JIRA | 〇 | ||
| JSON | 〇 | ||
| MemSQL | 〇 | ||
| OmniSciDB | 〇 | ||
| Prometheus | 〇 | ||
| Python | 〇 | ||
| Qubole | 〇 | ||
| Rockset | 〇 | ||
| Salesforce | 〇 | ||
| ScyllaDB | 〇 | ||
| Shell Scripts | 〇 | ||
| TreasureData | 〇 | ||
| Yandex AppMetrica | 〇 | ||
| Yandex Metrica | 〇 | ||
| CSV | △ | ||
| H2 | 〇 | ||
| Cube.js | △ | ||
| Datomic | △ | ||
| Firebird | △ | ||
| Materialize | △ |
情報源
考察
- 対応してるデータソースの数的にはRedashが一番多い
- Graphite、InfluxDB、Prometheusなんかも使えるので、監視システムとしても使えそう
- PythonやShellも対応してるので、やろうと思えばなんでもできる
- 職場ではHiveやImpalaなんかも使ってるので、Metabaseだと今後データソースを追加したくなったときに辛いかも
- impalaに関してはissueとしては上がってる: https://github.com/metabase/metabase/issues/3002
- Hiveに関しては、Hive on Sparkは対応済みらしい(使いたいのはHive on MapReduce)
- ドキュメントに載ってないデータソースも実装されていたりする
- 例えばRedashのDrill: https://github.com/getredash/redash/pull/3188
- ちゃんと調べたら他にもあるかも
- どれもまだまだ発展途上なので、データソースの対応状況などは今後大きく変わるかも
とりあえず次はSupersetを試してみようかなぁ。