开源版本安装教程
Redash是由flask和react构建的开源BI工具。它采用了python-rq作为MQ,而python-rq原生是不支持windows的。所以原生Redash不能直接在Windows上运行。 除Winodws外,Redash支持在其他各种类linux环境上部署。包括Ubuntu,CentOS,OpenSuse,Debian,WSL2,MacOS等。
在非开发环境,我们建议用户通过docker的方式进行部署。开发环境我们建议用户使用Ubuntu系统进行部署。下面我们会详细介绍Redash在各种环境下的部署步骤。
- Docker部署
- WSL2部署
- Ubuntu部署
- CentOS部署
安装docker环境
(注:已具备docker及docker-compose环境可以忽略这一步,如果只缺docker-compose,只执行docker-compose那一步)
- 安装docker引擎及docker-compose插件
docker的安装大家可以看docker的官方文档,里面的步骤都非常的详细,这里只演示Centos
#如果是CentOS8,先清除自带的docker命令(CentOS8自带的docker是podman,不是原生docker,非CentOS8可以不操作)
sudo yum remove docker \
docker-client \
docker-client-latest \
docker-common \
docker-latest \
docker-latest-logrotate \
docker-logrotate \
docker-engine
#添加 docker 源
sudo curl -o /etc/yum.repos.d/docker-ce.repo https://download.docker.com/linux/centos/docker-ce.repo
#安装 docker 引擎
sudo yum -y install docker-ce docker-ce-cli containerd.io docker-compose-plugin - 配置docker环境
#配置log文件大小
sudo sh -c 'mkdir /etc/docker && cat > /etc/docker/daemon.json << EOF
{
"log-driver":"json-file",
"log-opts":{ "max-size" :"50m","max-file":"3"}
}
EOF'
#将当前用户加入docker组
sudo usermod -aG docker $USER
#启动docker服务并配置自启
sudo systemctl start docker && sudo systemctl enable docker
安装Redash
- 选定Redash安装目录这里假定是/opt/redash
sudo mkdir /opt/redash
sudo chown -R ${USER} /opt/redash
cd /opt/redash - 创建env文件,写环境变量,根据自己环境调整环境变量的值
#/opt/redash/env/内容
PYTHONUNBUFFERED=0
REDASH_LOG_LEVEL=INFO
REDASH_REDIS_URL=redis://redis:6379/0
POSTGRES_PASSWORD=aaa123456
REDASH_COOKIE_SECRET=wo3urion23i4un2l34jm2l34k
REDASH_SECRET_KEY=u2o34nlfksjelruirk
REDASH_DATABASE_URL="postgresql://postgres:aaa123456@postgres/postgres"
ORACLE_HOME="/usr/lib/oracle/12.2/client64"
LD_LIBRARY_PATH="/usr/lib/oracle/12.2/client64/lib"
REDASH_FEATURE_ALLOW_CUSTOM_JS_VISUALIZATIONS="true"
REDASH_ADDITIONAL_QUERY_RUNNERS="redash.query_runner.oracle,redash.query_runner.python" - 在安装目录创建docker-compose.yml(可以自己新建,也可以重其他地方拷贝),下面是内容,注意image的值需要修改为使用的redash镜像id。
version: "2"
x-redash-service: &redash-service
#现在image的值为中文开源版的tag如果要使用官方的镜像,在docker hub上查看官方tag,然后替换。
image: dazdata/redash:v10-21.11.19
depends_on:
- postgres
- redis
env_file: /opt/redash/env
restart: always
services:
server:
<<: *redash-service
command: server
environment:
REDASH_WEB_WORKERS: 4
scheduler:
<<: *redash-service
command: scheduler
worker:
<<: *redash-service
command: worker
environment:
WORKERS_COUNT: 4
redis:
image: redis:5.0-alpine
restart: always
postgres:
image: postgres:12-alpine
env_file: /opt/redash/env
volumes:
- /opt/redash/postgres-data:/var/lib/postgresql/data
restart: always
nginx:
image: dazdata/redash-nginx:latest
ports:
- "5000:80"
depends_on:
- server
links:
- server:redash
restart: always - 在安装目录,拉起Redash。
sudo docker compose up -d
- 初始化数据库,然后通过浏览器访问服务器5000端口即可
sudo docker compose run --rm server create_db
常见问题
- 服务都已启动,但是外部不能访问 检查selinux是否关门
- CentOS8 yum 无法使用 备份原始源,切换到国内阿里源
安装wsl2
Windows安装wsl2要求,windows版本必须为windows10(2004)及之后的版本。 具体安装教程参见windows官网wsl2文档,点此直达
前期准备
- 系统环境说明:
- 系统版本: Ubuntu-20.04
- Python 版本: 3.8
- Postgresql 版本: 12
- Redis 版本: 5.0
- Node 版本: 14.17
- 预期配置:
- 目标安装目录: /opt/redash
- Postgresql账号/密码: redash/aaa123456
- 环境变量env文件: /opt/redash/.env
安装后端
(可选操作,如果自己的apt源速度还可以就不用操作)切换国内apt源
sudo sed -i 's#[a-zA-Z\.]*.ubuntu.com#mirrors.163.com#g' /etc/apt/sources.list
安装系统依赖
sudo sh -c 'apt-get update && apt-get install -y python3 python3-pip python3-dev \
libaio1 libaio-dev alien curl gnupg build-essential pwgen libffi-dev git-core wget \
libpq-dev g++ unixodbc-dev xmlsec1 libssl-dev default-libmysqlclient-dev freetds-dev \
libsasl2-dev unzip libsasl2-modules-gssapi-mit '(可选操作,不用可以不执行)额外的数据源驱动
- sql server odbc驱动
sudo sh -c 'curl https://packages.microsoft.com/keys/microsoft.asc | apt-key add - && \
curl https://packages.microsoft.com/config/ubuntu/20.04/prod.list > /etc/apt/sources.list.d/mssql-release.list && \
apt-get update && \
ACCEPT_EULA=Y apt-get install -y msodbcsql17 '- Oracle database 驱动
sudo sh -c 'wget -O /tmp/oracle-instantclient12.2-basic-12.2.0.1.0-1.x86_64.rpm https://www.dazdata.com/dazdatafiles/depend/oracle-instantclient12.2-basic-12.2.0.1.0-1.x86_64.rpm &&\
wget -O /tmp/oracle-instantclient12.2-devel-12.2.0.1.0-1.x86_64.rpm https://www.dazdata.com/dazdatafiles/depend/oracle-instantclient12.2-devel-12.2.0.1.0-1.x86_64.rpm &&\
alien -i /tmp/oracle-instantclient12.2-basic-12.2.0.1.0-1.x86_64.rpm &&\
alien -i /tmp/oracle-instantclient12.2-devel-12.2.0.1.0-1.x86_64.rpm &&\
rm -rf /tmp/oracle*'(可选操作)修改openssl配置,以支持tls1.1
sudo sh -c "sed -i '/^oid_section.*= new_oids$/aopenssl_conf = default_conf' /etc/ssl/openssl.cnf && echo '\n[ default_conf ] \nssl_conf = ssl_sect \n[ssl_sect]\nsystem_default = ssl_default_sect \n[ssl_default_sect] \nMinProtocol = TLSv1 \nCipherString = DEFAULT:@SECLEVEL=1' >> /etc/ssl/openssl.cnf"
(如果有外部redis可以不安装)安装配置Redis
sudo sh -c "apt-get -y install redis-server && service redis-server start "
#配置开机自启
#wsl环境的话不支持自启,可以用命令行自启wsl -u root service redis-server start
sudo systemctl enable redis-server(如果使用外部pg可以不安装)安装配置Postgresql
#添加pg源
sudo sh -c 'echo "deb http://apt.postgresql.org/pub/repos/apt $(lsb_release -cs)-pgdg main" > /etc/apt/sources.list.d/pgdg.list && wget --quiet -O - https://www.postgresql.org/media/keys/ACCC4CF8.asc | sudo apt-key add -'
#安装pg
sudo sh -c 'apt-get update && apt-get -y install postgresql-12'
#启动pg
sudo service postgresql start
#开机自启
#wsl环境的话不支持自启,可以用命令行自启wsl -u root service postgresql start
sudo systemctl enable postgresql
#新建用户名密码
sudo su postgres -c "`printf 'psql -c "create user redash password %s;"' "'aaa123456'"`"
#新建数据库
sudo su postgres -c "psql -c 'create database redash owner redash;'"
#授权数据库访问权限
sudo sh -c "sed -i '/^#\s*TYPE/ahost redash redash 127.0.0.1/32 md5' /etc/postgresql/12/main/pg_hba.conf && service postgresql restart "克隆代码
#Clone redash代码,如果不能访问github,可以使用gitee仓库:https://gitee.com/dazdata-bi/redash.git
cd /opt && sudo git clone https://github.com/dazdata/redash.git
#修改文件夹属主为当前用户
sudo chown -R ${USER} /opt/redash安装python依赖
cd /opt/redash
#修改国内源,这里使用清华源,如果想改为其它国内源,自行修改
pip3 config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple
#安装虚拟python环境工具,这里使用virtualenv
pip3 install virtualenv
#创建虚拟python环境,这里虚拟环境目录是venv
~/.local/bin/virtualenv venv -p python3
#激活虚拟python环境,这时候终端名称旁边就可以看到venv的标识,说明已经处在虚拟python环境中
source venv/bin/activate
#由于最新的setuptools等的包版本比较高,需要先对这些降级
pip install pip==20.2.4 setuptools==57.0.0 wheel==0.36.2 importlib-metadata==4.6.1
#安装redash python依赖
pip install -r requirements.txt -r requirements_dev.txt -r requirements_oracle_ds.txt(可选,默认安装的数据源支持很少,这一步安装完整的数据源)安装数据源python依赖
#修改依赖文件,python3.8有些版本太低无法安装
sed -i 's/pymssql==2.1.4/pymssql==2.1.5/g' requirements_all_ds.txt
sed -i 's/pymapd==0.19.0/pymapd==0.25.0/g' requirements_all_ds.txt
#安装完整数据源python依赖
pip install -r requirements_all_ds.txt
#(选择操作)如果安装mysqlclient的时候提示my_config.h no such file。执行下面这段:
#(这是由于新版default-libmysqlclient-dev中已经不包含这个文件,用mysql.h替代。)
sudo ln -s /usr/include/mysql/mysql.h /usr/include/mysql/my_config.h配置环境变量,我们建议通过一个env文件来保存环境变量,redash原生启动脚本要求使用项目目录的.env来存放环境变量。对应当前环境即/opt/redash/.env
#/opt/redash/.env内容
PYTHONUNBUFFERED=0
#日志级别
REDASH_LOG_LEVEL=INFO
#redis连接字符串
REDASH_REDIS_URL=redis://127.0.0.1:6379/0
#用于session加密
REDASH_COOKIE_SECRET=wo3urion23i4un2l34jm2l34k
#用于数据库字段值加密,例如数据源账户密码
REDASH_SECRET_KEY=u2o34nlfksjelruirk
#数据库连接字符串,格式为postgresql://{db-user}:{db-password}@{db-ip}/{db-name},根据需求自行更改
REDASH_DATABASE_URL="postgresql://redash:aaa123456@127.0.0.1/redash"
#Oracle环境变量
ORACLE_HOME="/usr/lib/oracle/12.2/client64"
LD_LIBRARY_PATH="/usr/lib/oracle/12.2/client64/lib"
#开启自定义代码
REDASH_FEATURE_ALLOW_CUSTOM_JS_VISUALIZATIONS="true"
#开启特殊数据源
REDASH_ADDITIONAL_QUERY_RUNNERS="redash.query_runner.oracle,redash.query_runner.python"修改原生启动脚本,以满足当前需求
sed -i 's/^sed/#sed/g' ./bin/run
sed -ri "/^#sed/ased -r 's/^([^#].*)/export \\\1/g' .env > \$TEMP_ENV_FILE " ./bin/run初始化数据库
#激活虚拟化境
source venv/bin/activate
#初始化数据库
./bin/run ./manage.py database create_tables
打包前端
如果不做前端开发,可以直接下载打包好的前端文件,下载链接
安装node,npm,熟悉前端的同学也可以通过nvm去控制node版本,这里使用n
#安装node包
sudo apt-get -y install nodejs npm
#安装node版本管理工具n
sudo npm install n -g
#切换npm版本到14.17,如果没有切换成功,退出终端,重新打开终端即可
sudo n 14.17
#最新版包管理工具已经换成yarn
sudo npm install yarn -g
#设置淘宝源,加快依赖安装速度
yarn config set registry https://registry.npmmirror.com修改yarn.lock和package.json,由于sql-formatter这个包是从github上直接下载的,但是国内很多小伙伴用不了。这里换成gitee源
sed -i 's#github.com/getredash/sql-formatter.git#gitee.com/dazdata-bi/sql-formatter.git#g' yarn.lock
sed -i 's#github.com/getredash/sql-formatter.git#gitee.com/dazdata-bi/sql-formatter.git#g' package.json安装node依赖
yarn --frozen-lockfile
打包前端,打包后的前端文件会在/opt/redash/client/dist下
yarn build
启动服务
- 新开终端启动server
#激活虚拟化境
source venv/bin/activate
#初始化数据库
./bin/run ./manage.py runserver -h0.0.0.0 - 新开终端启动scheduler
#激活虚拟化境
source venv/bin/activate
#初始化数据库
./bin/run ./manage.py rq scheduler - 新开终端启动worker
#激活虚拟化境
source venv/bin/activate
#初始化数据库
./bin/run ./manage.py rq worker
前期准备
- 系统环境说明:
- 系统版本: Ubuntu-20.04
- Python 版本: 3.8
- Postgresql 版本: 12
- Redis 版本: 5.0
- Node 版本: 14.17
- 预期配置:
- 目标安装目录: /opt/redash
- Postgresql账号/密码: redash/aaa123456
- 环境变量env文件: /opt/redash/.env
安装后端
(可选操作,如果自己的apt源速度还可以就不用操作)切换国内apt源
sudo sed -i 's#[a-zA-Z\.]*.ubuntu.com#mirrors.163.com#g' /etc/apt/sources.list
安装系统依赖
sudo sh -c 'apt-get update && apt-get install -y python3 python3-pip python3-dev \
libaio1 libaio-dev alien curl gnupg build-essential pwgen libffi-dev git-core wget \
libpq-dev g++ unixodbc-dev xmlsec1 libssl-dev default-libmysqlclient-dev freetds-dev \
libsasl2-dev unzip libsasl2-modules-gssapi-mit '(可选操作,不用可以不执行)额外的数据源驱动
- sql server odbc驱动
sudo sh -c 'curl https://packages.microsoft.com/keys/microsoft.asc | apt-key add - && \
curl https://packages.microsoft.com/config/ubuntu/20.04/prod.list > /etc/apt/sources.list.d/mssql-release.list && \
apt-get update && \
ACCEPT_EULA=Y apt-get install -y msodbcsql17 '- Oracle database 驱动
sudo sh -c 'wget -O /tmp/oracle-instantclient12.2-basic-12.2.0.1.0-1.x86_64.rpm https://www.dazdata.com/dazdatafiles/depend/oracle-instantclient12.2-basic-12.2.0.1.0-1.x86_64.rpm &&\
wget -O /tmp/oracle-instantclient12.2-devel-12.2.0.1.0-1.x86_64.rpm https://www.dazdata.com/dazdatafiles/depend/oracle-instantclient12.2-devel-12.2.0.1.0-1.x86_64.rpm &&\
alien -i /tmp/oracle-instantclient12.2-basic-12.2.0.1.0-1.x86_64.rpm &&\
alien -i /tmp/oracle-instantclient12.2-devel-12.2.0.1.0-1.x86_64.rpm &&\
rm -rf /tmp/oracle*'(可选操作)修改openssl配置,以支持tls1.1
sudo sh -c "sed -i '/^oid_section.*= new_oids$/aopenssl_conf = default_conf' /etc/ssl/openssl.cnf && echo '\n[ default_conf ] \nssl_conf = ssl_sect \n[ssl_sect]\nsystem_default = ssl_default_sect \n[ssl_default_sect] \nMinProtocol = TLSv1 \nCipherString = DEFAULT:@SECLEVEL=1' >> /etc/ssl/openssl.cnf"
(如果有外部redis可以不安装)安装配置Redis
sudo sh -c "apt-get -y install redis-server && service redis-server start "
#配置开机自启
#wsl环境的话不支持自启,可以用命令行自启wsl -u root service redis-server start
sudo systemctl enable redis-server(如果使用外部pg可以不安装)安装配置Postgresql
#添加pg源
sudo sh -c 'echo "deb http://apt.postgresql.org/pub/repos/apt $(lsb_release -cs)-pgdg main" > /etc/apt/sources.list.d/pgdg.list && wget --quiet -O - https://www.postgresql.org/media/keys/ACCC4CF8.asc | sudo apt-key add -'
#安装pg
sudo sh -c 'apt-get update && apt-get -y install postgresql-12'
#启动pg
sudo service postgresql start
#开机自启
#wsl环境的话不支持自启,可以用命令行自启wsl -u root service postgresql start
sudo systemctl enable postgresql
#新建用户名密码
sudo su postgres -c "`printf 'psql -c "create user redash password %s;"' "'aaa123456'"`"
#新建数据库
sudo su postgres -c "psql -c 'create database redash owner redash;'"
#授权数据库访问权限
sudo sh -c "sed -i '/^#\s*TYPE/ahost redash redash 127.0.0.1/32 md5' /etc/postgresql/12/main/pg_hba.conf && service postgresql restart "克隆代码
#Clone redash代码,如果不能访问github,可以使用gitee仓库:https://gitee.com/dazdata-bi/redash.git
cd /opt && sudo git clone https://github.com/dazdata/redash.git
#修改文件夹属主为当前用户
sudo chown -R ${USER} /opt/redash安装python依赖
cd /opt/redash
#修改国内源,这里使用清华源,如果想改为其它国内源,自行修改
pip3 config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple
#安装虚拟python环境工具,这里使用virtualenv
pip3 install virtualenv
#创建虚拟python环境,这里虚拟环境目录是venv
~/.local/bin/virtualenv venv -p python3
#激活虚拟python环境,这时候终端名称旁边就可以看到venv的标识,说明已经处在虚拟python环境中
source venv/bin/activate
#由于最新的setuptools等的包版本比较高,需要先对这些降级
pip install pip==20.2.4 setuptools==57.0.0 wheel==0.36.2 importlib-metadata==4.6.1
#安装redash python依赖
pip install -r requirements.txt -r requirements_dev.txt -r requirements_oracle_ds.txt(可选,默认安装的数据源支持很少,这一步安装完整的数据源)安装数据源python依赖
#修改依赖文件,python3.8有些版本太低无法安装
sed -i 's/pymssql==2.1.4/pymssql==2.1.5/g' requirements_all_ds.txt
sed -i 's/pymapd==0.19.0/pymapd==0.25.0/g' requirements_all_ds.txt
#安装完整数据源python依赖
pip install -r requirements_all_ds.txt
#(选择操作)如果安装mysqlclient的时候提示my_config.h no such file。执行下面这段:
#(这是由于新版default-libmysqlclient-dev中已经不包含这个文件,用mysql.h替代。)
sudo ln -s /usr/include/mysql/mysql.h /usr/include/mysql/my_config.h配置环境变量,我们建议通过一个env文件来保存环境变量,redash原生启动脚本要求使用项目目录的.env来存放环境变量。对应当前环境即/opt/redash/.env
#/opt/redash/.env内容
PYTHONUNBUFFERED=0
#日志级别
REDASH_LOG_LEVEL=INFO
#redis连接字符串
REDASH_REDIS_URL=redis://127.0.0.1:6379/0
#用于session加密
REDASH_COOKIE_SECRET=wo3urion23i4un2l34jm2l34k
#用于数据库字段值加密,例如数据源账户密码
REDASH_SECRET_KEY=u2o34nlfksjelruirk
#数据库连接字符串,格式为postgresql://{db-user}:{db-password}@{db-ip}/{db-name},根据需求自行更改
REDASH_DATABASE_URL="postgresql://redash:aaa123456@127.0.0.1/redash"
#Oracle环境变量
ORACLE_HOME="/usr/lib/oracle/12.2/client64"
LD_LIBRARY_PATH="/usr/lib/oracle/12.2/client64/lib"
#开启自定义代码
REDASH_FEATURE_ALLOW_CUSTOM_JS_VISUALIZATIONS="true"
#开启特殊数据源
REDASH_ADDITIONAL_QUERY_RUNNERS="redash.query_runner.oracle,redash.query_runner.python"修改原生启动脚本,以满足当前需求
sed -i 's/^sed/#sed/g' ./bin/run
sed -ri "/^#sed/ased -r 's/^([^#].*)/export \\\1/g' .env > \$TEMP_ENV_FILE " ./bin/run初始化数据库
#激活虚拟化境
source venv/bin/activate
#初始化数据库
./bin/run ./manage.py database create_tables
打包前端
如果不做前端开发,可以直接下载打包好的前端文件,下载链接
安装node,npm,熟悉前端的同学也可以通过nvm去控制node版本,这里使用n
#安装node包
sudo apt-get -y install nodejs npm
#安装node版本管理工具n
sudo npm install n -g
#切换npm版本到14.17,如果没有切换成功,退出终端,重新打开终端即可
sudo n 14.17
#最新版包管理工具已经换成yarn
sudo npm install yarn -g
#设置淘宝源,加快依赖安装速度
yarn config set registry https://registry.npmmirror.com修改yarn.lock和package.json,由于sql-formatter这个包是从github上直接下载的,但是国内很多小伙伴用不了。这里换成gitee源
sed -i 's#github.com/getredash/sql-formatter.git#gitee.com/dazdata-bi/sql-formatter.git#g' yarn.lock
sed -i 's#github.com/getredash/sql-formatter.git#gitee.com/dazdata-bi/sql-formatter.git#g' package.json安装node依赖
yarn --frozen-lockfile
打包前端,打包后的前端文件会在/opt/redash/client/dist下
yarn build
启动服务
- 新开终端启动server
#激活虚拟化境
source venv/bin/activate
#初始化数据库
./bin/run ./manage.py runserver -h0.0.0.0 - 新开终端启动scheduler
#激活虚拟化境
source venv/bin/activate
#初始化数据库
./bin/run ./manage.py rq scheduler - 新开终端启动worker
#激活虚拟化境
source venv/bin/activate
#初始化数据库
./bin/run ./manage.py rq worker
前期准备
- 系统环境说明:
- 系统版本: CentOS-7.9
- Python 版本: 3.6
- Postgresql 版本: 12
- Redis 版本: 3.0
- Node 版本: 14.17
- 预期配置:
- 目标安装目录: /opt/redash
- Postgresql账号/密码: redash/aaa123456
- 环境变量env文件: /opt/redash/.env
部署后端
- (可选操作,如果自己的yum源速度还可以就不用操作)切换国内yum源
sudo sh -c 'mkdir -p /etc/yum.repos.d.bak && mv /etc/yum.repos.d/* /etc/yum.repos.d.bak && curl https://mirrors.aliyun.com/repo/Centos-7.repo -o /etc/yum.repos.d/Centos7-ali.repo'
- 安装系统依赖
#添加epel源
sudo sh -c 'yum install -y epel-release && yum makecache'
#安装系统依赖
sudo sh -c 'yum install -y python3 python3-pip python3-devel gcc gcc-c++ cyrus-sasl cyrus-sasl-devel cyrus-sasl-gssapi \
xmlsec1 mysql-devel curl gnupg pwgen libffi-devel git-core wget unixODBC-devel openssl-devel unzip \
freetds-devel supervisor '
#添加postgres源,用于安装pg client编译依赖
sudo yum install -y https://download.postgresql.org/pub/repos/yum/reporpms/EL-7-x86_64/pgdg-redhat-repo-latest.noarch.rpm
#安装pg client编译依赖
sudo yum install -y libpq5-devel-12.3 - (可选操作,不用可以不执行)额外的数据源驱动
- Oracle database 驱动
sudo sh -c 'wget -O /tmp/oracle-instantclient12.2-basic-12.2.0.1.0-1.x86_64.rpm https://www.dazdata.com/dazdatafiles/depend/oracle-instantclient12.2-basic-12.2.0.1.0-1.x86_64.rpm &&\
wget -O /tmp/oracle-instantclient12.2-devel-12.2.0.1.0-1.x86_64.rpm https://www.dazdata.com/dazdatafiles/depend/oracle-instantclient12.2-devel-12.2.0.1.0-1.x86_64.rpm &&\
yum install -y /tmp/oracle-instantclient12.2-basic-12.2.0.1.0-1.x86_64.rpm &&\
yum install -y /tmp/oracle-instantclient12.2-devel-12.2.0.1.0-1.x86_64.rpm &&\
rm -rf /tmp/oracle*'
(如果有外部redis可以不安装)安装配置Redis
sudo sh -c "yum -y install redis && service redis start "
#配置开机自启
sudo systemctl enable redis(如果使用外部pg可以不安装)安装配置Postgresql
#安装pg
sudo yum install -y postgresql12-server
#初始化pg,并配置自启
sudo /usr/pgsql-12/bin/postgresql-12-setup initdb
sudo systemctl enable postgresql-12
sudo systemctl start postgresql-12
#新建用户名密码
sudo su postgres -c "`printf 'psql -c "create user redash password %s;"' "'aaa123456'"`"
#新建数据库
sudo su postgres -c "psql -c 'create database redash owner redash;'"
#授权数据库访问权限
sudo sh -c "sed -i '/^#\s*TYPE/ahost redash redash 127.0.0.1/32 md5' /var/lib/pgsql/12/data/pg_hba.conf && systemctl restart postgresql-12 "克隆代码
#Clone redash代码,如果不能访问github,下面使用gitee仓库,如果可以访问githu也可以使用:https://github.com/dazdata/redash.git
cd /opt && sudo git clone https://gitee.com/dazdata-bi/redash.git
#修改文件夹属主为当前用户
sudo chown -R ${USER} /opt/redash安装python依赖
cd /opt/redash
#修改国内源,这里使用清华源,如果想改为其它国内源,自行修改
sudo sh -c "printf '[global]\nindex-url = https://pypi.tuna.tsinghua.edu.cn/simple\n' > /etc/pip.conf"
#安装虚拟python环境工具,这里使用virtualenv
sudo pip3 install virtualenv
#创建虚拟python环境,这里虚拟环境目录是venv
virtualenv venv -p python3
#激活虚拟python环境,这时候终端名称旁边就可以看到venv的标识,说明已经处在虚拟python环境中
source venv/bin/activate
#由于最新的setuptools等的包版本比较高,需要先对这些降级
pip install pip==20.2.4 setuptools==57.0.0 wheel==0.36.2 importlib-metadata==4.6.1
#安装redash python依赖
pip install -r requirements.txt -r requirements_dev.txt -r requirements_oracle_ds.txt(可选,默认安装的数据源支持很少,这一步安装完整的数据源)安装数据源python依赖
#修改依赖文件,python3.6某些数据源不支持或版本过高,需要调整
sed -ri 's/^(firebolt-sdk)/#\1 #--require python37/g' requirements_all_ds.txt
sed -ri 's/^(pandas==)1.3.4/\11.1.5/g' requirements_all_ds.txt
sed -ri 's/^(pymapd==)0.19.0/\10.16.0/g' requirements_all_ds.txt
#安装完整数据源python依赖
pip install -r requirements_all_ds.txt配置环境变量,我们建议通过一个env文件来保存环境变量,redash原生启动脚本要求使用项目目录的.env来存放环境变量。对应当前环境即/opt/redash/.env
#/opt/redash/.env内容
PYTHONUNBUFFERED=0
#日志级别
REDASH_LOG_LEVEL=INFO
#redis连接字符串
REDASH_REDIS_URL=redis://127.0.0.1:6379/0
#用于session加密
REDASH_COOKIE_SECRET=wo3urion23i4un2l34jm2l34k
#用于数据库字段值加密,例如数据源账户密码,根据需求自行更改,迁移时需要保持此环境变量不变
REDASH_SECRET_KEY=u2o34nlfksjelruirk
#数据库连接字符串,格式为postgresql://{db-user}:{db-password}@{db-ip}/{db-name},根据需求自行更改
REDASH_DATABASE_URL="postgresql://redash:aaa123456@127.0.0.1/redash"
#Oracle环境变量
ORACLE_HOME="/usr/lib/oracle/12.2/client64"
LD_LIBRARY_PATH="/usr/lib/oracle/12.2/client64/lib"
#开启自定义代码
REDASH_FEATURE_ALLOW_CUSTOM_JS_VISUALIZATIONS="true"
#开启特殊数据源
REDASH_ADDITIONAL_QUERY_RUNNERS="redash.query_runner.oracle,redash.query_runner.python"修改原生启动脚本,以满足当前需求
sed -i 's/^sed/#sed/g' ./bin/run
sed -ri "/^#sed/ased -r 's/^([^#].*)/export \\\1/g' .env > \$TEMP_ENV_FILE " ./bin/run初始化数据库
#激活虚拟化境
source venv/bin/activate
#初始化数据库
./bin/run ./manage.py database create_tables
部署前端
如果不做前端开发,可以直接下载打包好的前端文件,下载链接
安装node,npm,熟悉前端的同学也可以通过nvm去控制node版本,这里使用n
#安装node包
sudo yum install -y nodejs npm
#安装node版本管理工具n
sudo npm install n -g
#切换npm版本到14.17,如果没有切换成功,退出终端,重新打开终端即可
sudo /usr/local/bin/n 14.17
#安装yarn,最新版包管理工具已经换成yarn
sudo npm install yarn -g
#设置淘宝源,加快依赖安装速度
yarn config set registry https://registry.npmmirror.com修改yarn.lock和package.json,由于sql-formatter这个包是从github上直接下载的,但是国内很多小伙伴用不了。这里换成gitee源
sed -i 's#github.com/getredash/sql-formatter.git#gitee.com/dazdata-bi/sql-formatter.git#g' yarn.lock
sed -i 's#github.com/getredash/sql-formatter.git#gitee.com/dazdata-bi/sql-formatter.git#g' package.json安装node依赖,如果遇到no such file or directory这种报错,删除yarn缓存(rm -rf ~/.cache/yarn)
yarn --frozen-lockfile
打包前端,打包后的前端文件会在/opt/redash/client/dist下
yarn build
启动服务
- 新开终端启动server
#激活虚拟化境
source venv/bin/activate
#初始化数据库
./bin/run ./manage.py runserver -h0.0.0.0 - 新开终端启动scheduler
#激活虚拟化境
source venv/bin/activate
#初始化数据库
./bin/run ./manage.py rq scheduler - 新开终端启动worker
#激活虚拟化境
source venv/bin/activate
#初始化数据库
./bin/run ./manage.py rq worker