Mac搭建redash开发环境 及 使用(2020.4.12)

Mac搭建redash开发环境 及 使用(2020.4.12)

  • Mac redash搭建
    • 安装依赖项
    • PostgreSQL安装
    • Python Packages
          • requirements.txt中的坑
          • requirements_all_ds.txt中的大坑
          • 改一下./redash/settings/_ _init__.py
    • Node.js 安装包
    • Configuration
    • 创建数据库表
    • 运行
  • 登录界面
    • 开始使用
    • redash使用postgresql源(二)
    • redash使用mysql源(三)
    • redash使用MongoDB源(四)
    • redash使用msSQLserver源(六)

Mac redash搭建

总体来说和windows中的安装一样,但是也少不了一些坑,这里主要解决一下这些坑。

安装依赖项

Python3,PostgreSQL(9.5或更高版本),Redis(2.8.3或更高版本)和Node.js(v12或更高版本)
在MacOS上,可以用Homebrew进行安装。

  • 我自己安装的python3.8.2(不用mac自带的2.7),记得加环境变量
# Setting PATH for Python 3.8
# The original version is saved in .bash_profile.pysave
PATH="/Library/Frameworks/Python.framework/Versions/3.8/bin:${PATH}"
export PATH
  • postgresql(一会讲一下postgre基础设置)
  • homebrew,用brew安装的nodejs,Redis。

PostgreSQL安装

我用的安装包装的,首次登陆设置一下postgres用户的密码,我设的123456,下面会用的这个密码。
具体设置参看后续文章 Mac搭建redash开发环境使用postgresql源(二)

Python Packages

  • 在pycharm中添加redasha的虚拟环境,根目录有requirements.txt,requirements_dev.txt,requirements_all_ds.txt三个需求包文件。
    其中requirements.txt,requirements_dev.txt必须安装。对于某些数据源类型,需要从requirements_all_ds.txt安装其他依赖项。

先吐槽一下公司的网,垃圾的要死,pip装包就不走字,换了清华的源也不行,有的包根本就连不上,要是用docker装redash的话你会死的,就算用阿里或者别的镜像那些个几千个包就这网速也会拖死人的。

当然这部分会出现各种各样的坑,我们来看一下:

requirements.txt中的坑
  • psycopg2
    可能会报错Error: pg_config executable not found,查资料添加pg_config的环境变量就可以,直接open ~/.bash_profile,加入export PATH="/Library/PostgreSQL/12/bin:$PATH",然后pip install psycopg2,如果安装成功了,恭喜你(其实并没有什么用),等之后check_settings的时候依然会报错。所以!所以!所以!删掉psycopg2,上来直接pip install psycopg2-binary,万事大吉。
  • pycrypto
    这个包直接用pycryptodome==3.9.7替换。
  • 其他mac下都能装上
requirements_all_ds.txt中的大坑

因为我想试试别的数据源,所以想把这里的需求包都装上,但是呵呵,一顿飘红,来挨个看一下吧。

  • ibm-db
    不要妄想了,这个东西是装不上了,直接pass
  • mysqlclient
    这是个难点,一开始提示说gcc什么,后来仔细看了一下有一样找不到lssl,应该是openssl的环境变量没弄,还是老步骤,open ~/.bash_profile,
    加入
    export LDFLAGS="-L/usr/local/opt/openssl/lib:$PATH",
    export CPPFLAGS="-I/usr/local/opt/openssl/include:$PATH",
    要是没有openssl就brew install openssl
    后来安装mysqlclient好像又报错了,google了一下要先装mysql-connector-c,行吧,
    brew install mysql-connector-c
    装完他会提示你添加几个环境变量,照做即可,
    export LDFLAGS="-L/usr/local/opt/mysql-client/lib"
    export CPPFLAGS="-I/usr/local/opt/mysql-client/include",
    用which查一下你装的变量好使不,因为我们都写到了用户级的变量里,终端关了就不好用了,所以可以在~/.zshrc里写入一行source .bash_profile,这样每次打开终端都会载入自己写的环境变量,这下可以装mysqlclient了吧。
    呵呵,还是不行,不知道是我的电脑原因还是变量没弄好,就是不好使,google上也有人说自己都改了环境变量还是安装不成功。
    终于有个大神回复了一条可以安装的时候载入变量(我是这么理解的),
    LDFLAGS=-L/usr/local/opt/openssl/lib pip install mysqlclient==1.3.13,为什么装1.3.13呢,因为下面还有一个坑。
  • memsql==3.0.0
    这个插件的安装说需要mysqlclient,而且还要1.3.13版本的,好吧,那就直接用同样的方法LDFLAGS=-L/usr/local/opt/openssl/lib pip install memsql,可算是把这俩困难户装上了。
  • pymapd
    这个安装需要thrift,pandas,pyarrow巴拉巴拉,最后会出现
 NumPy import failure:
  
    Traceback (most recent call last):
  
      File "", line 1, in 
  
    ModuleNotFoundError: No module named 'numpy'
  
  Call Stack (most recent call first):
    CMakeLists.txt:186 (find_package)
  
  
  -- Configuring incomplete, errors occurred!
  See also "/private/var/folders/w6/xrjj_bc10cn50xhrbz03xchr0000gp/T/pip-install-ijwcbedx/pyarrow/build/temp.macosx-10.9-x86_64-3.8/CMakeFiles/CMakeOutput.log".
  See also "/private/var/folders/w6/xrjj_bc10cn50xhrbz03xchr0000gp/T/pip-install-ijwcbedx/pyarrow/build/temp.macosx-10.9-x86_64-3.8/CMakeFiles/CMakeError.log".
  error: command 'cmake' failed with exit status 1
  ----------------------------------------
  ERROR: Failed building wheel for pyarrow
Failed to build pyarrow
ERROR: Could not build wheels for pyarrow which use PEP 517 and cannot be installed directly

这个我放弃了,有没有大神来操作一下,我查的说是要用conda装?

如果你都装成功了,可以再
pip install -r requirements.txt -r requirements_dev.txt -r requirements_all_ds.txt,看看你的包是不是都安上了。
接下来检查一下设置,因为我用的python3.8.2,所以
python3 ./manage.py check_settings,成功的话会出来./redash/settings/_init_.py里的设置。

改一下./redash/settings/_ init_.py

数据库的地址,123456是你postgres的密码:

SQLALCHEMY_DATABASE_URI = os.environ.get(
    "REDASH_DATABASE_URL", os.environ.get("DATABASE_URL", "postgresql://postgres:[email protected]:5432/postgres")
)
THROTTLE_LOGIN_PATTERN = os.environ.get("REDASH_THROTTLE_LOGIN_PATTERN", "500/hour")

再检查一下你的设置 python3 ./manage.py check_settings

Node.js 安装包

使用以下命令安装所有软件包:
npm install
首次安装需要`:
npm run build
或者:
为了速度快点,加淘宝的镜像
npm install -g cnpm --registry=https://registry.npm.taobao.org
然后
cnpm install
cnpm run build

Configuration

在大多数情况下,默认配置足以进行开发。 但是,如果您需要调整数据库配置,邮件或其他设置,请使用环境变量进行调整。
(网又断了,不知道刚才写的保存没。。。。)

创建数据库表

python3 ./manage.py database create_tables

运行

必须运行的主要Redash进程:
Web server
RQ worker(s) & scheduler
在开发中,还将运行Webpack的开发服务器或监视实用程序。
必须运行的主要Redash进程:

开两个终端
Web服务器:python3 ./manage.py runserver --debugger --reload -h 0.0.0.0 -p 5000
RQ:python3 ./manage.py rq worker

其他的:
RQ调度程序:python3 ./manage.py rq scheduler
前端监视过程以重建更改:npm run watch
这将导致Flask Web服务器在端口5000上进行侦听,Webpack重建对前端的更改,RQ worker准备运行查询,并且RQ计划程序可以排队定期任务。

登录界面

在浏览器打开localhost:5000
注册一个账户就能登录了。
Mac搭建redash开发环境 及 使用(2020.4.12)_第1张图片

开始使用

redash使用postgresql源(二)

redash使用mysql源(三)

redash使用MongoDB源(四)

redash使用msSQLserver源(六)

你可能感兴趣的:(redash)