POWER BI 支持一个报表连接多数据集

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了POWER BI 支持一个报表连接多数据集相关的知识,希望对你有一定的参考价值。

参考技术A 打开预览窗口的Direct Query for Power BI datasets and Analysis Services (⭐)

可使用原有度量值,但不支持看见原有度量值公式(demo中用previous/new文件夹区分了)

在同样导入一千行基础数据源情况下,刷新视觉对象时间截图如下:

4)同一报表内建立关系 与 两个数据集建立关系性能对比:

(基础数据源包括:日期表'20190101' 至 '20211231';明细表1000行)

同一报表内建立关系的页面刷新时间:4s(import)、4s(direct query)

两个数据集建立关系的页面刷新时间:6s(import)、9s(direct query)

在 Power BI 中使用 BigQuery 重复/嵌套字段

【中文标题】在 Power BI 中使用 BigQuery 重复/嵌套字段【英文标题】:Using BigQuery repeated / nested fields in Power BI 【发布时间】:2018-04-25 07:39:34 【问题描述】:

问题:将 Power BI 连接到具有重复/嵌套字段的 BigQuery 表(使用本机 BQ 连接器)时,这些字段不会出现在 Power BI 中以用于创建报表。

示例:使用名为 bigquery-public-data:samples 的公共 BigQuery 数据集,有一个名为 github_nested 的表,其中包含重复字段,例如 payload.pages.action(见下文)

但是,当使用 Power BI 连接到此 BigQuery 表时,我只能获得少数字段(见下文)

据我了解,这是因为 Power BI Big Query 连接器不支持重复/嵌套或记录字段。

问题:在构建 Power BI 报表时,是否可以使用 BigQuery 表中的所有列/字段(无论它们是否重复/嵌套/记录),特别是使用通过本机 Power BI Big Query 连接器进行实时连接?

我在 BigQuery 中确实具有写入权限,因此如果作为解决方案的一部分需要,可以在这些表上创建具有重复/嵌套字段的视图。

一种可能的解决方法可能是在 Big Query 中创建一个视图,该视图取消嵌套重复字段,然后将 Power BI 连接到所述视图。接受任何解决方法建议。

任何帮助将不胜感激。

【问题讨论】:

好像不支持这个,有一个FR here,但目前没有太大的吸引力。 感谢@GuillemXercavins。是的,我还了解到 Power BI BigQuery 连接器不支持重复/嵌套列,但是,我想知道是否有任何解决方法可以启用这些列的报告?例如,一个想法可能是在 Big Query 中创建一个视图,该视图取消嵌套重复字段,然后将 Power BI 连接到所述视图。接受任何解决方法建议。 是的,这可能是最好的选择 感谢@GuillemXercavins,但是我不确定如何执行此操作,或者这是否确实是最好的方法。这就是我提出这些问题的原因,看看是否有人以前可能已经成功地做到了这一点,或者是否有比我更了解 BigQuery 的人可以提供帮助。 【参考方案1】:

Power BI 没有(截至 2018 年 10 月 29 日)本机 Big Query 连接器,它仅使用通用 ODBC 连接器。我建议不要将它用于生产,目前的限制是:

如果您的结算项目与数据集项目不同,则不支持 GCP 结算帐号 不支持 Google 服务帐户 不支持嵌套和重复字段 请求未优化(错误的 finops) 不支持通过 Big Query 链接到 Google 表格的数据集 某些数据类型未正确处理 无法手动编辑请求(以 BQ 标准 SQL 为例)

在这篇文章中了解更多(我是作者):https://medium.com/@remy_david/which-bi-tool-for-big-query-d9eb838ff7ad

【讨论】:

【参考方案2】:

products-and-stocks 表的示例架构:

[
  
    name: 'timestamp',
    type: 'TIMESTAMP'
  , 
    name: 'data',
    type: 'RECORD',
    mode: "REPEATED",
    fields: [
      
        name: 'itemId',
        type: 'STRING'
      , 
        name: 'prodId',
        type: 'STRING'
      , 
        name: 'name',
        type: 'STRING'
      , 
        name: 'stockA',
        type: 'INTEGER'
      , 
        name: 'stockB',
        type: 'INTEGER'
      , 
        name: 'stockQ',
        type: 'INTEGER'
      , 
        name: 'stockD',
        type: 'INTEGER'
      , 
        name: 'stockE',
        type: 'INTEGER'
      , 
        name: 'weight',
        type: 'INTEGER'
      , 
        name: 'size',
        type: 'RECORD',
        fields: [
          
            name: 'length',
            type: 'INTEGER'
          , 
            name: 'width',
            type: 'INTEGER'
          , 
            name: 'height',
            type: 'INTEGER'
          
        ]
      , 
        name: 'cnt',
        type: 'INTEGER'
      , 
        name: 'cntInBox',
        type: 'INTEGER'
      , 
        name: 'lifetime',
        type: 'INTEGER'
      , 
        name: 'barcode',
        type: 'STRING',
        mode: 'REPEATED',
      , 
        name: 'dateStockUpdate',
        type: 'TIMESTAMP'
      , 
        name: 'label',
        type: 'STRING'
      , 
        name: 'comment',
        type: 'STRING'
      , 
        name: 'commentPack',
        type: 'STRING'
      , 
        name: 'skuBox',
        type: 'INTEGER'
      , 
        name: 'snRuleRegularExpression',
        type: 'STRING'
      
    ]
  
]

在 BigQuery 中创建展平查询并将其保存为视图。

SELECT 
  `timestamp`, 
  repeated.*, 
  repeated.size.length as `size_length`, 
  repeated.size.width as `size_width`, 
  repeated.size.height as `size_height`, 
  ARRAY_TO_STRING(barcode, ", ") as barcodesFlat 
FROM 
  `my-project-id.my-dataset.products-and-stocks`
CROSS JOIN UNNEST(`data`) as repeated

将此视图导入 Power BI。

【讨论】:

以上是关于POWER BI 支持一个报表连接多数据集的主要内容,如果未能解决你的问题,请参考以下文章

Power BI学习

POWER BI 报表服务器搭建配置

使用 Access 作为数据库刷新 Power BI

一起学微软Power BI系列-使用技巧 连接Sqlite数据库

如何在 power bi 中从同一连接连接多个数据库?

在 Power BI 中使用 BigQuery 重复/嵌套字段