滚动窗口内应用崩溃交集统计的DAX实现与优化问题
问题描述
需求背景
已有基于App Telemetry事实表、App Info维度表的滚动窗口DAX计算,可正常统计应用崩溃数据。现需实现:统计两个应用(如Teams与Outlook)在同一3分钟滚动窗口内的崩溃交集计数。
现有问题
尝试编写关联AAD token broker插件与Microsoft Outlook崩溃的DAX计算时,出现Query exceeds available resources资源超限问题,即使缩短时间范围仍无法运行,需简化优化该DAX查询。
参考代码
原滚动崩溃统计DAX代码
-- 筛选应用示例 AppInfo[AppName] = "outlook" AppInfo[AppName] = "teams" Rolling Failures = SUMX ( WINDOW ( -3, REL, 3, REL, SUMMARIZE(ALLSELECTED('App Telemetry'),'App Info'[BaseCode],'App Info'[AppName], 'App Info'[AppVersion], 'App Info'[DeviceName], 'App Telemetry'[Crashes], 'App Telemetry'[WaitTimeMS], 'App Telemetry'[TimeStamp]), ORDERBY('App Telemetry'[TimeStamp], ASC), PARTITIONBY ('App Info'[BaseCode], 'App Info'[AppName], 'App Info'[AppVersion], 'App Info'[DeviceName] ) ), CALCULATE(SUM('App Telemetry'[Failures])) )
尝试的关联统计DAX代码(出现资源超限)
Rolling AAD Failures = SUMX( WINDOW( -3, REL, 3, REL, SUMMARIZE( ALLSELECTED('App Telemetry'), 'App Info'[BaseCode], 'App Info'[AppName], 'App Info'[AppVersion], 'App Info'[DeviceName], 'App Telemetry'[Crashes], 'App Telemetry'[WaitTimeMS], 'App Telemetry'[TimeStamp] ), ORDERBY( 'App Telemetry'[TimeStamp], ASC ), PARTITIONBY( 'App Info'[BaseCode], 'App Info'[AppName], 'App Info'[AppVersion], 'App Info'[DeviceName] ) ), IF( CALCULATE( SUM('App Telemetry'[Failures]), 'App Info'[AppName] = "AAD token broker plugin" ) > 0, CALCULATE( SUM('App Telemetry'[Failures]), 'App Info'[AppName] = "Microsoft Outlook" ), 0 ) )
内容的提问来源于stack exchange,提问作者Dr.YSG
相关产品推荐
相关产品推荐

