031-數據可視化之redash(支持43種數據源)

這是堅持技術寫做計劃(含翻譯)的第31篇,定個小目標999,每週最少2篇。php

本文是數據可視化系列第二篇,本系列會講解 PowerBI/Excel,Metabase,Redash,Superset,CBoardhtml

人類都是視覺動物,講究一圖勝千言。若是沒了可視化,那麼你在跟領導彙報工做時,很大程度會雞同鴨講。
其實excel2016+已是一個不錯的數據分析及可視化工具了(支持幾十種數據源),可是,不方便權限控制,集中,及報警。前端

我通常將redash做爲可視化工具、數據庫查詢編輯器(相似navicat-premium)、數據挖掘探索工具來用。
截止目前,自建redash支持43種數據源
python

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.ymlnginx

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

建立數據源
git

image.png

image.png

注意: 爲作演示,clickhouse已導入官網提供的2018年航天數據,詳見 clickhouse.yandex/docs/zh/get…程序員

演示redash

建立查詢 查詢2007年各航空公司延誤超過10分鐘以上的百分比 
github

image.png

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

image.png

image.png

image.png

發佈
sql

image.png

建立儀表盤(Dashboard)

image.png

image.png

image.png

image.png

image.png

分享後的dashboard,在底下有個redash的logo
image.png

能夠嵌入到已有系統裏。

參考資料

招聘小廣告

山東濟南的小夥伴歡迎投簡歷啊 加入咱們 , 一塊兒搞事情。長期招聘,Java程序員,大數據工程師,運維工程師,前端工程師。

相關文章
相關標籤/搜索