【问题标题】:How can I structure my data to pre-aggregate distinct values over Days/Months/Years in one table?如何构建我的数据以在一张表中预聚合不同的天/月/年值?
【发布时间】:2019-10-27 18:04:54
【问题描述】:

我有一个非常大的数据集(每月 4 亿条记录),在我在 Power BI 中使用数据之前,我需要将其预聚合到一个表中。聚合表将在 Power BI 中运行得更快,但我需要在一个视觉对象中具有向下钻取功能,以便我逐年逐月向下钻取。问题是,当计算一天的不同客户和一个月的不同客户时,你本质上应该得到不同的数字。

是否可以创建一个表格,在一个视觉对象中呈现每个时间段的不同客户?

我尝试为每个时期创建一个表格,一个为每年不同的客户,一个为月,一个为天,但我无法将它们相互连接以在一个视觉对象中显示它们。

select  event_year,
        event_month,
        Event_day,
        AgeBracket,
        gender,
        race_desc,
        count(distinct ucn) as UniqueCustomers

from bistg.dbo.clickstreammonthsample a

group by 
        event_year,
        event_month,
        event_day,
        AgeBracket,
        gender,
        race_desc

不幸的是,在不使用多维数据集的情况下,不可能以任何方式对一个时期的不同值进行求和、计数或聚合,以便在新时期内找到一个新的不同值。

问题是为了让我们使用多维数据集,我们需要一台具有 600GB 内存的机器。

【问题讨论】:

    标签: sql powerbi distinct-values


    【解决方案1】:

    我建议您考虑两种不同的可能方法。

    首先,考虑内置的Power BI aggregations 功能。尽管您将使用三个单独的隐藏表,但该功能会自动在表之间切换,因此可以从正确的表中自动呈现相同的视觉效果,而不会在 DAX 中增加复杂性。如果 Date 是您要分割的唯一维度,我会推荐这种方法。

    其次,考虑一个自定义解决方案,我 blogged 将日/月/年聚合添加到单个表中,并执行一些复杂的 DAX 和数据建模以自动显示正确的聚合。该解决方案专为 Azure 分析服务(分析服务表格模型)而设计,但同样的方法适用于 Power BI。如果您的仪表板允许对日期维度、客户维度和其他维度进行切片,我会推荐此解决方案。

    【讨论】:

      猜你喜欢
      • 2018-07-19
      • 2023-03-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多