RedashのQuery一覧を保存する方法

仕事でRedashの情報を保存したいという要望があった。

AMIをとるのは大げさだよなぁと思ったのでqueryの一覧を取得する方法について調べてみた。


とりあえず世の中に同じようなことを考えている人がいないかを調べてみた。

redashmanを使ってRedashのクエリをお手軽にバックアップするという記事があった。ariarijp/redashmanというgolang自作ツールを介してRedashAPIを叩いているようだ。

Redash APIのドキュメントはこれだ。Integrations and API

queryのCRUDとdashboardのCRUDが用意されている。api tokenを発行してそれを使えば楽に操作ができるようだ。

ariarijp/redashmanはすごく良さそうなのだが、自分が欲しいのはqueryの一覧であって豪華なAPI Clientではない。

Golangを入れることすら面倒くさいのだ。

今回の用途では雑にcurlで取得できればよかったので以下のように投げた。 あとは必要なフォーマットに合わせてよしなにjqを使えば良い。

$ curl "https://<redash url>/api/queries" \
    -H "Accept: application/json" \
    -H "Authorization: Key <auth key>" \
    | jq ".results" | jq "map({ id, name, query })"

responseはこんな感じ。きれいに出せた。

[
    {
        "id": 13,
        "name": "ユーザ一覧",
        "query": "select * from users;"
    },
    {
        "id": 12,
        "name": "ユーザ詳細",
        "query": "select * from users where id = 1;"
    }
]