人類都是視覺動物,講究一圖勝千言。如果沒了可視化,那么你在跟領導匯報工作時,很大程度會雞同鴨講。
其實 excel2016+已經是一個不錯的數據分析及可視化工具了(支持幾十種數據源),但是,不方便權限控制,集中,及報警。
我一般將 redash 作為可視化工具、數據庫查詢編輯器(類似 navicat-premium)、數據挖掘探索工具來用。
截止目前,自建 redash 支持 43 種數據源
安裝 redash
## 安裝必要工具 apt install -y pwgen python-pip pip install pip -U pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple pip install docker-compose ## 生成腳本 cat << EOF | sudo tee -a ./setup.sh #!/usr/bin/env bash # This script setups dockerized Redash on Ubuntu 18.04. set -eu REDASH_BASE_PATH=/opt/redash create_directories() { if [[ ! -e $REDASH_BASE_PATH ]]; then sudo mkdir -p $REDASH_BASE_PATH sudo chown $USER:$USER $REDASH_BASE_PATH fi if [[ ! -e $REDASH_BASE_PATH/postgres-data ]]; then mkdir $REDASH_BASE_PATH/postgres-data fi } create_config() { if [[ -e $REDASH_BASE_PATH/env ]]; then rm $REDASH_BASE_PATH/env touch $REDASH_BASE_PATH/env fi COOKIE_SECRET=$(pwgen -1s 32) SECRET_KEY=$(pwgen -1s 32) POSTGRES_PASSWORD=$(pwgen -1s 32) REDASH_DATABASE_URL="postgresql://postgres:${POSTGRES_PASSWORD}@postgres/postgres" echo "PYTHONUNBUFFERED=0" >> $REDASH_BASE_PATH/env echo "REDASH_LOG_LEVEL=INFO" >> $REDASH_BASE_PATH/env echo "REDASH_REDIS_URL=redis://redis:6379/0" >> $REDASH_BASE_PATH/env echo "POSTGRES_PASSWORD=$POSTGRES_PASSWORD" >> $REDASH_BASE_PATH/env echo "REDASH_COOKIE_SECRET=$COOKIE_SECRET" >> $REDASH_BASE_PATH/env echo "REDASH_SECRET_KEY=$SECRET_KEY" >> $REDASH_BASE_PATH/env echo "REDASH_DATABASE_URL=$REDASH_DATABASE_URL" >> $REDASH_BASE_PATH/env } create_directories create_config EOF ## 生成必要配置文件 chmod +x ./setup && ./setup
docker-compose.yml
version: "2" x-redash-service: &redash-service image: redash/redash:7.0.0.b18042 depends_on: - postgres - redis env_file: /opt/redash/env restart: always services: server: <<: *redash-service command: server ports: - "5000:5000" environment: REDASH_WEB_WORKERS: 4 scheduler: <<: *redash-service command: scheduler environment: QUEUES: "celery" WORKERS_COUNT: 1 scheduled_worker: <<: *redash-service command: worker environment: QUEUES: "scheduled_queries,schemas" WORKERS_COUNT: 1 adhoc_worker: <<: *redash-service command: worker environment: QUEUES: "queries" WORKERS_COUNT: 2 redis: image: redis:5.0-alpine restart: always postgres: image: postgres:9.5-alpine env_file: /opt/redash/env volumes: - /opt/redash/postgres-data:/var/lib/postgresql/data restart: always nginx: image: redash/nginx:latest ports: - "80:80" depends_on: - server links: - server:redash restart: always ## 配置數據庫 sudo docker-compose run --rm server create_db ## 啟動 sudo docker-compose up -d
配置 redash
創建數據源
注意:
為做演示,clickhouse 已導入官網提供的 2018 年航天數據,詳見 https://clickhouse.yandex/docs/zh/getting_started/example_datasets/ontime/
演示 redash
創建查詢 查詢 2007 年各航空公司延誤超過 10 分鍾以上的百分比
SELECT Carrier, avg(DepDelay > 10) * 100 AS c3 FROM ontime WHERE Year = 2018 GROUP BY Carrier ORDER BY Carrier
發布
創建儀表盤(Dashboard)
分享后的 dashboard,在底下有個 redash 的 logo
可以嵌入到已有系統里。
參考資料
招聘小廣告
山東濟南的小伙伴歡迎投簡歷啊 加入我們 , 一起搞事情。
長期招聘,Java 程序員,大數據工程師,運維工程師,前端工程師。