适用于 Citrix Performance Analytics 的 Power BI 集成
Citrix Analytics Service 平台 ODATA API 目前支持 Performance Analytics 数据导出功能。
本文档介绍了将 CAS ODATA API 与 Power BI 集成所需的步骤,该集成还支持:
- 增量数据刷新(此支持对于大型数据集至关重要)
- 计划数据刷新(自动拉取数据并将其导出到 Power BI 工作区)
先决条件
连接 CAS ODATA 源需要以下各项:
- Citrix Cloud™ 客户 ID (CCID)
- 全局 CAS ODATA API 端点:
https://api.cloud.com/casodata - Citrix Cloud API 客户端。
CAS ODATA API 使用 Citrix Cloud 持有者令牌进行身份验证。需要 Citrix Cloud API 客户端才能获取持有者令牌。有关如何创建 Citrix Cloud API 客户端以及保存客户端 ID 和密钥的信息,请参阅Citrix Cloud API 入门文档。
注意:
创建 API 客户端的管理员需要对 Citrix Cloud Analytics 服务具有“只读”访问权限或“完全管理员访问权限”。
将 CAS ODATA 源连接到 Power BI
执行以下步骤以将 CAS ODATA 源连接到 Power BI:
- 打开 Power BI Desktop。
-
选择 主页 -> 获取数据 -> 空白查询。此时将显示 Power Query 编辑器页面。

-
在 Power Query 编辑器屏幕上,选择 管理参数,然后添加以下两个参数以支持增量刷新:
- RangeStart:刷新开始日期(必须使用“日期/时间”类型)
- RangeEnd:刷新结束日期(必须使用“日期/时间”类型)

有关详细信息,请参阅 Microsoft 文档。
-
在 Power Query 编辑器屏幕上,选择 高级编辑器,然后输入以下查询以与 Citrix Cloud 交互以获取持有者令牌,并与 CAS ODATA 源交互以获取所需数据。
注意:
使用上一步中检索到的持有者令牌进行身份验证。
let customerId = "placeholder_customerId", // get citrix cloud API credential (bearer token) tokenUrl = "placeholder_tokenUrl", headers = [ #"customerid" = customerId, #"Content-Type" = "application/x-www-form-urlencoded", #"Accept" = "*/*" ], postData = [ grant_type = "client_credentials", client_id = "placeholder_ApiClientId", client_secret = "placeholder_ApiSecretKey" ], response = Json.Document(Web.Contents(tokenUrl, [Headers = headers, Content = Text.ToBinary(Uri. BuildQueryString(postData))])), // get the CC bearer toekn from the response token = "CwsAuth bearer=" & response[access_token], reportDate = DateTime.AddZone(RangeStart, 0), reportDateYear = Number.ToText(Date.Year(reportDate)), reportDateMonth = Number.ToText(Date.Month(reportDate)), reportDateDay = Number.ToText(Date.Day(reportDate)), // CAS ODATA API endpoint and ODATA query. Sample below will retrieve active sessions (non-terminated) // apiURL = "https://api.cloud.com/casodata/sessions?$filter=SessionState ne '3'", apiURL = "placeholder_OdataApiUrl", // have to separate api queries below to make PowerBI happy apiQuery = [ #"year" = reportDateYear, #"month" = reportDateMonth, #"day" = reportDateDay ], apiHeaders = [ #"Authorization" = token, #"Citrix-CustomerId" = customerId ], Source = OData.Feed(apiURL, null, [Query=apiQuery, Headers=apiHeaders]), #"Filtered Rows" = Table.SelectRows(Source, each [Timestamp] >= DateTime.AddZone(RangeStart, 0) and [Timestamp] <= DateTime.AddZone(RangeEnd, 0)) in #"Filtered Rows" <!--NeedCopy--> -
根据您的站点替换以下占位符:
- Placeholder_customerId:客户 ID
-
placeholder_tokenUrl:区域特定的 CC 身份验证 URL
https://api.cloud.com/cctrustoauth2/root/tokens/clients - placeholder_ApiClientId:API 客户端 ID
- placeholder_ApiSecretKey:API 客户端密钥
- placeholder_OdataApiUrl:CAS ODATA 的 API URL,带可选 ODATA 查询(例如:“
https://api.cloud.com/casodata/sessions?$filter=SessionState ne '3'”)
- 完成后,单击 完成。此时将显示数据源访问凭据请求。
-
选择 匿名,然后单击 应用。数据刷新如下:

配置 PowerBI 以支持增量刷新
当 Power Query 可以拉取数据时,您需要为数据源配置增量刷新。
右键单击数据源并选择 增量刷新 以配置策略以启用增量刷新:
注意:
需要 Power BI Premium 或 Pro 许可证才能支持增量刷新。

重要提示:
- 启用增量刷新后,首次刷新会触发 ODATA API 调用以获取所有历史数据。由于 ODATA API 以每日方式聚合数据,因此使用“天数”来表示存档数据非常重要。
- 考虑保留数据的合理天数,以节省 PowerBI 工作区磁盘空间(例如“7”天)。
发布到 Power BI 云并启用计划刷新
完成上述更改后,选择 Power BI Desktop 主页 -> 文件 -> 发布到 Power BI。数据集和报表将发布到 Power BI 云工作区。
通过单击数据集中的 设置 来启用计划刷新:

在 数据源凭据 部分中配置数据源的匿名访问,然后选择 跳过连接测试,再单击 登录,如下所示:

首次数据集刷新会拉取历史数据,这可能需要更长时间。后续的增量刷新仅拉取最新一天的数据。此刷新是根据上一节中配置的增量刷新策略完成的。
刷新历史记录如下所示:

刷新完成后,您将能够自动持续地将数据拉取到 Power BI。
