職場でも既存の画面を置き換えたりして徐々に布教できてきたRe:dash。
クエリを記述するだけなのでスタッフの要望に素早く対応できるし、数値に疑問があった時にもチェックしやすい。
それに、ダッシュボードという形でまとめられることにより、指標間の関係性にも気を向けることができる。
意識高いことを切々と語るよりも実際的なメリットを提示するのが、新しいことをはじめるときには有効ですな。
そんなわけで実際的に使っていく上で必要で色々調べたことをメモってみた。
CLIでユーザアカウントを追加する
WebUI上でユーザアカウントを作成するならばメール送信の設定を行う必要があるが、 僕がやってたようなDockerでの起動の場合、メール送信の環境を整えるのはちょっと面倒だったりする。
ユーザアカウントの作成のみならば、ひとまずCLI上の操作で行うことができる。
仮にredashのコンテナ名がredash_redash_1
であったとして、manage.py
を叩くことでユーザアカウントの追加ができる。
$ docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES c54fafa81951 redash/nginx:latest "nginx -g 'daemon off" 16 seconds ago Up 15 seconds 443/tcp, 0.0.0.0:8086->80/tcp redash_redash-nginx_1 d4d80fc70743 redash/redash:latest "supervisord -c /opt/" 17 seconds ago Up 16 seconds 0.0.0.0:5000->5000/tcp, 9001/tcp redash_redash_1 cd9cc7e05f6f postgres:9.3 "/docker-entrypoint.s" 19 seconds ago Up 17 seconds 5432/tcp redash_postgres_1 201acbf73459 redis:2.8 "docker-entrypoint.sh" 19 seconds ago Up 17 seconds 6379/tcp redash_redis_1 $ docker exec -it redash_redash_1 ./manage.py users create [NAME] [MAIL]
引数としてユーザ名とメールアドレスを渡すとパスワードを求められるので、入力するとアカウントが作成される。
クエリのパラメータを指定する
クエリとして{{PARAM}}
として記述することにより、URLにパラメータp_PARAM
として指定した値を用いて実行することができる。
例えば下記のように記述すると・・・
パラメータの入力フォームが表示され、その入力値を用いた結果が表示される。
(フォームに値を入れたうえでリロードボタンを押してSQLを再実行する感じ。これなら入力欄だけでなくボタンも欲しいところだが・・・)
Text・Number・Date・Date and Timeの4つの属性を選択できる。
ちなみにこのときの入力して保存した値がパラメータ未指定の場合がデフォルト値になるようだ。
先に述べたように、このパラメータはURLとして記述できる。
したがって、例えば関連するデータ表示においてCONCATなんかを使ってリンク記述したり、 後述するようなフォームを作ったりして活用することができる。
Textboxでフォームを記述する
ダッシュボードのTextBoxにはHTMLを記述できるが、デフォルトではFormタグは無効化されている。
docker-compose.ymlのenvironment項にREDASH_ALLOW_SCRIPTS_IN_USER_INPUT
を記述することで、
フォームを用いることができるようになる。
environment: REDASH_STATIC_ASSETS_PATH: "../rd_ui/dist/" REDASH_LOG_LEVEL: "INFO" REDASH_REDIS_URL: "redis://redis:6379/0" REDASH_DATABASE_URL: "postgresql://postgres@postgres/postgres" REDASH_COOKIE_SECRET: veryverysecret REDASH_ALLOW_SCRIPTS_IN_USER_INPUT: "true" REDASH_DATE_FORMAT: "YYYY/MM/DD" external_links: - sample_mysql
ちなみにベースとなるURIは#
とか./
みたいなのじゃダメで、
横着せずに/dashboard/[ダッシュボード名]
みたいな感じに絶対パスじゃないと上手く動かなそうだ。
表に絞込用のフィルタをつける
カラム名として::filter
や::multi-filter
を付加することで、
表示項目を絞り込むフィルタをつけることができる。
日付をYYYY/MM/DDフォーマットに変える
date型カラムはデフォルトだとDD/MM/YYフォーマットで表示されてしまって日本人には読み取りづらい。
そんなわけでconcatで文字列化したりとか色々やってたんだけど、どうやら環境変数で変更できたようだ。
docker-compose.ymlのenvironment項にREDASH_DATE_FORMAT
の記述を追加することで好みのフォーマットに変更できる。
environment: REDASH_STATIC_ASSETS_PATH: "../rd_ui/dist/" REDASH_LOG_LEVEL: "INFO" REDASH_REDIS_URL: "redis://redis:6379/0" REDASH_DATABASE_URL: "postgresql://postgres@postgres/postgres" REDASH_COOKIE_SECRET: veryverysecret REDASH_ALLOW_SCRIPTS_IN_USER_INPUT: "true" REDASH_DATE_FORMAT: "YYYY/MM/DD" external_links: - sample_mysql
ただこれ、どうもピボットテーブルの方までは効いてくれなそうなのが残念。
全く横道な話になるけど、Windows10にはSnipping Toolなる範囲指定画面キャプチャ+注訳編集できるものが標準で入ってたのね。
前回の記事とかキャプチャ画像編集が地味に面倒臭くて萎えたんだけど、こんな楽な手段があったとは。