production.log

株式会社リブセンスでエンジニアをやっている星直史のブログです。

Redashのバージョンアップで消えたデータソースを復活させる方法

Redashのバージョン2系から3系にupgradeした際、DataSourceのプルダウンから色々なものが消えてしまいました(!)

  • BigQuery
  • Athena
  • Google Analytics
  • Google Spreadsheet

業務でも使っているデータソースだったので、これが使えなくなるとなかなか厳しいです。
今回は、Redashのバージョンアップで消えてしまったこれらのデータソースを復活させる方法を書きます。

Redashのバージョン

この記事を書いている時点のバージョンは3.0.0+b3134です。 2.0.1からアップグレードした際に、今回の問題が発生しています。

原因

How to Upgrade Redash · Redash Help Center

バージョンアップ時のトラブルシューティングヘルプページに書いてありました。
どうやら、Redashのバージョンアッププロセスの中で、必要となるPythonバージョンも同時にアップグレードされるも、データソースに対するPythonの各パッケージのバージョンは置き去りになるようです。
そのため、古いバージョンのままだったりすると、データソースのロードを妨げてしまい画面のプルダウンから消えたように見えてしまうようです。*1

対応

  • BigQuery
  • Athena
  • Google Analytics
  • Google Spreadsheet

それぞれ、対応方法(使うパッケージ)が異なるようです。 一つずつやっていきましょう。

消えたBigQueryを表示させる方法

BigQueryを表示させるには、これらのパッケージを使用しなければなりません。

  • google-api-python-client==1.5.1
  • oauth2client==3.0.0

単純にupgradeするだけですね。こちらのコマンドを実行しましょう。

sudo pip install -U google-api-python-client==1.5.1 oauth2client==3.0.0

消えたAthenaを表示させる方法

AWS Athenaを表示させるには、PyAthenaというモジュールを新たにインストールする必要があります。

sudo pip install PyAthena>=1.0.0

消えたGoogle Analytics / Google Spreadsheetを表示させる方法

Google AnalyticsとGoogle Spreadsheetを表示させるには、PyOpenSSLというモジュールをupgradeする必要があります。

sudo pip install pyOpenSSL --upgrade

その他install or upgradeする必要があるモジュール

今回はBigQuery, AWS Athena, Google Analytics, Google Spreadsheetを復活させる最低限のモジュールだけをinstall / upgradeしましたが、これ以外にも必要とされるモジュールがあります。

下記のファイルを見ると必要なものがまとまっています。
/opt/redash/current/requirements_all_ds.txt

ubuntu@redash:~$ cat /opt/redash/current/requirements_all_ds.txt
google-api-python-client==1.5.1
gspread==0.6.2
impyla==0.10.0
influxdb==2.7.1
MySQL-python==1.2.5
oauth2client==3.0.0
pyhive==0.3.0
pymongo==3.2.1
pyOpenSSL==16.2.0
vertica-python==0.5.1
td-client==0.8.0
pymssql==2.1.3
dql==0.5.24
dynamo3==0.4.7
botocore==1.5.72
sasl>=0.1.3
thrift>=0.8.0
thrift_sasl>=0.1.0
cassandra-driver==3.11.0
memsql==2.16.0
atsd_client==2.0.12
simple_salesforce==0.72.2
PyAthena>=1.0.0
# certifi is needed to support MongoDB and SSL:
certifi
# We don't install snowflake connector by default, as it's causing conflicts with
# other packages. To properly support it we probably need to switch from pyOpenSSL
# to the other package snowflake is using (that's compatible with it).
# snowflake_connector_python==1.3.16

まとめ

Redashをバージョンアップさせることで、Python自体のupgradeはされますが、必要とされるパッケージのインストールとアップグレードまではされないようです。
そのため、データソースが表示されなくなってしまうようですが、パッケージを一つずつアップグレードしていけば問題なく表示されます。 バージョンアップする際はヘルプをみておきたいですね・・・!

*1:マジ焦った