将 Tulip 表格与 PowerBI Desktop 集成,实现高效分析
概述
此附带的 .pbix 模板演示了如何轻松将 Tulip 表数据导入PowerBI进行查询。下载 PowerBI 模板
Tulip Analytics 在仅分析 Tulip 数据以及流式数据时表现更为出色。对于需要复杂数据模型、更长刷新频率和更广泛覆盖范围的分析,可采用此方法将 Tulip 数据呈现在领导者面前
PowerQuery 脚本
此外,请参阅下方 PowerBI 模板中包含的 PowerQuery 脚本```(TulipTableId as text, instance as text) as table=>
letQuery = #table( type table [#"table" = text], { {TulipTableId}}),
Function = Table.AddColumn(Query, "Offset", Number.Round(Json.Document(Web.Contents("https://"&instance&"/api/v3/tables/"& TulipTableId &"/count"))/100)),
ExpandedOffset = Table.ExpandListColumn(Function, "Offset"),
NbLoop = Number.Round(Json.Document(Web.Contents("https://" & instance & "/api/v3/tables/" & TulipTableId & "/count")) / 100),
TableOffset = Table.FromList(List.Transform({0..NbLoop}, each Number.ToText(_*100))),
TableOffset1 = Table.RenameColumns(TableOffset, {{"Column1", "Offset"}}),
TulipTable = Table.AddColumn(TableOffset1, "Records", each Table.FromRecords(Json.Document(Web.Contents("https://" & instance & "/api/v3/tables/" & TulipTableId & "/records?limit=100&offset="& [Offset] &"&sortBy=_sequenceNumber&sortDir=asc"))))
inTulipTable```
Power BI 服务集成
:::(信息) (注)
虽然上述脚本可在 Power BI Desktop 中正常运行,但在云端(Power BI 服务)中进行自动刷新时需要特别注意。为避免出现“动态数据源”错误,脚本必须在 Web.Contents 中使用 RelativePath 和 Query 函数。
这样,Power BI 就能将Tulip instance 识别为静态数据源的根 URL,从而在报告发布后支持定时刷新并安全管理 API 凭据。
:::
请使用以下 Power Query (M) 脚本以确保与 Power BI Service 的兼容性:
(TulipTableId as text, instance as text) as table =>let BaseUrl = "https://" & instance, CountPath = "api/v3/tables/" & TulipTableId & "/count", NbRecords = Json.Document(Web.Contents(BaseUrl, [RelativePath = CountPath])), NbLoop = Number.RoundUp(NbRecords / 100), Offsets = List.Transform({0..NbLoop-1}, each _ * 100), TableOffset = Table.FromList(Offsets, Splitter.SplitByNothing(), {"Offset"}), TableOffset1 = Table.TransformColumnTypes(TableOffset, {{"Offset", type text}}), TulipTable = Table.AddColumn(TableOffset1, "Records", each let RecordsPath = "api/v3/tables/" & TulipTableId & "/records", Response = Json.Document( Web.Contents(BaseUrl, [ RelativePath = RecordsPath, Query = [ limit = "100", offset = [Offset], sortBy = "_sequenceNumber", sortDir = "asc" ] ]) ) in Table.FromRecords(Response) )in TulipTable本 Power BI 服务集成指南由 ATS 提供。
操作说明
下载 .pbix 模板并按照应用内的说明操作(如下所示)
- 在“主页 >>> 转换数据”部分查看模板化的 PowerQuery 以打开 PowerQuery
- 查看“Tulip 查询”并将其中的 Tulip TableID 替换为所需的表 ID,将 instance 替换为实例 URL(例如:company.tulip.co)
- 点击“调用”,并输入 API 凭据(使用“基本”身份验证)
- 在系统提示时明确隐私级别(对于大多数用例,默认级别为“组织”)
- 点击“记录”列右侧的分隔箭头
- 根据需要修改表;点击“关闭并应用”
更多参考资料
- [microsoft.com/en-us/power-bi/transform-model/desktop-query-overview">PowerBI Desktop Support](https://learn.<span translate=)
- [microsoft.com/en-us/power-bi/connect-data/refresh-data#refresh-and-dynamic-data-sources">Microsoft Documentation on Dynamic Data Sources](https://learn.<span translate=)
