前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Redash - 强大的开源数据可视化平台

Redash - 强大的开源数据可视化平台

作者头像
喵了个咪233
发布2021-12-28 13:50:56
4.1K0
发布2021-12-28 13:50:56
举报

我们会经常提到BI系统(Business Intelligence),它是一个重要的数据出入口,帮助数据,帮助企业获取数据表报制定战略决策。大家熟知的有FineBI和Microsoft的powerBI,但是使用成本都不低需要授权需要客户端,使用配置也相当繁琐。笔者今天给大家带来的是一款开源纯Web网页的数据工具。

附上:

喵了个咪的博客:w-blog.cn

Redash官方Git地址:https://github.com/getredash/redash

Redash官方文档:https://redash.io/help/

PS:当前最新版本为V8版本,低版本向高版本升级会存在一些奇怪问题请做好备份在进行升级

一、redash介绍

作为一名软件工程师最头大的就是,产品不停的要求拉这种数据哪种数据,或者是提了一堆数据报表的需求一直写CURD没有技术含量,重复的事情就应该用工具来解决,甚至于让产品去自助解决。笔者也一直在找工具,来解决整个公司研发在数据输出问题,一个不经意的机会发现Redash这个开源组件。当然选择Redash也有它自身的优势。

对于一个BI来说最重要的是支持的数据源的种类,Redash支持超过35个数据源,几乎可以满足所有的场景:

  • 主流的MySQL、PostgreSQL、MongoDB、SQL Server等
  • 大数据数据库Hive、Impala、Presto等
  • 新型数据库ClickHouse、CockroachDB、InfluxDB等
  • 自定义Python脚本、URL请求等

Redash包含两个部分:

查询编辑器:考虑使用JS Fiddle进行SQL查询。通过共享数据集和生成数据的查询,您可以以开放的方式共享组织中的数据。这样,每个人都可以不仅查看结果数据集,而且可以查看生成它的过程。也可以将其分叉并生成新的数据集并获得新的见解。

可视化和仪表板:一旦有了数据集,就可以从中创建不同的可视化文件,然后将多个可视化文件组合到一个仪表板中。目前Redash支持图表,数据透视表,队列和更多。

二、redash安装

Ubuntu 完整安装方式如果是ubuntu直接跑官方的命令:

代码语言:javascript
复制
git clone https://github.com/getredash/setup.git
cd setup
// 步骤一 安装docker
// 步骤二 创建数据库映射目录
// 步骤三 创建基础配置文件
// 步骤四 安装docker-composer初始化数据库,运行Redash
./setup.sh

笔者平时使用ubuntu比较少,centos是平时主要用的系统,笔者根据官方的安装方式整理了一套基本有docker就可以安装的教程,前提准备好 docker 和 docker-composer,可以参考笔者之前的文章:

代码语言:javascript
复制
mkdir redashsetup
cd redashsetup/
// 创建数据库映射目录和基础配置文件
vim redashenv.sh

#!/usr/bin/env bash
# This script setups dockerized Redash on Ubuntu 18.04.
set -eu

mkdir /opt/redash
mkdir /opt/redash/postgres-data

REDASH_BASE_PATH=/opt/redash
    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

chmod -R 777 redashenv.sh 
./redashenv.sh
代码语言:javascript
复制
cat /opt/redash/env

PYTHONUNBUFFERED=0
REDASH_LOG_LEVEL=INFO
REDASH_REDIS_URL=redis://redis:6379/0
POSTGRES_PASSWORD=XjGVGggWXHIRyOP5bOaVsPQ8AKunVsuX
REDASH_COOKIE_SECRET=9hihbX7BTziWKO7kolldC486QFoo5aU2
REDASH_SECRET_KEY=tyS5wWdp8l4gq2YPw9sbrnJwaKbVdeEp
REDASH_DATABASE_URL=postgresql://postgres:XjGVGggWXHIRyOP5bOaVsPQ8AKunVsuX@postgres/postgres

如果需要使用邮件相关功能,如用户邀请,密码重置,警报触发时等等功能需要增加如下配置:

代码语言:javascript
复制
vim /opt/redash/env

REDASH_MAIL_SERVER (default: localhost)
REDASH_MAIL_PORT (default: 25)
REDASH_MAIL_USE_TLS (default: false)
REDASH_MAIL_USE_SSL (default: false)
REDASH_MAIL_USERNAME (default: None)
REDASH_MAIL_PASSWORD (default: None)
REDASH_MAIL_DEFAULT_SENDER (Email address to send from)
代码语言:javascript
复制
version: "2"
services:
  server:
    image: redash/redash:8.0.0.b32245
    depends_on:
      - postgres
      - redis
    environment:
      PYTHONUNBUFFERED: 0
      REDASH_LOG_LEVEL: "INFO"
      REDASH_REDIS_URL: "redis://redis:6379/0"
      REDASH_DATABASE_URL: "postgresql://postgres@postgres/postgres"
      REDASH_RATELIMIT_ENABLED: "false"
      REDASH_WEB_WORKERS: 4
    restart: always
    command: server
    ports:
      - "5000:5000"
  scheduler:
    image: redash/redash:8.0.0.b32245
    depends_on:
      - postgres
      - redis
    environment:
      PYTHONUNBUFFERED: 0
      REDASH_LOG_LEVEL: "INFO"
      REDASH_REDIS_URL: "redis://redis:6379/0"
      REDASH_DATABASE_URL: "postgresql://postgres@postgres/postgres"
      REDASH_RATELIMIT_ENABLED: "false"
      QUEUES: "celery"
      WORKERS_COUNT: 1
    restart: always
    command: scheduler
  scheduled_worker:
    image: redash/redash:8.0.0.b32245
    depends_on:
      - postgres
      - redis
    environment:
      PYTHONUNBUFFERED: 0
      REDASH_LOG_LEVEL: "INFO"
      REDASH_REDIS_URL: "redis://redis:6379/0"
      REDASH_DATABASE_URL: "postgresql://postgres@postgres/postgres"
      REDASH_RATELIMIT_ENABLED: "false"
      QUEUES: "scheduled_queries,schemas"
      WORKERS_COUNT: 1
    restart: always
    command: worker
  adhoc_worker:
    image: redash/redash:8.0.0.b32245
    depends_on:
      - postgres
      - redis
    environment:
      PYTHONUNBUFFERED: 0
      REDASH_LOG_LEVEL: "INFO"
      REDASH_REDIS_URL: "redis://redis:6379/0"
      REDASH_DATABASE_URL: "postgresql://postgres@postgres/postgres"
      REDASH_RATELIMIT_ENABLED: "false"
      QUEUES: "queries"
      WORKERS_COUNT: 2
    restart: always
    command: worker
  redis:
    image: redis:5.0-alpine
    restart: always
  postgres:
    image: postgres:9.6-alpine
    env_file: /opt/redash/env
    volumes:
      - /opt/redash/postgres-data:/var/lib/postgresql/data
    restart: always
  nginx:
    image: redash/nginx:latest
    ports:
      - "8880:80"
    depends_on:
      - server
    links:
      - server:redash
    restart: always

初始化数据库依赖:

代码语言:javascript
复制
docker-compose run --rm server create_db
Creating network "data_default" with the default driver
Creating data_redis_1    ... done
Creating data_postgres_1 ... done
[2019-10-31 04:43:15,422][PID:1][INFO][alembic.runtime.migration] Context impl PostgresqlImpl.
[2019-10-31 04:43:15,422][PID:1][INFO][alembic.runtime.migration] Will assume transactional DDL.
[2019-10-31 04:43:15,437][PID:1][INFO][alembic.runtime.migration] Running stamp_revision  -> e5c7a4e2df4d

启动redash:

代码语言:javascript
复制
docker-compose up -d

通过nginx的8880端口即可访问,接下来就可以配置管理员账号的用户名和密码开始使用了:

在使用上的一些建议

  • 一个用户一个账号,不混用账号
  • 使用分组功能赋予对应权限,按照业务区分权限
  • 数据库的配置使用只读账号配置,避免从BI系统获得数据库高权限
  • 数据库的账号只给单库权限,甚至于给到单表权限控制数据,尽可能控制数据的颗粒度
  • 配置好邮件可以使用邮件报警,对于不正常的数据进行检测报警

本文由博客一文多发平台 OpenWrite 发布!

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 一、redash介绍
  • 二、redash安装
相关产品与服务
访问管理
访问管理(Cloud Access Management,CAM)可以帮助您安全、便捷地管理对腾讯云服务和资源的访问。您可以使用CAM创建子用户、用户组和角色,并通过策略控制其访问范围。CAM支持用户和角色SSO能力,您可以根据具体管理场景针对性设置企业内用户和腾讯云的互通能力。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档