Skip to main content
Microsoft Power BI 可以从 ClickHouse Cloud 或自管理部署中查询数据,或将数据加载到内存中。 你可以使用多种 Power BI 版本来可视化数据:
  • Power BI Desktop:用于创建仪表盘和可视化内容的 Windows 桌面应用
  • Power BI Service:Azure 中提供的 SaaS 服务,用于托管在 Power BI Desktop 中创建的仪表盘
Power BI 要求你先在 Desktop 版本中创建仪表盘,然后将其发布到 Power BI Service。 本教程将指导你完成以下操作:

前置条件

Power BI 安装

本教程假设你已在 Windows 计算机上安装 Microsoft Power BI Desktop。你可以在这里下载并安装 Power BI Desktop。 我们建议将 Power BI 更新到最新版本。自版本 2.137.751.0 起,默认提供 ClickHouse 连接器。

收集你的 ClickHouse 连接信息

你需要以下信息来连接到你的 ClickHouse 实例:
  • Hostname - ClickHouse 主机名
  • 用户名 - 用户凭据中的用户名
  • 密码 - 该用户的密码
  • Database - 你要连接的实例上的数据库名称

Power BI 桌面版

要开始在 Power BI Desktop 中查询数据,您需要完成以下步骤:
  1. 安装 ClickHouse ODBC 驱动程序
  2. 查找 ClickHouse 连接器
  3. 连接到 ClickHouse
  4. 查询并可视化数据

安装 ODBC 驱动程序

下载最新的 ClickHouse ODBC 发行版 运行随附的 .msi 安装程序,并按照安装向导完成安装。
Debug symbols 为可选项,并非必需。

验证 ODBC 驱动程序

驱动程序安装完成后,你可以通过以下步骤验证是否安装成功: 在开始菜单中搜索 ODBC,然后选择“ODBC 数据源 (64-bit)”。
确认列表中包含 ClickHouse Driver。

查找 ClickHouse 连接器

适用于 Power BI Desktop 2.137.751.0 版本
在 Power BI Desktop 启动界面上,点击“获取数据”。
搜索“ClickHouse”

连接到 ClickHouse

选择连接器,然后输入 ClickHouse 实例的凭据:
  • Host (必填) - 实例的域名/地址。请确保不要添加任何前缀/后缀。
  • Port (必填) - 实例的端口。
  • Database - 数据库名称。
  • Options - ClickHouse ODBC GitHub 页面中列出的任意 ODBC 选项
  • Data Connectivity mode - DirectQuery

建议选择 DirectQuery,以直接查询 ClickHouse。如果数据量较小,也可以选择导入模式,全部数据都会加载到 Power BI 中。
  • 指定用户名和密码

查询和可视化数据

最后,你应该能在 Navigator 视图中看到数据库和表。选择所需的表,然后点击“Load”,以 从 ClickHouse 导入数据。
导入完成后,你就可以像平常一样在 Power BI 中访问 ClickHouse 数据。

Power BI Service

若要使用 Microsoft Power BI Service,您需要创建一个本地数据网关 有关设置自定义连接器的更多信息,请参阅 Microsoft 关于如何通过本地数据网关使用自定义数据连接器的文档。

ODBC 驱动程序 (仅导入)

我们建议使用支持 DirectQuery 的 ClickHouse 连接器。 请按上述说明,在本地数据网关实例上安装 ODBC 驱动程序,并进行验证

创建新的用户 DSN

驱动程序安装完成后,即可创建 ODBC 数据源。在开始菜单中搜索 ODBC,然后选择“ODBC 数据源 (64-bit) ”。
我们需要在这里添加一个新的用户 DSN。点击左侧的“添加”按钮。
选择 ODBC 驱动程序的 Unicode 版本。
填写连接信息。
如果你使用的是已启用 SSL 的部署 (例如 ClickHouse Cloud 或自管理实例) ,则应在 SSLMode 字段中填写 require
  • Host 应始终省略协议 (即不要包含 http://https://) 。
  • Timeout 是一个表示秒数的整数。默认值:30 seconds

将数据导入 Power BI

如果您尚未安装 Power BI, 请下载并安装 Power BI Desktop 在 Power BI Desktop 启动屏幕上,单击“获取数据”。
选择“Other”->“ODBC”。
从列表中选择您之前创建的数据源。
如果您在创建数据源时未指定凭据,系统会提示您输入用户名和密码。

最后,您应会在 Navigator 视图中看到数据库和表。选择所需的表,然后单击“Load”从 ClickHouse 导入数据。
导入完成后,您就可以像往常一样在 Power BI 中访问 ClickHouse 数据。

优化大规模数据集的使用体验

PowerBI 是为传统的行式数据库和中等数据量场景设计的。在大规模使用 ClickHouse (数十亿行数据) 时,需要采用特定的架构模式才能获得最佳性能。 PowerBI 会自动生成包含嵌套子查询、复杂 JOIN 以及即时转换的 SQL 查询。这些模式在传统 SQL 数据库中运行良好,但在大规模查询 ClickHouse 这类列式数据库时,效率可能并不理想。 大型数据集的推荐做法: 不要直接查询原始表,而是为每个仪表盘可视化在 ClickHouse 中创建专用的 materialized views。这样可以获得:
  • 无论数据量大小如何,都能保持稳定且快速的性能
  • 降低 ClickHouse 集群负载
  • 更可预测的成本
如果你的仪表盘很慢,请检查 ClickHouse 的 query_log,查看 Power BI 实际执行了哪些 SQL 查询。常见问题包括嵌套子查询、扫描整张表,或低效的 JOIN。一旦定位到问题,就创建能够解决这些具体问题的 materialized views

实施最佳实践

预聚合策略

在多个聚合级别创建 materialized view:
  • 对近期的详细仪表盘使用按小时聚合
  • 对历史趋势使用按天聚合
  • 对长期报表使用按月 rollup
  • 保留具有适当生存时间 (TTL) 的原始数据,以便进行临时分析

数据建模优化

  • 定义与查询模式相匹配的 ORDER BY
  • 对时间序列数据进行分区
  • 将小型维度表转换为字典,以提高查找效率
  • 利用投影进一步优化查询

已知限制

UInt64

UInt64 及更大的无符号整数类型不会自动加载到数据集中,因为 Int64 是 Power BI 支持的最大整数类型。
要正确导入数据,请先在 Navigator 中点击“转换数据”,再点击“Load”按钮。
在此示例中,pageviews 表有一个 UInt64 列,默认会被识别为“二进制”。 点击“转换数据”会打开 Power Query Editor,我们可以在其中重新指定该列的类型,例如将其设置为 文本。
完成后,点击左上角的“关闭并应用”,然后继续加载数据。
最后修改于 2026年7月24日