動機
Azure で動かしていた Redash を redash.io に乗せ変えることになり、クエリをエクスポートできるツールを探していた。
公式からリンクされてる上のツールを使おうとしたんだけど、自前のRedashサーバのバージョンが古かったのや自分の環境のPythonのバージョンが古かったりでうまく動かなかった。あと最終実行時間とかでフィルタリングしたかったので Ruby で似たようなツールを書いてみた。
使い方
シェルからはこんな感じで使う。
$ 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/パッチください。