阅读 453

031-数据可视化之redash(支持43种数据源)

这是坚持技术写作计划(含翻译)的第31篇,定个小目标999,每周最少2篇。

本文是数据可视化系列第二篇,本系列会讲解 PowerBI/Excel,Metabase,Redash,Superset,CBoard

人类都是视觉动物,讲究一图胜千言。如果没了可视化,那么你在跟领导汇报工作时,很大程度会鸡同鸭讲。
其实excel2016+已经是一个不错的数据分析及可视化工具了(支持几十种数据源),但是,不方便权限控制,集中,及报警。

我一般将redash作为可视化工具、数据库查询编辑器(类似navicat-premium)、数据挖掘探索工具来用。
截止目前,自建redash支持43种数据源

image.png

安装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

image.png

创建数据源

image.png

image.png

注意: 为做演示,clickhouse已导入官网提供的2018年航天数据,详见 clickhouse.yandex/docs/zh/get…

演示redash

创建查询 查询2007年各航空公司延误超过10分钟以上的百分比 

image.png

SELECT Carrier, avg(DepDelay > 10) * 100 AS c3 FROM ontime WHERE Year = 2018 GROUP BY Carrier ORDER BY Carrier 

image.png

image.png

image.png

发布

image.png

创建仪表盘(Dashboard)

image.png

image.png

image.png

image.png

image.png

分享后的dashboard,在底下有个redash的logo
image.png

可以嵌入到已有系统里。

参考资料

招聘小广告

山东济南的小伙伴欢迎投简历啊 加入我们 , 一起搞事情。
长期招聘,Java程序员,大数据工程师,运维工程师,前端工程师。

关注下面的标签,发现更多相似文章
评论