Oracle 系统管理 - Linux 系统 - Backtrack 5 - 安全 - Juniper 技术 - Cisco 技术 - 思科模拟器 - Cisco 认证 - Cisco ios 下载

您现在的位置是:Docker > 云服务器 > Apache Kylin集成superset

Apache Kylin集成superset

时间:2018-08-10 09:56  来源:未知  阅读次数: 复制分享 我要评论

目前Kylin已经可以与superset进行集成,详细的说明可参考kylin官方文档: [ superset ]。

但是superset原生并不支持kylin,因此我们需要安装Kyligence公司提供的kylinpy工具。这是一个python的kylin客户端工具,可以通过输入命令获取相应的kylin信息。安装好这个工具之后,我们就可以通过superset连接kylin进行访问了。相应的安装步骤和使用,kylin在官方文档中已经说的非常清楚了,这里就不再一一赘述。这篇文档主要将非root权限下的kylinpy和superset安装以及相关配置。

由于所有的开发工作都是通过ssh连接至服务器完成,一般都是登录到个人账号或者某个公共账号进行操作。因此一般都没有root权限,每次安装软件都需要提交工单,申请root权限,非常麻烦。因此,这次集成Kylin与Superset都是在非root权限下操作的。下面是主要的安装步骤。

Python及相关软件安装

由于服务器上默认安装的是python2.7.3版本,已经比较旧了。因为我们在指定的路径中安装了2.7.9版本的,详细安装步骤如下所示:

  1. //下载相应版本的python源码
  2. wget https://www.python.org/ftp/python/2.7.9/Python-2.7.9.tgz
  3. //解压源码
  4. tar zxvf Python-2.7.9.tar.xz
  5. //编译与安装,--prefix选项可以执行安装目录,这三步都需要在源码目录下执行
  6. ./configure --prefix=/home/nrpt/kylin/usr
  7. make
  8. make install
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8

安装完成之后我们就可以在/home/nrpt/kylin/usr路径下看到安装好的python了。执行/home/nrpt/kylin/usr/bin/python可以验证是否安装成功:  python_whole  安装好了python之后,为了后面安装软件的方便,我们将路径/home/nrpt/kylin/usr/bin加入环境变量PATH中。这样,我们下次就可以直接使用python命令进行操作,而不需要使用/home/nrpt/kylin/usr/bin/python。修改完PATH变量之后还需要使用source命令更新一下,我们可以通过以下命令验证是否修改成功:  python_local  除此之外,我们还需要安装setuptools和pip,这两个软件的安装过程基本类似,我们以setuptools为例:

  1. //下载源码
  2. wget https://pypi.python.org/packages/0a/40/a740a4890d9cc8f725f67da158ab250d3926b874e0f7cb85bdc836e3d069/setuptools-24.0.0.tar.gz#md5=75e7269ab0425efe590acbc834575f13
  3. //解压源码
  4. tar zxvf setuptools-24.0.0.tar.gz
  5. //编译与安装,需要在源码目录下执行
  6. python setup.py build
  7. python setup.py install
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

pip的安装与上面基本一样,这里就不再赘述。由于我们在前面已经将自定义路径加入环境变量PATH中,因此,这里可以直接通过easy_install和pip命令使用我们自己安装的版本,而并非/usr/bin下面的easy_install和pip,可以通过which命令进行验证:  easy_install_pip  到这里,python相关的环境都已经安装完毕,我们在/home/nrpt路径下进行相应的python安装操作,使用的都是我们自己所安装的版本(位于/home/nrpt/kylin/usr/bin)。除了上面将../bin加入到环境变量PATH之外,我们还需要将/home/nrpt/kylin/usr/lib/python2.7/site-packages加入到环境变量PYTHONPATH中。这个是为了增加python模块的搜索路径。

kylinpy安装

为了在superset中连接kylin,我们首先需要安装kylinpy。在root权限下安装kylinpy非常简单,只需要通过下列命令即可:

pip install --upgrade kylinpy
  • 1
  • 1

但是我们现在需要在非root用户下安装到指定目录,就需要多一些操作,主要步骤如下所示:

  1. //从git上下载kylinpy源码
  2. https://github.com/Kyligence/kylinpy.git
  3. //在kylinpy目录下执行该命令
  4. pip install . --install-option="--prefix=/home/nrpt/kylin/usr/local" --ignore-installed --upgrade
  • 1
  • 2
  • 3
  • 4
  • 1
  • 2
  • 3
  • 4

其中,–ignore-installed选项表示忽略目前机器上已安装的相关软件,会将kylinpy所依赖的其他相关模块也重新安装到指定目录下。为了与python环境分开,我们将kylinpy安装到了/home/nrpt/kylin/usr/local路径下。安装完成后,我们同样将/home/nrpt/kylin/usr/local/bin添加到环境变量PATH中。因为我们安装到了新的路径,因此/home/nrpt/kylin/usr/local/lib/python2.7/site-packages路径也要加入到PYTHONPATH环境变量中。我们可以通过官方提供的命令来测试kylinpy是够安装成功了。如下所示:  kylinpy kylin服务也部署在该服务器上,所以直接使用localhost即可。该命令输出了project下的所有cube名称。可以看到,得到了正确的结果。因此,kylinpy已经安装成功。

superset安装

安装完kylinpy之后,我们需要安装superset。安装superset的过程与安装kylinpy类似,可以通过如下命令直接安装:

pip install superset --install-option="--prefix=/home/nrpt/kylin/usr/local" --ignore-installed --upgrade
  • 1
  • 1

在安装过程中会下载其他的一些依赖模块,如果下载速度很慢,可以尝试使用以下安装命令:

pip install -i https://pypi.tuna.tsinghua.edu.cn/simple superset --install-option="--prefix=/home/nrpt/kylin/usr" --ignore-installed
  • 1
  • 1

本人在实际安装过程中发现,使用第二条命令安装,比第一条命令安装要快的多。安装完成后,会在/home/nrpt/kylin/usr/local/lib/python2.7/site-packages下面看到superset对应的目录。此时,superset已经成功安装。安装完成之后,我们就可以启动superset进行kylin的连接配置了。  注:在本次安装过程中,并没有安装virtualenv,可能是由于root用户下之前已经安装了virtualenv,如果需要的话,读者可自行安装virtualenv,安装方法跟superset一样,直接使用pip安装即可。

superse初始化

关于superset的详细安装和配置信息可以参考:https://superset.incubator.apache.org/installation.html。我们在这里就只列举出一些重要的步骤。主要步骤如下所示:

  1. # Create an admin user (you will be prompted to set username, first and last name before setting a password)
  2. fabmanager create-admin --app superset
  3.  
  4. # Initialize the database
  5. superset db upgrade
  6.  
  7. # Load some data to play with
  8. superset load_examples
  9.  
  10. # Create default roles and permissions
  11. superset init
  12.  
  13. # Start the web server on port 8088, use -p to bind to another port
  14. superset runserver
  15.  
  16. # To start a development web server, use the -d switch
  17. # superset runserver -d
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17

superset默认启动在8088端口,可以通过配置文件进行修改,这里就不再一一赘述。启动之后,我们就可以通过web页面访问superset进行相应的操作了。可以看到,目前我们已经能够通过页面对superset进行访问了:  login_superset 通过第一步中创建的用户名和密码就可以登录进行操作了,目前,最新版本的superset已经支持中文了。至此,superset就已经安装完成,下面将继续介绍如何在superset中配置kylin,并进行访问。

superset配置连接kylin

superset安装成功之后,我们就可以在superset中进行配置,来访问kylin。首先,新增数据库,如下所示:  database_info 然后,在url中进行配置,可以通过如下url来配置对kylin的访问:

kylin://user:password@ip:7070/project
  • 1
  • 1

其中,user是用来登录kylin的用户名,ip是kylin部署的服务器,project是kylin中的project名称。我们可以对url进行测试连接,如下图所示:  test_url 可以看到,我们已经连接成功,learn_kylin就是我们kylin中对应的project。保存之后,我们可以查询该数据库的详细信息,如下图所示:  db_detail  配置完成之后,我们就可以在sql编辑器中使用测试sql进行相应的查询了,如下所示:  sql_superset 我们也可以在kylin中执行相同的sql来验证正确性:  sql_kylin 我们可以看到,查询结果一样。下面是测试sql:

  1. select YEAR_BEG_DT,
  2. MONTH_BEG_DT,
  3. WEEK_BEG_DT,
  4. META_CATEG_NAME,
  5. CATEG_LVL2_NAME,
  6. CATEG_LVL3_NAME,
  7. OPS_REGION,
  8. NAME as BUYER_COUNTRY_NAME,
  9. sum(PRICE) as GMV,
  10. sum(ACCOUNT_BUYER_LEVEL) ACCOUNT_BUYER_LEVEL,
  11. count(*) as CNT
  12. from KYLIN_SALES
  13. join KYLIN_CAL_DT on CAL_DT=PART_DT
  14. join KYLIN_CATEGORY_GROUPINGS on SITE_ID=LSTG_SITE_ID and KYLIN_CATEGORY_GROUPINGS.LEAF_CATEG_ID=KYLIN_SALES.LEAF_CATEG_ID join KYLIN_ACCOUNT on ACCOUNT_ID=BUYER_ID
  15. join KYLIN_COUNTRY on ACCOUNT_COUNTRY=COUNTRY
  16. group by YEAR_BEG_DT, MONTH_BEG_DT, WEEK_BEG_DT, META_CATEG_NAME, CATEG_LVL2_NAME, CATEG_LVL3_NAME, OPS_REGION, NAME
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16

至此,kylin与superset的集成就已经完成。我们就可以通过superset对kylin中的数据进行分析了。

相关资讯