手把手教你起superset(附赠连kylin数据源)

1、pip流

装了pip可以无视步骤2,但是专业人士一般会使用Anaconda

1.1、装pip

https://pip.pypa.io/en/stable/installing/

懒得看就直接:

a)wgethttps://bootstrap.pypa.io/get-pip.py

b)sudo python get-pip.py

1.2、装virtualenv

http://qicheng0211.blog.51cto.com/3958621/1561685

懒得看就直接:

a)sudo pip install virtualenv

b)sudo pip install virtualenvwrapper

c)给自己~/.profile里加上

export WORKON_HOME=~/{自己起个名放workspace}

source /usr/bin/virtualenvwrapper.sh #如果是pip下来的一般会在/usr/local/bin/virtualenvwrapper.sh,总之自己找一下

d)mkvirtualenv superset

2、Anaconda流

2.1、装Anaconda

a)官网下一个https://www.anaconda.com/download/#linux,500多M,觉得慢可以到小伙伴那里抓一个过来

b)不用sudo,bash Anaconda2-*******.sh

c)一路回车,默认会装在~/anaconda2目录下,如果想装在别的地方,在看完那个巨长的一定要看但是肯定没人看的用户协议之后,输入安装目录

d)把anaconda2/bin加到你的PATH里

e)更新一下自己conda upgrade --all

做完上一步,你一定发现下包速度很慢了,按下面的来

# 添加Anaconda的TUNA镜像

conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/

# TUNA的help中镜像地址加有引号,需要去掉

# 设置搜索时显示通道地址

conda config --set show_channel_urls yes

2.2、配个环境

其实anaconda自带切环境功能,

conda create -n {env_name}

source activate {env_name}

conda install pip

更多操作看这里http://www.jianshu.com/p/169403f7e40c

3、装superset

https://superset.incubator.apache.org/installation.html

懒得看就直接:

写作“注意”,读作“坑”:如果你先装的pip,后装的anaconda,使用pip install superset的时候,使用pip -V看一下你使用的是系统默认的pip还是虚拟环境中的pip

a)刷一下pip install --upgrade setuptools pip

b)官方教你走一下这个流程

# Install supersetpipinstallsuperset

# Create an admin user (you will be prompted to set username, first and last name before setting a password)fabmanagercreate-admin--appsuperset# Initialize the databasesupersetdbupgrade# Load some data to play withsupersetload_examples# Create default roles and permissionssupersetinit# Start the web server on port 8088, use -p to bind to another portsupersetrunserver# To start a development web server, use the -d switch# superset runserver -d

以下是赠品

4、打通superset与kylin

4.1、安装pykylin

a)照着做:https://github.com/imaidata/pykylin

b)python setup.py install的时候可能会报README找不到,在setup.py里找到readme相关的两行代码注释之

b)在superset中添加数据源,source → databases → add record 然后这么填

kylin://{此处是账号}:{此处是密码}@{url}:{port}/kylin/api?project={project}

c)点test connection,等出现seems ok, 不过一般来说会报flask_wtf.csrf: The CSRF token has expired

一般来说这是缺少flask包导致的,conda install flask或者pip install flask

4.1、改pykylin源码

由于pykylin的代码已经比较陈旧,跟不上superset和kylin的更新

本次修改基于如下版本,不保证其他版本有效

superset:0.20.4

apache kylin:release 2.1

pykylin:https://github.com/imaidata/pykylin/commits/mastercommit9f5f2d7218f76b35c76a3bc3de22db4cbe09f61d

a) 添加table的时候会报get_table_names参数个数不对,修改pykylin的dialect.py,找到get_table_names和get_schema_names两个方法,将3个参数扩充为四个,姑且叫做unknown=None,如下图:


手把手教你起superset(附赠连kylin数据源)_第1张图片

b) count是kylin关键字,pykylin会将sql中的count替换为'__superset_count',但返回时未替换回来,所以需要修改cursor.py的execute方法。62行65行


手把手教你起superset(附赠连kylin数据源)_第2张图片

你可能感兴趣的:(手把手教你起superset(附赠连kylin数据源))