【问题标题】:Edit Power BI (pbix) file in a text editor在文本编辑器中编辑 Power BI (pbix) 文件
【发布时间】:2021-09-24 04:01:00
【问题描述】:

我有一个非常有才华和深思熟虑的数据仓库团队。数据建模器创建的列的名称对用户来说很有意义。但现在我正在尝试使用 Power BI。它似乎在一个模型良好的数据集市上受到冒犯。

在我的一张桌子上,我有几十个小节。当我将此表带入 Power BI 时,它们是旁边带有 sigma 符号的“列”,表明它们是隐式度量。这些似乎在 Power BI 报表上工作正常。但现在我明白了为什么我参加的培训说要创建自己的度量而不使用隐式度量:Power BI 分页报告(可能还有其他原因)。我想在分页报表中使用的每个度量都必须是 Power BI“度量”。

我的所有专栏都已正确命名。但我无法创建与列同名的度量。所以 Power BI 似乎希望我使用的解决方案是:

  1. 右键单击隐式度量(列)
  2. 选择重命名
  3. 借用列名
  4. 输入
  5. 等待 Power BI 验证整个文件(“正在处理它...”)
  6. 右键单击表格中的列(因为我希望表格中的度量为 用户/报告开发者清楚)
  7. 选择“新措施”
  8. 键入度量的 DAX 表达式
  9. 等待 Power BI 验证整个文件(“正在处理它...”)
  10. 右键单击刚刚转换的列并选择“隐藏”

当有几十或几百列要转换时,这可能会变得相当乏味。

我有一个部分解决方案:我编写了一个 SQL 脚本,它输出我可以使用正则表达式编辑的 M 表达式(以破坏数据库中已有的好名称)并粘贴到 Power Query 中的高级编辑器中。

我可以执行类似的操作来创建创建所有度量所需的 DAX 表达式。但是我看不到将这些表达式批量放入文件的方法。 有没有办法在不使用 Power BI 的情况下编辑 Power BI (pbix) 文件?

【问题讨论】:

    标签: powerbi


    【解决方案1】:

    不是对您提出的问题的直接回答,但我认为您在这里有一点XY Problem

    旁边有 sigma 符号的“列”,表示它们是隐式度量

    这并不完全正确。这些不是度量(度量使用计算器图标),而是 Power BI 已分类为数值列的列,如果您将其添加到报表中的视觉对象,它将自动与隐式度量聚合(而不是维度/分类列)。

    Implicit measures 是使用这些 sigma 列创建的自动聚合。隐式度量在“字段”窗格中不可见。


    为了更直接地解决您的问题,您可以想到几种可能性来解决您的问题。

    选项 1:
    如果您想对 .pbix 文件进行批量更改,那么使用像Tabular Editor(即directly supported in Power BI Desktop now)这样的外部工具是不错的选择。 .pbix 文件的数据模型部分以高度压缩格式存储,这使得简单的文本编辑不可行。表格编辑器有scripting capabilities,可以用来做各种事情。

    选项 2:
    如果您只关心报告生成器并且不需要将 .pbix 文件中的度量用于其他目的,那么您可以创建任何您想要的度量作为查询本身的一部分。

    查询 Power BI 数据集时,DAX 查询可能如下所示:

    EVALUATE
    SUMMARIZECOLUMNS (
        DimTable[Column1],
        DimTable[Column2],
        DateTable[Date],
        FilterTable1,
        FilterTable2,
        "Measure1", [Measure1],
        "Measure2", [Measure2]
    )
    

    假设[Measure1] 是一个明确的度量,定义为

    Measure1 = SUM ( FactTable[Value] )
    

    您可以在查询中定义它,而不是在数据模型中定义此度量并在查询中引用它。另外,请注意,您可以输入任何您喜欢的名称,而不是 "Measure1"。例如,以下应该可以工作。

    EVALUATE
    SUMMARIZECOLUMNS (
        DimTable[Column1],
        DimTable[Column2],
        DateTable[Date],
        FilterTable1,
        FilterTable2,
        "Value", CALCULATE ( SUM ( FactTable[Value] ) ),
        "Amount", CALCULATE ( SUM ( FactTable[Amount] ) )
    )
    

    【讨论】:

    • “您可以使用数值列”——并非如此。如果我只是从数据库中导入而不创建度量,则隐式度量不会聚合在分页报告中。我发现处理所有 700 万条详细行需要 17 分钟。如果我在数据集中创建一个 [explicit] 度量,就会发生聚合,我很快就会得到我期望的少数或行。
    • 顺便说一句:作为 Power BI 专家的 Microsoft 员工证实我的问题是由使用隐式措施引起的。
    • 是的,您肯定想要聚合您的行(使用显式度量)而不是加载所有详细信息行。我想我对为什么需要重命名列而不是创建具有不同名称的度量感到困惑。稍后我将进行编辑以建议几个可能的工作流程。
    • 无论如何,如果可以避免的话,我不想在 Power BI 中执行此操作。这可能需要我整个星期。
    • 我已经编辑了我的答案。看看这两个选项是否适合你。
    猜你喜欢
    • 1970-01-01
    • 2021-02-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-10-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多