将 Superset 连接到 ClickHouse
Apache Superset 是一个用 Python 编写的开源数据探索和可视化平台。 Superset 使用 ClickHouse 提供的 Python 驱动程序与 ClickHouse 连接。让我们看看它是如何工作的...
目标
在本指南中,您将使用来自 ClickHouse 数据库的数据在 Superset 中构建一个仪表板。该仪表板将如下所示:

如果您没有可用的数据集,可以添加示例之一。本指南使用 UK Price Paid 数据集,因此您可以选择该数据集。在同一文档类别中还有其他几个数据集供您查看。
1. 收集连接详情
要通过 HTTP(S) 连接到 ClickHouse,您需要以下信息:
-
HOST 和 PORT:通常情况下,使用 TLS 时端口为 8443,不使用 TLS 时端口为 8123。
-
数据库名称:默认情况下,有一个名为
default
的数据库,请使用您要连接的数据库名称。 -
用户名和密码:默认情况下,用户名为
default
。请使用适合您用例的用户名。
您的 ClickHouse Cloud 服务的详细信息可以在 ClickHouse Cloud 控制台中找到。选择您要连接的服务并点击 Connect:

选择 HTTPS,并且详细信息可以在一个示例 curl
命令中找到。

如果您使用自管理的 ClickHouse,连接详细信息由您的 ClickHouse 管理员设置。
2. 安装驱动程序
- Superset 使用
clickhouse-connect
驱动程序连接到 ClickHouse。clickhouse-connect
的详细信息可在 https://pypi.org/project/clickhouse-connect/ 上找到,可以通过以下命令安装:
- 启动(或重启)Superset。
3. 将 Superset 连接到 ClickHouse
- 在 Superset 中,从顶部菜单选择 Data,然后从下拉菜单中选择 Databases。通过单击 + Database 按钮添加新数据库:

- 在第一步中,选择 ClickHouse Connect 作为数据库类型:

- 在第二步中:
- 设置 SSL 开或关。
- 输入您之前收集的连接信息。
- 指定 DISPLAY NAME:这可以是您喜欢的任何名称。如果您将连接多个 ClickHouse 数据库,则可以使名称更具描述性。

- 单击 CONNECT 然后 FINISH 按钮完成设置向导,您应该能在数据库列表中看到您的数据库。
4. 添加数据集
-
要在 Superset 中与 ClickHouse 数据交互,您需要定义一个 dataset。在 Superset 的顶部菜单中,选择 Data,然后从下拉菜单中选择 Datasets。
-
单击添加数据集的按钮。选择新数据库作为数据源,您应该能看到数据库中定义的表:
- 单击对话框底部的 ADD 按钮,您的表将出现在数据集列表中。您准备好构建仪表板并分析 ClickHouse 数据了!
5. 在 Superset 中创建图表和仪表板
如果您熟悉 Superset,那么在接下来的部分中您会感到如鱼得水。如果您是 Superset 的新手,那...这就像世界上许多其他很酷的可视化工具 - 开始使用并不需要太久,但随着您使用这个工具,更多的细节和微妙之处会随着时间的推移而不断学习。
- 您从仪表板开始。在 Superset 的顶部菜单中,选择 Dashboards。单击右上角的按钮以添加新仪表板。以下仪表板命名为 UK property prices:

- 要创建新图表,从顶部菜单中选择 Charts,然后单击添加新图表的按钮。您将会看到许多选项。以下示例显示的是使用 CHOOSE A DATASET 下拉菜单中的 uk_price_paid 数据集创建的 饼图(Pie Chart):

- Superset 饼图需要一个 Dimension 和一个 Metric,其余设置为可选。您可以为维度和指标选择自己的字段,此示例使用 ClickHouse 字段
district
作为维度,AVG(price)
作为指标。


- 如果您更喜欢甜甜圈图而不是饼图,可以在 CUSTOMIZE 下设置此选项和其他选项:

- 单击 SAVE 按钮以保存图表,然后在 ADD TO DASHBOARD 下拉菜单中选择 UK property prices,然后 SAVE & GO TO DASHBOARD 保存图表并将其添加到仪表板:

- 就这样。在 Superset 中根据 ClickHouse 中的数据构建仪表板为快速的数据分析开启了全新的世界!
