Apache Kylin集成superset

xiaoxiao2021-02-28  13

目前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版本的,详细安装步骤如下所示:

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

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

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

pip的安装与上面基本一样,这里就不再赘述。由于我们在前面已经将自定义路径加入环境变量PATH中,因此,这里可以直接通过easy_install和pip命令使用我们自己安装的版本,而并非/usr/bin下面的easy_install和pip,可以通过which命令进行验证:  到这里,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

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

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

其中,–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是够安装成功了。如下所示: 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

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

pip install -i https://pypi.tuna.tsinghua.edu.cn/simple superset --install-option="--prefix=/home/nrpt/kylin/usr" --ignore-installed 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。我们在这里就只列举出一些重要的步骤。主要步骤如下所示:

# 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 1234567891011121314151617

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

superset配置连接kylin

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

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

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

select YEAR_BEG_DT, MONTH_BEG_DT, WEEK_BEG_DT, META_CATEG_NAME, CATEG_LVL2_NAME, CATEG_LVL3_NAME, OPS_REGION, NAME as BUYER_COUNTRY_NAME, sum(PRICE) as GMV, sum(ACCOUNT_BUYER_LEVEL) ACCOUNT_BUYER_LEVEL, count(*) as CNT from KYLIN_SALES join KYLIN_CAL_DT on CAL_DT=PART_DT 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 join KYLIN_COUNTRY on ACCOUNT_COUNTRY=COUNTRY group by YEAR_BEG_DT, MONTH_BEG_DT, WEEK_BEG_DT, META_CATEG_NAME, CATEG_LVL2_NAME, CATEG_LVL3_NAME, OPS_REGION, NAME 12345678910111213141516

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

参考文档

superset官方文档linux下python安装到指定目录kylinpy官方git地址kylin集成superset官方文档更换pip源为Python添加默认模块搜索路径pip安装package到不同的路径

选自:https://blog.csdn.net/skyyws/article/details/79529540

转载请注明原文地址: https://www.6miu.com/read-1900103.html

最新回复(0)