Superset环境配置

Superset环境配置

前言

公司最近在用[superset][6]自己尝试着安装配置了一下环境,特意写一个博客记录一下,以后忘了自己可以看看,也希望可以帮到有需要的人。注意!本次环境是在ubuntu下搭建的。
  • superset简介
    Apache Superset是一个现代化的企业级商业智能Web应用程序
    特征
    1.丰富的数据可视化集
    2.一个易于使用的界面,用于探索和可视化数据
    3.创建和共享仪表板
    4.通过与主要认证提供程序(数据库,OpenID,LDAP,OAuth和REMOTE_USER通过Flask AppBuilder)集成的企业级身份验证
    5.可扩展,高粒度的安全/权限模型,允许复杂的规则可以访问个别功能和数据集
    6.一个简单的语义层,允许用户通过定义哪些字段应显示在哪个下拉菜单中以及哪些聚合和功能度量可用于用户来控制数据源在UI中的显示方式
    7.通过SQLAlchemy与大多数SQL语言的RDBMS集成
    8.与Druid.io深度整合

  • 安装依赖

sudo  apt - get  install  build - essential  libssl - dev  libffi - dev  python - dev  python - pip  libsasl2 - dev  libldap2 - dev

这是直接从官方文档copy过来的,superset后台是用python写的所以需要一个python的环境,ubuntu一般会自带一个python,不过版本比较低,superset不支持2.6,我下的一个3.6.2是可以用的,自己下载一个安装包,解压之后
1. sudo ./configure
2. sudo make
3. sudo make install

  • 安装 virtualenv
    virtualenv这个东西我也不是很清楚,目前的理解就相当于一个虚拟环境吧,在虚拟环境里可以自由选择python的版本
pip  install  virtualenv
  • 创建虚拟环境
virtualenv venv --python=pythonxx

venv 这个名字随便取pythonxx写自己的python版本对应的执行文件

. ./venv/bin/activate

/venv/和你去取得名字对应即可,要推出虚拟环境使用deactivate命令

pip install --upgrade setuptools pip

好吧,这个我也不知道是什么,pip好像是管理python的一个工具

  • 安装superset
# Install supersetpip install superset# Create an admin user (you will be prompted to set username, first and last name before setting a password) fabmanager create-admin --app superset # Initialize the database superset db upgrade # Load some data to play with superset load_examples # Create default roles and permissions superset init # Start the web server on port 8088, use -p to bind to another port superset runserver # To start a development web server, use the -d switch # superset runserver -d

这是官方的做法,但是!我们在国内,下载速度几十K,不忍直视,这里用阿里镜像速度快N倍

sudo -H pip install superset -i http://mirrors.aliyun.com/pypi/simple --trusted-host mirrors.aliyun.com

不用谢,安装完按上述步骤执行到superset runserver 后,用浏览器访问你服务器的8088端口,就可以看到登陆界面。此时看到的一个数据是superset为了演示实现准备的。下面界面怎么连我们自己的数据库
配置连接数据库
这里我连的是自己的MySQL数据库,其他数据库大同小异
1.安装客户端
在虚拟环境下运行

pip -install mysqlclient

这里有时候会出现一个错误

OSError: mysql_config not found

apt-get install libmysqlclient-dev python3-dev

解决方法如上!

接下来编写配置文件

#---------------------------------------------------------# Superset specific config#---------------------------------------------------------ROW_LIMIT = 5000SUPERSET_WORKERS = 4SUPERSET_WEBSERVER_PORT = 8088#---------------------------------------------------------#---------------------------------------------------------# Flask App Builder configuration#---------------------------------------------------------# Your App secret keySECRET_KEY = '21thisismyscretkey12eyyh'# The SQLAlchemy connection string to your database backend# This connection defines the path to the database that stores your# superset metadata (slices, connections, tables, dashboards, ...).# Note that the connection information to connect to the datasources# 这里写MySQL的连接信息,superset会在这个数据库创建一些自己需要用到的表比如有关权限的7张表SQLALCHEMY_DATABASE_URI = 'mysql://用户名:密码@路径/数据库名字?chartset=utf8'# Flask-WTF flag for CSRFWTF_CSRF_ENABLED = True# Add endpoints that need to be exempt from CSRF protectionWTF_CSRF_EXEMPT_LIST = []# Set this API key to enable Mapbox visualizationsMAPBOX_API_KEY = ''

最后在把这个配置文件(superset_config.py)放入venv的bin目录即可。
我在用虚拟机连接我本机数据库的时候,一致显示加载配置文件,搞了半天原来是本机防火墙的原因,关掉之后就可以连接了。配置文件那块,有些字符被自动转成中文的了,复制的时候要注意一下

  • 最后在重新创建一个用户重新启动一下就OK,superset会在根据配置文件的指定的数据库生成一些自己需要的表,比如设计权限的,一些数据相关的。
    这块就差不多了,superset还需要好好研究一下

免责声明:本网信息来自于互联网,目的在于传递更多信息,并不代表本网赞同其观点。其原创性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容、文字的真实性、完整性、及时性本站不作任何保证或承诺,并请自行核实相关内容。本站不承担此类作品侵权行为的直接责任及连带责任。如若本网有任何内容侵犯您的权益,请及时联系我们,本站将会在24小时内处理完毕。
相关文章
返回顶部