redash 新版本研究

2018/2/13 posted in  python

测试环境 61.183.247.105

  1. 安装 还是可以使用ubuntu的安装脚本安装,这个安装脚本比以前做的好一些了,没什么bug,但是不能在virtualenv下面安装,否则包找不到,这个后面可以研究一下如何处理
  2. 安装好之后实际是可以使用的
  3. 如果要修改前台页面,需要重新进行npm build 。 方法就是首先到版本的目录,然后执行npm run install。执行npm install的时候记得最好把github的hosts配上,不然可能下不到会失败。然后完成后再执行npm run build就可以把前端build出来了,build的内容会在clinet/dist目录下。如果要修改文件需要重新build才可以生效。supervisor使用的是dist文件夹。
  4. 如果执行一次npm install 失败,不要修改后继续执行,最好先删除npm文件,首先rm -rf node_modules 然后再执行 npm install

可以研究一下要搞的几个东西

  • 开发环境配置——整理一个更好的python开发环境模式
  • 尝试把echarts插件引入到visualization组件中去
  • docker配置
  • 整理成docker开发环境

开发环境整理

  1. 可以按照安装脚本整理一套,然后自己手动启动webserver 、Celery、webpack,把这三个搞好可以试着跑起来,按照安装的模式来整理开发环境

开发梳理

redash 使用了 flask、 angularJS

redash 代码结构研究

  1. client —— 存储所有的前台内容
    1. app —— 存放所有的前台源码,包含HTML、js
      1. assets/ —— 存放所有的css、fonts、images
      2. components/ —— 大部分组件的页面都存放在这里。这里和pages的区别是这里大多存的是一些公共组件,而不是主题页面
      3. config/ ——存放基本配置,包含angularJS总路由,样式表文件配置等
      4. directives/ —— 基本配置统一放在这里
      5. filters/
      6. lib/
        1. pagination/ —— 分页组件
        2. sortable/ —— 排序组件
        3. visualizations —— 可视化插件
      7. pages/
        1. admin/ ——首页用户名下面的system status页面的Admin管理页面,包含system status系统状态、queries queue查询队列、outdated queries过期查询队列。
        2. alert/ ——首页菜单alert页面
        3. alerts-list/
        4. dashboards/
        5. data-sources/
        6. destinations/
        7. groups/
        8. home/
        9. queries/
        10. queries-list/
        11. query-snippets/
        12. users/
      8. services/ —— 相应的js服务部分
      9. visualizations/ —— 可视化相关部分
    2. dest —— 存放所有的webpack打包后的页面内容
  2. migration —— 存放所有的数据库更新内容
  3. redash —— 存储redash的后端部分,所有的py文件都在这里面,这里的话最好还是要详细研究一下flask在来修改,跟django还是有一些区别的。
  4. test —— 存储测试内容

从词云组件开始研究visualization

wordcloud

开发模式

redash也存在开发模式,实际上在package.json已经配置了,在webpack.config.js里面也进行了相关的配置

package.json里面的配置

"scripts": {
    "start": "webpack-dev-server",
    "build": "rm -rf ./client/dist/ && NODE_ENV=production node node_modules/.bin/webpack",
    "watch": "webpack --watch --progress --colors -d"
  },

start 用于 run start 来启动web pack服务。

build用于重新发布

watch用于开发环境下修改文件后的直接发布,所见即所得。

每次build的时间比较久,如果每次开发修改一点点都需要build的话,那将会很浪费时间,所以使用watch模式,每次有修改之后会自动进行发布和编译,并且响应速度较快。

使用的方法: npm run watch

运行启动后,修改相关文件会自动进行编译,只需要刷新页面就能生效,最好是强制刷新。

访问数据库

root@williiiam-dev:/opt/redash/redash.3.0.0.b3134# sudo -u redash psql

配置到navicat 远程连接

配置与连接
首先,在pgdata(也就是在安装pg时指定的存放数据的文件见中)文件夹中,找到pg_hba.conf文件,并写入下面的内容:

$ host    all        all         0.0.0.0/0       trust

接着,在pgdata文件夹中,找到postgresql.conf为文件,并修改下面的内容:

$ listen_addresses = '*'     #允许任何的ip地址监听,并保存

最后,重新启动PostgreSQL数据库,然后在Navicat中进行连接配置,该步骤省略,相信使用过功该工具的读者都知道该怎么配置。

$ ${PG_HOME}/bin/pg_ctl restart -D ${PGDATA}   #重新启动pg数据库