這是堅持技術寫做計劃(含翻譯)的第31篇,定個小目標999,每週最少2篇。php
本文是數據可視化系列第二篇,本系列會講解 PowerBI/Excel,Metabase,Redash,Superset,CBoardhtml
人類都是視覺動物,講究一圖勝千言。若是沒了可視化,那麼你在跟領導彙報工做時,很大程度會雞同鴨講。
其實excel2016+已是一個不錯的數據分析及可視化工具了(支持幾十種數據源),可是,不方便權限控制,集中,及報警。前端
我通常將redash做爲可視化工具、數據庫查詢編輯器(相似navicat-premium)、數據挖掘探索工具來用。
截止目前,自建redash支持43種數據源
python
## 安裝必要工具
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
複製代碼
建立數據源
git
注意: 爲作演示,clickhouse已導入官網提供的2018年航天數據,詳見 clickhouse.yandex/docs/zh/get…程序員
建立查詢 查詢2007年各航空公司延誤超過10分鐘以上的百分比
github
SELECT Carrier, avg(DepDelay > 10) * 100 AS c3 FROM ontime WHERE Year = 2018 GROUP BY Carrier ORDER BY Carrier
redis
發佈
sql
建立儀表盤(Dashboard)
能夠嵌入到已有系統裏。
山東濟南的小夥伴歡迎投簡歷啊 加入咱們 , 一塊兒搞事情。長期招聘,Java程序員,大數據工程師,運維工程師,前端工程師。