人类都是视觉动物,讲究一图胜千言。如果没了可视化,那么你在跟领导汇报工作时,很大程度会鸡同鸭讲。
其实 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 程序员,大数据工程师,运维工程师,前端工程师。