文章524
标签277
分类67

BI工具Redash体验

最近忙着加班,忙里偷闲=体验了一下BI工具Redash;一如既往的,采用Docker配合compose一键部署体验;

源代码:


BI工具Redash体验

前言-什么是BI

BI即商业智能(Business Intelligence),它是一套完整的解决方案,用来将企业中现有的数据进行有效的整合,快速准确的提供报表并提出决策依据,帮助企业做出明智的业务经营决策;

商业智能的概念最早在1996年提出,当时将商业智能定义为一类由数据仓库(或数据集市)、查询报表、数据分析、数据挖掘、数据备份和恢复等部分组成的、以帮助企业决策为目的技术及其应用;

那么话不多说,直接进入安装步骤;


使用Docker部署Redash

首先创建docker-compose文件:

docker-compose.yml

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
version: '3.6'
services:
server:
image: redash/redash:8.0.2.b37747
command: server
depends_on:
- redash_postgres
- redash_redis
ports:
- "15000:5000"
networks:
- redash
deploy:
mode: replicated
replicas: 1
environment:
PYTHONUNBUFFERED: 0
REDASH_LOG_LEVEL: "INFO"
REDASH_REDIS_URL: "redis://redash_redis:6379/0"
REDASH_DATABASE_URL: "postgresql://postgres:123456@redash_postgres/postgres"
REDASH_COOKIE_SECRET: "123456"
REDASH_WEB_WORKERS: 4

worker:
image: redash/redash:8.0.2.b37747
command: scheduler
networks:
- redash
deploy:
mode: replicated
replicas: 1
environment:
PYTHONUNBUFFERED: 0
REDASH_LOG_LEVEL: "INFO"
REDASH_REDIS_URL: "redis://redash_redis:6379/0"
REDASH_DATABASE_URL: "postgresql://postgres:123456@redash_postgres/postgres"
QUEUES: "queries,scheduled_queries,celery"
REDASH_COOKIE_SECRET: "123456"
WORKERS_COUNT: 2

redash_redis:
image: redis:6.2.4
networks:
- redash
deploy:
mode: replicated
replicas: 1
redash_postgres:
image: postgres:13.3
networks:
- redash
environment:
POSTGRES_PASSWORD: 123456
deploy:
mode: replicated
replicas: 1

networks:
redash:
name: redash

需要注意的是:

  • Redash依赖Redis和Postgres两个数据库,因此在服务中声明了redash_redis和redash_postgres;
  • 为了防止网络冲突,将所有的服务都声明在了同一个网络redash下;
  • 对于Redash服务而言:在worker中声明了数据库的相关配置,并在server服务中启动了服务;
  • Redash服务的端口映射为15000:5000,稍后我们会通过15000端口访问它;

启动Redash服务分为两个步骤:

  • ① 创建数据库;
  • ② 启动服务;

下面一一来看;

① 创建数据库

直接使用下面的命令启动server服务,并执行create_db命令即可创建并初始化数据库:

1
docker-compose -f docker-compose.yml run --rm server create_db

② 启动服务;

使用下面的命令可以一键部署Redash:

1
docker-compose -f docker-compose.yml up -d

成功执行命令后可以看到相关服务已经启动:

1
2
3
4
5
6
7
8
9
10
[root@VM-234-202-centos ~]# docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
1ed3c3eecd3a redash/redash:8.0.2.b37747 "/app/bin/docker-ent…" 6 days ago Up 6 days 0.0.0.0:15000->5000/tcp, :::15000->5000/tcp redash_server_1
140940d1edef redash/redash:8.0.2.b37747 "/app/bin/docker-ent…" 6 days ago Up 6 days 5000/tcp redash_worker_1
00026cfcf3f5 postgres:13.3 "docker-entrypoint.s…" 6 days ago Up 6 days 5432/tcp redash_redash_postgres_1
7aff1d272160 redis:6.2.4 "docker-entrypoint.s…" 6 days ago Up 6 days 6379/tcp redash_redash_redis_1
965c7b4ac3a0 postgres:13.3 "docker-entrypoint.s…" 6 days ago Up 6 days 0.0.0.0:15432->5432/tcp, :::15432->5432/tcp mypostgres
202a5385247f redis:6.2.4 "docker-entrypoint.s…" 5 weeks ago Up 5 weeks 0.0.0.0:16379->6379/tcp, :::16379->6379/tcp redis
61feb34256e4 mysql:8.0.25 "docker-entrypoint.s…" 5 weeks ago Up 5 weeks 33060/tcp, 0.0.0.0:13306->3306/tcp, :::13306->3306/tcp mysql
e4e3e50b4da7 portainer/portainer-ce "/portainer" 5 weeks ago Up 5 weeks 8000/tcp, 0.0.0.0:19000->9000/tcp, :::19000->9000/tcp portainer

通过Portainer也可以查看:

redash_0.png

注意到,因为我们声明了Redash在独立的redash网络中,因此我们的Redash服务不会影响到我们之前的MySQL、Redis等服务!


Redash相关操作

首次启动Redash后,需要进行一些用户名、密码等基本配置;

然后就可以进入主页面了!

redash_1.png

添加数据源

点击设置,可以添加对应的数据源:

redash_2.png

上面是我添加的我在腾讯云服务器上部署的MongoDB的数据源;


增加查询

点击Queries,可以创建数据查询;

在这里,我创建了两个查询,主要是关于我博客的点赞数统计,和点赞类型统计;

关于点赞数的统计结果查询如下:

redash_3.png

执行后,可以看到下方的查询结果;


创建查询图表

随后我们还可以创建相关的面板:点击右侧的+ New Visualization,创建图表;

可以看到创建完成后的图表结果如下:

redash_4.png

可以看到,创建图表还是相当方便的!


创建表盘(Dashboard)

最后,点击Create,选择Dashboard,输入表盘名称即可创建表盘;

在表盘中点击Edit,然后点击Add Widget即可添加对应表盘;

例如:

redash_5.png

同时可以一键同步所有数据


后记

除了上面的一些基本功能和丰富的数据源等优点之外,Redash还提供了发送日报邮件等功能;

有兴趣的童鞋可以深入学习~


附录

源代码:

文章参考:



本文作者:Jasonkay
本文链接:https://jasonkayzk.github.io/cn/2021/08/15/BI%E5%B7%A5%E5%85%B7Redash%E4%BD%93%E9%AA%8C/
版权声明:本文采用 CC BY-NC-SA 3.0 CN 协议进行许可