zoukankan      html  css  js  c++  java
  • 数据可视化之redash(支持43种数据源) (转自https://anjia0532.github.io/2019/07/08/redash/)

    人类都是视觉动物,讲究一图胜千言。如果没了可视化,那么你在跟领导汇报工作时,很大程度会鸡同鸭讲。
    其实 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 年航天数据,详见 https://clickhouse.yandex/docs/zh/getting_started/example_datasets/ontime/

    演示 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 程序员,大数据工程师,运维工程师,前端工程师。

  • 相关阅读:
    Vuforia7+Unity2017.3.f3实践练习
    pureMVC+unity
    sql语法小结
    ScreenToViewportPoint,WorldToViewportPoint,ViewportToWorldPoint的运用,实现一个简单的对三维中物体的拖拽移动效果
    Unity游戏开发学习之路——数据持久化
    Unity游戏开发之路上的那些坑——NullReferenceException
    ffmpeg-音频视频处理
    微信开发之(五)接收语音识别结果
    微信开发之(五)获取media_id的值
    微信开发之(五)微信获取自定义菜单
  • 原文地址:https://www.cnblogs.com/a00ium/p/13177272.html
Copyright © 2011-2022 走看看