快速提示:Power Query中的OData Feed Analyzer定制功能

Power BI和Excel的Power Query中的OData Feed Analyzer自定义功能

It’s been a while that I am working with 数据 data source in Power BI. One challenge that I almost always do not have a good understanding of the underlying data model. It can be really hard and time consuming if there is no one in the business that understands the underlying data model. I know, we can use $metadata to get the metadata schema from the 数据 feed, but let’不去那里。我不是OData专家,但是这里是像我这样的人的事,我使用的数据源不一定是专家,但我需要了解实体是什么,它们如何连接等…那如果我没有任何中小型企业(S对象 M东北黑钙土 Expert)谁可以帮助我?

因此,参与更多OData选项,让’s get into it.

The custom function below accepts an 数据 URL then it discovers all tables, their column count, their row count (more on this later), number and list of related tables, number and list of columns of type text, type number and Decimal.Type.

// fnODataFeedAnalyser
(ODataFeed as text) => 
  let
    Source = OData.Feed(ODataFeed),
    SourceToTable = Table.RenameColumns(
        Table.DemoteHeaders(Table.FromValue(Source)), 
        {{"Column1", "Name"}, {"Column2", "数据"}}
      ),
    FilterTables = Table.SelectRows(
        SourceToTable, 
        each Type.Is(Value.Type([Data]), Table.Type) = true
      ),
    SchemaAdded = Table.AddColumn(FilterTables, "Schema", each Table.Schema([Data])),
    TableColumnCountAdded = Table.AddColumn(
        SchemaAdded, 
        "Table Column Count", 
        each Table.ColumnCount([Data]), 
        Int64.Type
      ),
    TableCountRowsAdded = Table.AddColumn(
        TableColumnCountAdded, 
        "Table Row Count", 
        each Table.RowCount([Data]), 
        Int64.Type
      ),
    NumberOfRelatedTablesAdded = Table.AddColumn(
        TableCountRowsAdded, 
        "Number of Related Tables", 
        each List.Count(Table.ColumnsOfType([Data], {Table.Type}))
      ),
    ListOfRelatedTables = Table.AddColumn(
        NumberOfRelatedTablesAdded, 
        "List of Related Tables", 
        each 
          if [Number of Related Tables] = 0 then 
            null
          else 
            Table.ColumnsOfType([Data], {Table.Type}), 
        List.Type
      ),
    NumberOfTextColumnsAdded = Table.AddColumn(
        ListOfRelatedTables, 
        "Number of Text Columns", 
        each List.Count(Table.SelectRows([Schema], each Text.Contains([Kind], "text"))[Name]), 
        Int64.Type
      ),
    ListOfTextColunmsAdded = Table.AddColumn(
        NumberOfTextColumnsAdded, 
        "List of Text Columns", 
        each 
          if [Number of Text Columns] = 0 then 
            null
          else 
            Table.SelectRows([Schema], each Text.Contains([Kind], "text"))[Name]
      ),
    NumberOfNumericColumnsAdded = Table.AddColumn(
        ListOfTextColunmsAdded, 
        "Number of Numeric Columns", 
        each List.Count(Table.SelectRows([Schema], each Text.Contains([Kind], "number"))[Name]), 
        Int64.Type
      ),
    ListOfNumericColunmsAdded = Table.AddColumn(
        NumberOfNumericColumnsAdded, 
        "List of Numeric Columns", 
        each 
          if [Number of Numeric Columns] = 0 then 
            null
          else 
            Table.SelectRows([Schema], each Text.Contains([Kind], "number"))[Name]
      ),
    NumberOfDecimalColumnsAdded = Table.AddColumn(
        ListOfNumericColunmsAdded, 
        "Number of Decimal Columns", 
        each List.Count(
            Table.SelectRows([Schema], each Text.Contains([TypeName], "Decimal.Type"))[Name]
          ), 
        Int64.Type
      ),
    ListOfDcimalColunmsAdded = Table.AddColumn(
        NumberOfDecimalColumnsAdded, 
        "List of Decimal Columns", 
        each 
          if [Number of Decimal Columns] = 0 then 
            null
          else 
            Table.SelectRows([Schema], each Text.Contains([TypeName], "Decimal.Type"))[Name]
      ),
    #"Removed Other Columns" = Table.SelectColumns(
        ListOfDcimalColunmsAdded, 
        {
          "Name", 
          "Table Column Count", 
          "Table Row Count", 
          "Number of Related Tables", 
          "List of Related Tables", 
          "Number of Text Columns", 
          "List of Text Columns", 
          "Number of Numeric Columns", 
          "List of Numeric Columns", 
          "Number of Decimal Columns", 
          "List of Decimal Columns"
        }
      )
  in
    #"Removed Other Columns"
继续阅读 “快速提示:Power Query中的OData Feed Analyzer定制功能”

Power BI生态系统报告创作工具神秘化

Power BI报表工具混乱

如今,围绕Power BI工具创建报告的讨论很多,并且可以肯定的是,你们中的许多人可能已经下载并使用了其中的一些工具(如果不是全部)。您可能还已经认为某些工具’名称令人困惑。最近,我与具有许多SSRS报告撰写背景的人进行了有趣的交谈。我当时在谈论分页报告,并说我下载了Power BI报表生成器的最新版本…他马上说,等一下…

  • 约翰:Power BI报表生成器?哦,我明白了’您可以使用它创建分页报告,然后可以将这些报告部署到SSRS实例中。
  • 我:不!那’s not the case I’m afraid.
  • 约翰:哦,我知道,我的意思是Power BI报表服务器,您可以将报表部署到Power BI报表服务器的实例。我就知道!
  • 我:不!那’s not what I’m talking about…
  • 约翰:什么……?

我敢打赌你们中的一些人与朋友或顾客进行过类似的交谈。好,在这篇文章中,我将向您和您的组织介绍一些有关报告创作工具的信息,以使您充分利用Power BI生态系统。

以下是当前为您提供的所有报告工具的列表:

  • Power BI服务:这是Microsoft在云中提供的SaaS(软件即服务)产品。组织中的用户可以根据其访问权限在Power BI Service中创建和发布数据,报告,仪表板。用户还可以计划对发布的数据进行数据刷新,以及安全地共享和分发内容。尽管在Power BI Service中可以创建或编辑报告,但出于多种原因,强烈建议您避免使用此方法。最明显的是,您在报表中所做的更改可能很快就会被从Power BI Desktop重新发布同一报表的其他人覆盖。从查看此博客文章 的SQLChick了解为什么应该避免直接从Power BI Service创建或编辑报告。报告可以PBIX格式下载。 在此处使用Power BI服务.
  • Power BI桌面 :这是一个桌面报告创作工具,可用于连接到各种类型的数据源或从中加载数据,准备,转换和清除数据,最后可视化数据。 Power BI桌面 是主要的报表创作工具,其功能和灵活性比Power BI Service高得多。例如,在Power BI服务中无法设置角色级别安全性(RLS)。报告文件的格式为PBIX。 从此处下载Power BI Desktop.
  • Power BI报表生成器(分页):分页报表又名“像素完美报告”顾名思义,其格式完全适合页面。该报告页面可能稍后会打印。您可以完全控制页面格式以在表格或图表中显示数据。这些报告不像Power BI Desktop报告那样具有交互性。分页报告基于RDL技术,这是SQL Server报告服务中的标准报告格式。在Power BI生态系统中用于开发分页报表的工具是Power BI报表生成器。报告文件类型为RDL。当前,您只能将分页报表发布到具有高级功能支持的工作区。 从此处下载Power BI报表生成器.
继续阅读 “Power BI生态系统报告创作工具神秘化”

XMLA端点对Power BI意味着什么,以及如何免费对其进行测试?

Power BI XMLA端点的测试环境

XMLA端点连接以进行公共预览 已于2019年3月下旬宣布。到今天为止,它仅适用于Power BI 保费容量用户。对于许多没有高级功能的人来说,这听起来像是一个巨大的限制,但他们希望了解它的工作原理。在本文中,我向您展示了一种尽快获得Power BI XMLA端点的简便方法。在开始之前,我想简单地解释一下XMLA终结点,以及它对Power BI用户的真正意义。

Power BI就像洋葱!它有层!

一般而言,Power BI具有两个不同的层,表示层和数据模型层。表示层是可视层,您可以进行所有这些引人注目的报告和可视化。顾名思义,数据模型是在其中创建数据模型的层。您可以通过XMLA连接性访问该层。

在Power BI Desktop文件中,您可以看到两个图层:

Power BI的不同层

XMLA如何与Power BI中的不同层相关?

您可能已经猜到了,XMLA仅与数据模型层有关,而与表示层无关。所以你可能 连接到数据模型, 浏览数据模型, 将数据从模型导入到其他平台,例如Excel 等等。

XMLA并不新鲜!

认真吗是的,认真。这不是新的。已经到了 多年了,也许您已经使用了无数次。每当 您正在连接到SQL Server Analysis Services的一个实例 来自任何工具(例如SQL Server Management Studio)的多维或表格形式 (SSMS),Power BI报表生成器,Excel,Tableau等…,您正在使用XMLA connectivity indeed.

Power BI是SSAS表格的实例

是真的。 Power BI运行SSAS表格的本地实例 模型。因此,每当您打开Power BI桌面文件(PBIX)时,Power BI都会创建一个 具有随机本地端口号的SSAS表格模型的本地实例,可以 只能在本地计算机上访问。关闭文件时,本地 SSAS 表格实例关闭,并释放其端口号。

我首先揭示了一个事实,你可以 在2016年6月通过各种工具(例如SSMS,SQL Server Profiler,Excel等)连接到Power BI Desktop中的基础数据模型。因此,我们确实使用XMLA长时间连接到Power BI数据模型。我们甚至可以更进一步 将我们的Power BI数据模型导入SSAS表格实例。从这个意义上讲,我们实际上是从Power BI生成XMLA脚本,以在SSAS 表格中创建相同的数据模型。多么酷啊?

太…什么是新的?

继续阅读 “XMLA端点对Power BI意味着什么,以及如何免费对其进行测试?”

快速提示:如何在Power BI Service中启用数据流

Power BI服务中的数据流

Power BI服务中的数据流(预览)已于昨天(2018年11月6日)登陆。我在启用此炫酷的新功能时遇到了一些困难,因此我认为写一个快速提示是个好方法。尽管在撰写此快速提示之时尚不了解Dataflows,但未来的情况可能会完全不同。

可以立即以Power BI 保费容量或Power BI 嵌入式的容量使用功能齐全的数据流,但是尽管仍处于预览状态,但您可以利用Power BI Pro许可证中的有限功能。功能如“来自其他数据流的链接实体” or “Computed Entities”在Power BI Pro许可证中不可用,例如将表合并到新表。

数据流 计算实体

启用数据流

  • 登录Power BI服务后,单击“Settings”
  • 请点击“Admin Portal”

Power BI服务管理门户

  • 选择您所在的容量类型,高级或嵌入式
  • 单击您想要的容量’d想启用数据流

在Power BI管理员门户中管理高级容量

  • 向下滚动以查找并单击“Workloads” under “More Options”
  • 启用“Dataflows (Preview)”
  • 如果您坚持默认“Max Memory (%)”值设置为20’会收到一条错误消息说“更新您的工作负载设置时出现问题。请稍后再试 ”。该错误消息根本没有帮助。您收到错误消息的原因是“Max Memory (%)”值必须是27到100之间的数字,默认值为20。

在Power BI Service中启用数据流 继续阅读 “快速提示:如何在Power BI Service中启用数据流”