Power BI加载Dynamics 365 Online数据的几种方案

1、使用官方连接方式加载

具体连接方式参照官网文档:

将 Power BI 与 Microsoft Dynamics 365 结合使用 | Microsoft Docs

优点:这种加载方式没有数据大小的限制。

缺点:慢,非常慢。因为使用的传统OData的方式,使用HTTP的方式请求数据,数据加载非常缓慢。

2、使用Dataverse连接方式加载数据

具体连接方式参照官网文档:

使用 Dataverse 连接器创建 Power BI 报表 - Power Apps | Microsoft Docs

这种方式数据加载对比第一种明显快很多。

但是如果使用

  • Dataverse:此连接器是最新版本,使用表格数据流 (TDS) 协议。

将会有数据80M的限制。

超出 TLS 记录限制错误消息。

如果使用

  • Common Data Service(旧):这是连接器的早期版本。 此连接器用于大于 80 MB 的大型数据集。 此版本还支持查询结果的分页和生成使用图像数据类型的报表。

将基本满足要求。

3、使用SQL Server连接方式加载数据

Dynamics 365是能直接连接数据库的 

但是Power BI连接SQL Server数据库和 Dataverse一样,底层都是走的TDS连接,所有也有80M限制。

但是使用SQL Server数据库连接方式加载数据比较灵活,将需要的数据使用SQL查询处理好了再加载到Power BI里面来,可以直接进行分析了。

至于80M的限制,可以通过切分时间段控制返回的数据不超过80Mb的方式实现了绕过这个限制,

具体思路如下:

1.创建2个参数来分别控制开始时间和时间切分大小;

2.使用语句生成表;

let
    Source = List.Dates(StartDate, Number.RoundUp(Duration.Days(Date.From(DateTime.LocalNow())-StartDate)/(#"Interval (Month)"*30)),#duration(30*#"Interval (Month)",0,0,0)),
    #"Converted to Table" = Table.FromList(Source, Splitter.SplitByNothing(), null, null, ExtraValues.Error),
    #"Renamed Columns" = Table.RenameColumns(#"Converted to Table",{{"Column1", "Temp"}}),
    #"Added Custom" = Table.AddColumn(#"Renamed Columns", "EndDate", each Date.ToText([Temp]+#duration(30*#"Interval (Month)",0,0,0),"yyyy-M-d")),
    #"Added Custom1" = Table.AddColumn(#"Added Custom", "StartDate", each Date.ToText([Temp],"yyyy-M-d")),
    #"Removed Other Columns" = Table.SelectColumns(#"Added Custom1",{"EndDate", "StartDate"})
in
    #"Removed Other Columns"

 

计算使用 今天的日期减去起始日期, 计算出了 间隔, 再看有多少个 间隔, 并向上取整。

3.通过时间循环获取数据;

Table.AddColumn(#"Removed Other Columns", "自定义", each Sql.Database("xxxx.crm.dynamics.com", "xxxx", [Query="select createdon from contact where createdon > '"&[StartDate]&"' and createdon < '"&[EndDate]&"';"])),

4.删除其他列,并将自定义列展开,就得到了所有的数据。

这种方式比较灵活,加载速度也快,但是受到80M的限制。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值