Apache Superset的配置和使用
关注【郑大钱呀】[公][众][号],回复
交流群
,进群,我们一起交流,一起学习。
1. 准备工作
-
Superset平台
已经搭建完毕 -
MySQL数据库
已经安装,并配置完成(包括数据库已经创建完成)
2. 数据源安装
superset支持如下数据源,一般情况下,只要数据源支持SqlAlchemy,superset应该都是能支持的,具体如下:
这里我们就是用Mysql的数据源,执行pip install mysqlclient
,嗷吼~,报错了,如图
WARNING: Discarding http://mirrors.cloud.aliyuncs.com/pypi/packages/6b/ba/4729d99e85a0a35bb46d55500570de05b4af10431cef174b6da9f58a0e50/mysqlclient-1.3.1.tar.gz#sha256=3549e8a61f10c8cd8eac6581d3f44d0594f535fb7b29e6090db3a0bc547b25ad (from http://mirrors.cloud.aliyuncs.com/pypi/simple/mysqlclient/). Command errored out with exit status 1: python setup.py egg_info Check the logs for full command output.
Downloading http://mirrors.cloud.aliyuncs.com/pypi/packages/6a/91/bdfe808fb5dc99a5f65833b370818161b77ef6d1e19b488e4c146ab615aa/mysqlclient-1.3.0.tar.gz (76 kB)
|████████████████████████████████| 76 kB 71.2 MB/s
ERROR: Command errored out with exit status 1:
command: /root/env/bigdataEnv/env_superset/bin/python -c 'import io, os, sys, setuptools, tokenize; sys.argv[0] = '"'"'/tmp/pip-install-o3ctm0lo/mysqlclient_59144b9eee4a4f1bbeab511376d7668f/setup.py'"'"'; __file__='"'"'/tmp/pip-install-o3ctm0lo/mysqlclient_59144b9eee4a4f1bbeab511376d7668f/setup.py'"'"';f = getattr(tokenize, '"'"'open'"'"', open)(__file__) if os.path.exists(__file__) else io.StringIO('"'"'from setuptools import setup; setup()'"'"');code = f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, __file__, '"'"'exec'"'"'))' egg_info --egg-base /tmp/pip-pip-egg-info-lmcdz_ey
cwd: /tmp/pip-install-o3ctm0lo/mysqlclient_59144b9eee4a4f1bbeab511376d7668f/
Complete output (10 lines):
/bin/sh: mysql_config: command not found
Traceback (most recent call last):
File "<string>", line 1, in <module>
File "/tmp/pip-install-o3ctm0lo/mysqlclient_59144b9eee4a4f1bbeab511376d7668f/setup.py", line 17, in <module>
metadata, options = get_config()
File "/tmp/pip-install-o3ctm0lo/mysqlclient_59144b9eee4a4f1bbeab511376d7668f/setup_posix.py", line 47, in get_config
libs = mysql_config("libs_r")
File "/tmp/pip-install-o3ctm0lo/mysqlclient_59144b9eee4a4f1bbeab511376d7668f/setup_posix.py", line 29, in mysql_config
raise EnvironmentError("%s not found" % (mysql_config.path,))
OSError: mysql_config not found
通过执行yum install mysql-devel
命令,安装mysql-devel,成功解决,再次执行pip install mysqlclient
成功解决。
3. 数据源配置
安装完成后,我们就可以配置数据源了,进入superset平台,依次点击如下菜单:Data - Databases
,进入数据源添加页面,如下图:
点击右上角的加号按钮,添加数据源,这里我们以MySQL为例,主要填写两个参数:Database
即数据库的名称和SQLAlchemy URI
,URI的链接方式可以参考官网,MySQL的相关信息如下:
但是我用这个连接串mysql+mysqldb://account:password@ip:port/superset?charset=utf8
去连接的时候,却报错:
ERROR: Unexpected error occurred, please check your logs for details
于是就换成了用PyMySQL
来连接,先使用执行如下命令安装PyMySQLpip install PyMySQL
,填入连接串mysql+pymysql://account:password@ip:port/superset?charset=utf8
,点击Test Connection
连接成功,弹框提示Seems OK!
。
其他选项根据自己需要填写,填写完成后,点击保存
按钮即可。然后就能在数据源中看到记录了,如下图:
4. 通过CSV建表并导入数据
我们以 tushare
的机构席位数据为例,获取数据,需要使用pip install tushare
命令提前装好tushare,具体代码如下:
import tushare as ts
df=ts.cap_tops()
df.to_csv('C:\\Users\\Administrator\\Desktop\\cap_tops_data.csv')
执行完成后,会在我们的桌面上生成一个csv的数据文件,下面我们把数据导入到数据库的表中,进入首页,依次点击菜单Data-Upload a CSV
,进入CSV数据上传界面,如下图:
主要填写如下内容:
- Table Name:输入表名,
tk_cap_tops
- 上传CSV文件
- 将
Table Exists
,修改为Replace
,如果表存在会将其覆盖。 - 点击
保存
即可,没有报错的话,应该就是上传成功了
此时我们去查询一下数据库,就有数据了,如图:
5. 配置数据表
进入superset平台,依次点击如下菜单:Data-Datasets
,进入数据表配置页面,如下图:
点击右上角的加号
,进入配置界面,选择数据源和刚才创建的表,保存即可,如下图:
成功后,就会显示你添加的记录了
6. 新增仪表盘
进入superset平台,依次点击Dashboards
菜单,进入仪表盘配置页面,如下图:
点击右上角的加号
,添加一个新的仪表盘,填写完信息,保存即可。
保存完成后,就会显示你添加的记录了
7. 配置仪表盘图表
当仪表盘新增完后,仪表盘里面是空的,我们需要为其添加图表,进入superset平台,依次点击Charts
菜单,为仪表盘配置图表
选择我们之前创建的表以及可视化的表类型,如下图:
选择完成后,点击CREATE NEW CHART
,进入图表编辑页面,根据需求编辑一下数据,然后保存,并将图表添加在仪表盘中,这时候就能在面板看到我们的图标和数据了,如下图: