使用 Apache Superset 可视化 ClickHouse 数据

2022-07-22,,,,

apache superset是一个强大的bi工具,它提供了查看和探索数据的方法。它在 clickhouse 用户中也越来越受欢迎。

我们将介绍安装 superset 的 2 种方法,然后展示如何从 superset 连接到您的第一个 clickhouse 数据库。代码示例基于 ubuntu 18.04、superset 1.1.0 和 clickhouse-sqlalchemy 0.1.6。

方法一:python虚拟环境

第一种方法直接在您的主机上安装 superset。我们将首先创建一个 python 虚拟环境。以下是常用命令。

python3 -m venv clickhouse-sqlalchemy
. clickhouse-sqlalchemy/bin/activate
pip install --upgrade pi

安装并启动 superset

安装依赖包

sudo apt-get install build-essential libssl-dev libffi-dev python-dev python-pip libsasl2-dev libldap2-dev

处理与 clickhouse 的 superset 连接的命令。可能需要根据您的环境稍微调整。

export flask_app=superset
pip install apache-superset
superset db upgrade
superset fab create-admin
superset load_examples
superset init

安装 clickhouse-sqlalchemy 驱动程序

pip install clickhouse-sqlalchemy

clickhouse-driver 版本必须为 0.2.0 或更高版本。

pip freeze |grep clickhouse
clickhouse-driver==0.2.0
clickhouse-sqlalchemy==0.1.6

启动 superset 并登录

是时候开始 superset 了。运行以下命令:

superset run -p 8088 --with-threads --reload --debugger

浏览器访问 localhost:8088

您将看到如下所示的登录屏幕。输入您在 superset 安装期间定义的管理员登录名和密码(例如,admin/secret)。

方法 2:使用 docker compose 运行 superset

如果您不想纠结于 python 版本、虚拟环境和 pip。可以使用docker。

首先安装docker和docker-compose。

安装完成查看版本。

$ docker --version
docker version 19.03.4, build 9013bf583a
$ docker-compose --version
docker-compose version 1.29.1, build c34c88b2

使用docker-compose 安装superset

git clone https://github.com/apache/superset
cd superset
touch ./docker/requirements-local.txt
echo "clickhouse-driver>=0.2.0" >> ./docker/requirements-local.txt
echo "clickhouse-sqlalchemy>=0.1.6" >> ./docker/requirements-local.txt
docker-compose -f docker-compose-non-dev.yml up

运行成功后 浏览器访问 localhost:8088

默认登录名/密码是admin / admin

连接到 clickhouse

无论您选择哪种安装方法,您现在都可以连接到您的第一个 clickhouse 数据库。

登录后,您将看到一个屏幕,其中包含您最近的工作以及当前的仪表板。选择右上角的数据选项卡,然后选数据库。将出现一个页面,其中包含您当前的数据库连接。按+ 数据库按钮添加新数据库。

输入以下值:

数据库名称:clickhouse-public
sqlalchemy 网址:clickhouse+native://demo:demo@github.demo.trial.altinity.cloud /default?secure=true

altinity.cloud是一个公共的数据集站点。

按下测试连接按钮。成功后保存链接。

连接过程

连接使用了 sqlalchemy,这是一种用于连接 clickhouse 以及许多其他数据库的通用 api。

sqlalchemy 连接使用支持多个驱动程序的专用 url 格式。要连接到 clickhouse,您需要提供一个类似于我们之前显示的 url:

clickhouse+native://demo:demo@github.demo.trial.altinity.cloud/default?secure=true

连接clickhouse 有两个主要的协议,原生tcp和http。

建议使用原生tcp。

clickhouse+native://<user>:<password>@<host>:<port>/<database>[?options…]

配置superset

我们已经成功连接了clickhouse,下面我们使用superset建立一个仪表盘。

首先,让我们创建数据集。选择 clickhouse-public 作为连接,然后选择 schema default和 table ontime

有了数据集后,创建第一个图表就很简单了。只需单击数据集页面上的数据集名称。superset 将切换到一个屏幕来定义一个图表,如下所示。

创建一个时间序列图表

在仪表盘发布图表。

选择dashboard 按钮,将建立的图表添加进来。

以上就是apache superset可视化clickhouse数据的全过程了。

更多大数据,数据可视化技术,欢迎关注大数据流动~

《使用 Apache Superset 可视化 ClickHouse 数据.doc》

下载本文的Word格式文档,以方便收藏与打印。