Loading...
墨滴

郑大钱呀

2021/08/25  阅读:49  主题:嫩青

Apache Superset的配置和使用

1. 准备工作

  1. Superset平台已经搭建完毕
  2. 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 1in <module>
      File "/tmp/pip-install-o3ctm0lo/mysqlclient_59144b9eee4a4f1bbeab511376d7668f/setup.py", line 17in <module>
        metadata, options = get_config()
      File "/tmp/pip-install-o3ctm0lo/mysqlclient_59144b9eee4a4f1bbeab511376d7668f/setup_posix.py", line 47in get_config
        libs = mysql_config("libs_r")
      File "/tmp/pip-install-o3ctm0lo/mysqlclient_59144b9eee4a4f1bbeab511376d7668f/setup_posix.py", line 29in 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数据上传界面,如下图:

主要填写如下内容:

  1. Table Name:输入表名,tk_cap_tops
  2. 上传CSV文件
  3. Table Exists,修改为Replace,如果表存在会将其覆盖。
  4. 点击保存即可,没有报错的话,应该就是上传成功了 此时我们去查询一下数据库,就有数据了,如图:

5. 配置数据表

进入superset平台,依次点击如下菜单:Data-Datasets,进入数据表配置页面,如下图:

点击右上角的加号,进入配置界面,选择数据源和刚才创建的表,保存即可,如下图:

成功后,就会显示你添加的记录了

6. 新增仪表盘

进入superset平台,依次点击Dashboards菜单,进入仪表盘配置页面,如下图:

点击右上角的加号,添加一个新的仪表盘,填写完信息,保存即可。

保存完成后,就会显示你添加的记录了

7. 配置仪表盘图表

当仪表盘新增完后,仪表盘里面是空的,我们需要为其添加图表,进入superset平台,依次点击Charts菜单,为仪表盘配置图表

选择我们之前创建的表以及可视化的表类型,如下图:

选择完成后,点击CREATE NEW CHART,进入图表编辑页面,根据需求编辑一下数据,然后保存,并将图表添加在仪表盘中,这时候就能在面板看到我们的图标和数据了,如下图:

可以搜索微信公众号【郑大钱呀】关注我们,更多精彩内容等着你。

郑大钱呀

2021/08/25  阅读:49  主题:嫩青

作者介绍

郑大钱呀

微信搜索【郑大钱呀】公众号