Ruby
redash

Redash のクエリを export するツールを書いた


動機

Azure で動かしていた Redash を redash.io に乗せ変えることになり、クエリをエクスポートできるツールを探していた。

https://gist.github.com/arikfr/598590356c4da18be976

公式からリンクされてる上のツールを使おうとしたんだけど、自前のRedashサーバのバージョンが古かったのや自分の環境のPythonのバージョンが古かったりでうまく動かなかった。あと最終実行時間とかでフィルタリングしたかったので Ruby で似たようなツールを書いてみた。

oieioi/redash_exporter


使い方

シェルからはこんな感じで使う。

$ gem install redash_exporter

# 実行ディレクトリにsqlをエクスポート
$ redash_exporter --redash-url="http://your.redash.server.example" --api-key="your API key"

# 出力先のディレクトリを指定する場合は
$ redash_exporter --redash-url="http://your.redash.server.example" --api-key="your API key" --dest=redash-sqls

Ruby でいじくる時はこんな感じ。

require 'redash_exporter'

queries = RedashExporter::Queries.new('http://your.redash.server.example', 'your API key')

# 全クエリを取得
queries.fetch

# フィルタリング
queries.reject! { |q| q[:created_at].to_time > 3.months.ago }

# SQLを出力
puts queries.first.to_s

# ファイルエクスポート
queries.first.export

# 全部エクスポート
queries.export_all

API は変更になる可能性あり。

バグとかあったらissue/パッチください。