白杨商业智能工作室
#Power BI#最佳实践

近似去重计数:快但准吗?

· 白杨BI工作室

9 月 Power BI 更新后,Import 模式和 Direct Lake 模式的语义模型开始支持 `ApproximateDistinctCount()` 这个 DAX 函数。 我在一个 14 亿行的 Direct Lake 语义模型上做了测试,数据来自纽约出租车样本。

近似去重计数:快但准吗?

一个让人又爱又恨的新函数

9 月 Power BI 更新后,Import 模式和 Direct Lake 模式的语义模型开始支持 ApproximateDistinctCount() 这个 DAX 函数。

我在一个 14 亿行的 Direct Lake 语义模型上做了测试,数据来自纽约出租车样本。结果不出所料:大多数场景下,它比常规去重计数快得多。

实测数据:快,但有代价

先看一组对比。

常规去重计数(按日期统计 Total Amount 的去重值):

  • 耗时约 6 秒
  • CPU 时间约 82 秒
  • 内存占用 206,294 KB

近似去重计数(同样的查询):

  • 耗时约 4 秒
  • CPU 时间约 48 秒
  • 内存占用 1,063,476 KB

速度提升明显,CPU 消耗也大幅降低。但有意思的是,内存占用反而高了不少。

考虑到去重计数往往是 DAX 查询变慢、CU 消耗飙升的罪魁祸首,这个性能改进还是相当可观的。

真正的问题:业务方不买账

性能提升是好事,但 ApproximateDistinctCount() 有一个大问题:你的最终用户可能不接受。

想象一下,你跑去跟老板说:「好消息!报表速度翻倍了,唯一的代价是新的近似去重计数和真实值只差大约 1.6%。」

老板大概率会不高兴,然后回你一句:「数字必须 100% 准确,否则我没法做决策。」

这话当然大概率是扯淡——大多数情况下,近似去重计数足够支撑决策了。

肉眼根本看不出差别

我把上面测试的查询做成了两张折线图,结果是这样的:

两张图用肉眼完全分不出来。

1.6% 的偏差在可视化层面几乎不可见,但业务方对「近似」这个词的抵触却是真实存在的。

国内用户怎么看?

国内 BI 场景里,这个问题同样存在。很多企业的报表会直接给到财务、运营做考核依据,数字对不上就是大问题。

我的建议是:

  • 对内部分析、探索性看板:大胆用近似计数,性能收益很实在
  • 对外报表、考核口径:还是老老实实用精确去重
  • 如果一定要用:提前和业务方沟通清楚误差范围,别等上线了再解释

技术上的最优解,不一定等于业务上的最优解。这个函数很好用,但用在哪里,得想清楚。

相关文章

Power BI 和 Microsoft Fabric 的 Databricks ADBC 连接器正式发布

Power BI 和 Microsoft Fabric 的 Databricks ADBC 连接器正式发布

微软正在把 Power Query 连接器的底层驱动从 ODBC 迁到 ADBC,这次轮到 Databricks。适用于 Power BI 和 Microsoft Fabric 的 Databricks ADBC 连接器已正式 GA(Generally Available,正式发布)。

#技术分享#Power BI#Fabric#语义模型
Power BI 2026 年 10 月功能摘要

Power BI 2026 年 10 月功能摘要

距离上一次九月更新才过去没多久,而且当时还赶上了欧洲 Microsoft Fabric + SQL 社区大会,更新量已经不小。

#技术分享#Power BI#Fabric#Copilot
Microsoft Data Factory 的 Amazon Redshift V2 连接器

Microsoft Data Factory 的 Amazon Redshift V2 连接器

微软正在对 Amazon Redshift 连接器进行重要升级,底层驱动将从旧版切换至全新的 Amazon Redshift ODBC 2.x。

#技术分享#Power BI#Fabric
F2容量跑通完整报表方案

F2容量跑通完整报表方案

很多团队一提到 Microsoft Fabric,第一反应就是:F2 这种小容量能干嘛? 跑个 Demo 都嫌卡,更别说承载一套完整的报表解决方案了。

#技术分享#Power BI#最佳实践
近似去重反而更慢?

近似去重反而更慢?

做 DAX 性能优化的人,看到 `APPROXIMATEDISTINCTCOUNT` 这个新函数,第一反应多半是:终于有办法治 `DISTINCTCOUNT` 这个性能杀手了。 但最近一轮实测下来,结论有点打脸——在某些场景下,近似去重反而比精确去重更慢。

#Power BI#最佳实践
微软与 Snowflake 共同致力于 Apache Ossie

微软与 Snowflake 共同致力于 Apache Ossie

语义层正在成为 AI 驱动分析的关键基础设施,但一个老问题始终困扰着数据团队:同一套业务指标定义,往往要在不同平台之间反复重建。微软与 Snowflake 近期联合宣布对 Apache Ossie(孵化中)项目的承诺,正是冲着这个痛点去的。

#技术分享#Power BI#Fabric#语义模型
有问题?加企业微信 1 对 1 交流 👇
➕ 添加企业微信
备注「白杨」优先通过 · 数据洞察与智能决策
企业微信
企业微信
备注「白杨」优先通过