美文网首页
手把手教你起superset(附赠连kylin数据源)

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

作者: 很瘦很瘦的假面 | 来源:发表于2017-12-20 17:14 被阅读0次

    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,如下图:

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

    相关文章

      网友评论

          本文标题:手把手教你起superset(附赠连kylin数据源)

          本文链接:https://www.haomeiwen.com/subject/joagwxtx.html