はじめに
RedashのDatasourcesにMySQLが出てこなかったので、その調査と解決策です。
TL;DR
PythonのMySQL用ライブラリ(MySQL-Python)をAPサーバにインストールする
何が起きているか
Redashでは、Datasourceごとにクライアントライブラリが存在するかをチェックし、存在しないDatasourceは新規作成時に表示されません。
Redashの環境構築を行う際、docker-compose.yml
を使用してDocker上で全て完結する場合は全てのクライアントライブラリをインストールするpipコマンドが実行されるようDockerfileに記載されています。(requirements_all_ds.txt
)
ただ、こちらの記事にある開発者向けの環境構築手順では、Datasourceをインストールする手順が省略されているため、いくつかのDatasourceは表示されません。
何もしなくてもいくつかのDatasourcesが使用できる理由
環境構築で必要なライブラリだからだと思われる。
例えば、Postgresqlはライブラリがimportできるかのチェックすら行なっていない。これはおそらくPostgresqlをRedash自身が使用するため、ライブラリは確実にインストールするためだと思われる。
他にも、MongoDBやAmazon Athenaは、Redashのユニットテストで使用しているため初期から表示されている。
MacにMySQL-Pythonをインストールする
pipでインストールするだけでは動きませんでした。
pip install MySQL-python
また、全てのDatasourceをインストールしようとしても失敗しました。
pip install -r requirements_all_ds.txt
インストール失敗時に表示されたエラーメッセージを読み、こちらの記事を参考にしました。 stackoverflow.com
まとめ
Docker Composeで構築した場合と自分で構築した場合で表示されるDatasourcesが違ったり、いくつかのDatasourcesは最初から利用できることから
最初はとても戸惑ったけど、中を読めばわかる内容だった。
ドキュメントではLinuxでの環境構築が書かれており、Macで環境構築しようとすると少し手間が必要になる。
他に同じような内容で困っている人がいればこの記事が参考になると幸いです。