Superset数据看板平台搭建

Superset数据看板平台搭建
AllenTTSuperset 是一个现代数据探索和数据可视化平台。Superset 可以替代或增强许多团队的专有商业智能工具。Superset 与各种数据源很好地集成。
Superset 提供:
- 用于快速构建图表的无代码界面
- 一个强大的、基于 Web 的 SQL 编辑器 ,用于高级查询
- 用于快速定义自定义维度和指标的轻量级语义层
- 对几乎任何 SQL 数据库或数据引擎的开箱即用支持
- 各种精美的可视化效果来展示您的数据,从简单的条形图到地理空间可视化效果
- 轻量级、可配置的 缓存层 ,有助于减轻数据库负载
- 高度可扩展的安全角色和身份验证选项
- 用于编程自定义的 API
- 专为扩展而设计的云原生架构
在Centos上用Conda安装
- 系统基础依赖安装
- 旧版的centos上:
sudo yum install gcc gcc-c++ libffi-devel python-devel python-pip python-wheel openssl-devel cyrus-sasl-devel openldap-devel - 较为新版的centos上:
sudo dnf install gcc gcc-c++ libffi-devel python3-devel python3-pip python3-wheel openssl-devel cyrus-sasl-devel openldap-devel- 如果后续看到有报错sasl的错误,再安装
yum install cyrus-sasl-plain cyrus-sasl-devel cyrus-sasl-gssapi # 非必须:添加hive连接时报错sasl相关错误时需要
- 如果后续看到有报错sasl的错误,再安装
- 旧版的centos上:
- conda安装python依赖包
conda create -n py39superset python=3.9# 最低需要3.9conda activate py39supersetpip install --upgrade pip# 不能太老版本的pippip install apache-superset -i https://mirrors.aliyun.com/pypi/simpleexport SUPERSET_SECRET_KEY="oh-my-recommend" && export FLASK_APP="superset"# 配置环境变量superset db upgrade# 初始化dbsuperset fab create-admin# Create an admin user in your metadata database (useadminas username to be able to load the examples)superset load_examples# (可选) 从网络上加载个demo数据集用于play(大概率会遭遇网络问题,建议跳过本步骤)superset init# 创建默认角色和权限pip install pyhive sasl thrift thrift-sasl pyhs2 -i https://mirrors.aliyun.com/pypi/simple/# 连接hive需要的依赖包
- 在开发环境启动:
SUPERSET_SECRET_KEY="oh-my-recommend" FLASK_APP=superset superset run -h '0.0.0.0' -p 9999 --with-threads --reload --debugger# To start a development web server on port 9999, use -p to bind to another port (服务器上记得开放9999端口)- 然后用ip:9999在浏览器访问即可。本地的话ip可以用localhost,服务器上可用公网ip访问(
curl cip.cc可获取到公网IP)
界面改成中文
- 修改
~/.conda/envs/py39superset/lib/python3.9/site-packages/superset/config.py文件1
2
3
4
5
6
7
8# 找到 BABEL_DEFAULT_LOCALE 将其改为
BABEL_DEFAULT_LOCALE = "zh"
# 找到 LANGUAGES = {} 将其改为
LANGUAGES = {
"en": {"flag": "us", "name": "English"},
"zh": {"flag": "cn", "name": "简体中文"},
} - 重启服务生效
SuperSet连接Hive数据库
- 点击右上角
Settings->数据库连接->+DATABASE->Apache Hive - 在
SQLAlchemy URI中输入hive://hive@localhost:10000/default,点击TEST CONNECTION测试连接是否成功 - 在
ADVANCED选项卡中,在Other的Engine Parameters中输入{"connect_args":{"configuration":{"hive.execution.engine":"tez"}}}以启用tez引擎而非默认的MR引擎 - 最后点击
CONNECT完成即可(可能弹出报错,但忽略并刷新网页即可)
SuperSet连接Spark-SQL
- 点击右上角
Settings->数据库连接->+DATABASE->Apache Spark SQL - 在
SQLAlchemy URI中输入hive://hive@localhost:10001/default(默认是10000和hiveserver冲突),点击TEST CONNECTION测试连接是否成功- 需要启动Spark Thrift Server服务:
$SPARK_HOME/sbin/start-thriftserver.sh --hiveconf hive.server2.thrift.port=10001
- 需要启动Spark Thrift Server服务:
- 最后点击
CONNECT完成即可 - (可选)解决获取不到表名的问题:手动改pyhive的代码,将
/root/miniconda3/envs/py39superset/lib/python3.9/site-packages/pyhive/sqlalchemy_hive.py中的get_table_names函数中return [row[0] for row in connection.execute(text(query))]的改为return [row[0] if len(row)!=3 else row[1] for row in connection.execute(text(query))]
创建图表和看板
- 点击
数据集TAB,点击+DATASET按钮 - 选择
Database->Schema->Table->Create dataset and create chart,完成将Hive的一张表映射为这里的DataSet - 选择
Line Chart为例- DATA 子选项卡
- X-AXIS:选择做为x轴的列。常用的如:日期
- METRICS:选择做为y轴的指标(可多选)。如:次留,首日LTV等
- DIMENSIONS:选择做为分组对比的列。如:分实验组看多天的次留指标趋势,这里的实验组就是DIMENSIONS
- FILTERS:等效于SQL中的WHERE/HAVING语句,过滤一些不要的数据。如:按天分区筛选
- 其他:大部分时候保持默认即可
- CUSTOMIZE 子选项卡
- X Axis:配置x轴标题以及标题离刻度的距离。中文建议距离30而非默认的15
- Y Axis:配置y轴标题以及标题离刻度的距离。中文建议默认的15即可,Y Axis Title Position建议选Top而非默认的Left
- SHOW VALUE:显示每个点的值,适合少量数据或条形图
- MARKER:加粗显示每个点
- DATA ZOOM:显示拖动条,可拖动X轴的刻度范围,如日期可拖动选择任意一段时间内的数据显示
- Y AXIS FORMAT:可选择百分数显示
- TRUNCATE Y AXIS:截断Y轴的空白区域
- DATA 子选项卡





