连接 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,然后单击按钮以添加一个新图表。您将看到许多选项。以下示例展示了一个 Pie Chart 图表,使用的是 uk_price_paid 数据集从 CHOOSE A DATASET 下拉菜单中选择:

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


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

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

- 就这样。基于 ClickHouse 数据在 Superset 中构建仪表板打开了一个快速数据分析的新世界!
