redashを運用していく上でちょっと便利になる話


※ redashのバージョンは4.0.1です。

redashの背景を黒に設定(chrome)

  • Care your Eyesからchromeの拡張機能追加。今ではredashの長時間作業には必須になりました。

queryの管理編

  • query名の先頭に必ずデータソース名を記載
    • 登録しているデータソースが複数ある為
  • 定期実行しているqueryの管理
    • データソースにredashのDBを登録し下記のqueryを登録(postgre)
SELECT q.id as query_ID
       ,CASE
           WHEN q.schedule LIKE '%:%' THEN q.schedule
           ELSE CASE
                    WHEN trunc(to_number(q.schedule, '9999999')/60, 0) < 60 THEN trunc(to_number(q.schedule, '9999999')/60, 0) || '分'
                    ELSE CASE
                             WHEN trunc(to_number(q.schedule, '9999999')/60, 0) < 1440 THEN trunc(to_number(q.schedule, '9999999')/60/60, 0) || '時間'
                             ELSE trunc(to_number(q.schedule, '9999999')/60/60/24, 0) || '日'
                         END
                END
       END AS 実行間隔 
       ,q.name AS タイトル 
       ,ds.name AS データソース名 
       ,qr.runtime AS Runtime 
       ,qr.retrieved_at AS 最終実行日時
FROM queries q
LEFT JOIN data_sources ds ON q.data_source_id = ds.id
LEFT JOIN query_results qr ON q.query_hash = qr.query_hash
AND qr.retrieved_at =
  (SELECT max(retrieved_at)
   FROM query_results
   WHERE q.query_hash = query_results.query_hash)
WHERE schedule != ''
ORDER BY q.id ASC

  • こんな感じに一覧で見れるようにしておくとわかりやすい

ユーザー管理編

ユーザーの確認(organizationsの設定をしてる人には便利かも)

  • ユーザーの作成権限が他部署にもあってしかも削除機能自体がないので結構大変
    • 作成ルールはあるようでないに近い
  • しかもアカウント作ってもパスワード設定すらしてない人がちらほら
SELECT u.id,
       u.name,
       u.email,
      case when u.password_hash is not null then '<div class="bg-success text-center">発行済</div>' else '<div class="bg-danger text-center">未発行</div>' end as pass発行,
       u.groups,
       o.name as org_name,
       o.slug,
       u2.name as 作成者
FROM users u
LEFT JOIN organizations o ON o.id = u.org_id
LEFT JOIN events e ON e.object_id = cast(u.id as text)
AND e.action = 'create'
AND e.object_type = 'user'
LEFT JOIN users u2 ON u2.id = e.user_id
ORDER BY u.id DESC
  • ※organizationsの設定していない人はここでleftjoinしなくてもよい。
  • 上記実行で誰が誰のアカウントを作成したのかとパスワード設定したのかが把握できる。