[BIG DATA] Redash 9.0 on macOS 安装部署


Redash简介

现在市面上有三大开源数据可视化工具,分别是 MetabaseSupersetRedash。Redash 相对于前两种虽然功能性和可视化图表相对少了一些,但是也因为操作简单,用户体验更好,而且代码的可读性更强,更易于二次开发,功能定制。

源码地址:https://github.com/getredash/redash.git

Redash 架构图:


安装部署(macOS)

Docker 一键安装

下载源码后,切换到项目路径,分别执行一下命令:

# 拉取所有依赖镜像并初始化数据库
docker-compose run –rm server create_db
# 创建容器并运行, -d为后台执行
docker-compose up -d

然后访问 http://127.0.0.1:5000 即可进入 Redash

如果出现界面样式失效,可能是因为 node 容器没有创建导致前端资源没有编译,可以在执行以下命令手动编译:

# 下载所有依赖
npm install
# 编译运行
npm run build

如果需要自定义配置,可以修改 docker-compose.yml 中的制定配置项。

其他命令

# 停止容器
docker-compose stop
# 停止并删除相关容器
docker-compose down

自助安装

安装以下主要组件依赖,macOS 下可用 homebrew 一键安装

postgresql 的初始化的主要命令:

# 初始化
initdb /usr/local/var/postgres
# 根据当前用户创建一个db
created
# 进入postgres cli
psql
# 创建一个用户
CREATE USER postgres WITH PASSWORD '123456';
# 删除自动生成'postgres'db
DROP DATABASE postgres;
# 创建一个属于新创建用户的db
CREATE DATABASE postgres OWNER postgres;
# 赋予权限
GRANT ALL PRIVILEGES ON DATABASE postgres to postgres;
# 角色
ALTER ROLE postgres CREATEDB;

修改配置

所有配置项基本就在此文件下: redash/settings/__init__.py

如修改数据库配置 REDASH_DATABASE_URL 改为如下内容:

SQLALCHEMY_DATABASE_URI = os.environ.get(
    "REDASH_DATABASE_URL", os.environ.get("DATABASE_URL", "postgresql://postgres:123456@127.0.0.1:5432/postgres")
)

python 相关

推荐使用 python 环境运行,主要命令:

# 进入到项目目录下
# 下载虚拟环境模块
pip3 install virtualenv
# 创建虚拟环境
virtualenv -p python3 venv
# 运行虚拟环境
source venv/bin/activate

所有 python 依赖包拉取:

# 安装所有基础依赖和数据库连接依赖
pip install -r requirements.txt -r requirements_all_ds.txt

可能出现的问题: 安装 psycopg2 可能会出现: Error: pg_config executable not found.

解决:把 postgresql 的 bin 目录加入环境变量,或者不安装 psycopg2 直接安装 psycopy2-binary (requirements.txt 文件中注释掉该行)

安装 mysqlclient 可能会出现: Error: mysql_config not found.

解决:安装 mysql-connector-c 并加入环境变量,如果已安装过 mysql 相关模块仍报此问题,可能就是环境变量问题。

安装完成后执行:

python manage.py check_settings

如果没问题的话就会打印出当前所有设置项内容。

前端编译

(注意 nodejs 版本不能太低)

npm install
npm run build

初始化元数据库

python manage.py database create_tables

运行

需要运行三个模块: Web ServerRQ worker & scheduler

所以可以开三个终端窗口分别运行:

pyhton manage.py runserver –debugger –reload -h 0.0.0.0 -p 5000
python manage.py rq worker
python manage.py rq scheduler  ##(此调度程序非必须运行)

Done

访问 http://127.0.0.1:5000 注册一个账户开启 Redash 吧。