Citrix Performance Analytics 的 Power BI 集成
Citrix Analytics 服务平台 ODATA API 目前支持性能分析数据导出功能。
本文档描述了将 CAS ODATA API 与 Power BI 集成所需的必要步骤,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 桌面。
-
选择主页 -> 获取数据 -> 空白查询。将出现 Power Query Editor 页面。
-
在 Power Query Editor 屏幕上,选择管理参数并添加以下两个参数以支持增量刷新:
- RangeStart:刷新开始日期(必须使用“日期/时间”类型)
- RangeEnd:刷新结束日期(必须使用“日期/时间”类型)
有关详细信息,请参阅 Microsoft 文档。
-
在 Power Query Editor 屏幕上,选择高级编辑器,输入以下查询以与 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:带有可选 ODATA 查询的 CAS ODATA 的 API URL(例如:
"https://api.cloud.com/casodata/sessions?$filter=SessionState ne '3'"
)
- 完成后,单击“完成”。将出现数据源访问凭据请求。
-
选择“匿名”,然后单击“应用”。数据按如下方式刷新:
配置 PowerBI 以支持增量刷新
当 Power Query 可以提取数据时,您需要为数据源配置增量刷新。
右键单击数据源并选择增量刷新,将策略配置为启用增量刷新:
注意:
需要 Power BI 高级版或专业版许可证才能支持增量刷新。
重要:
- 启用增量刷新后,第一次刷新会触发 ODATA API 调用以获取所有历史数据。由于 ODATA API 每天聚合数据,因此此对存档数据使用“天数”非常重要。
- 考虑合理的天数来保留数据,以节省 PowerBI 工作区的磁盘空间(例如“7”天)。
发布到 Power BI 云并启用预设刷新
完成上述更改后,选择 Power BI 桌面主页 -> 文件 -> 发布到 Power BI。数据集和报告发布到 Power BI 云工作区。
通过单击数据集中的设置来启用预设刷新:
在“数据源凭据”部分配置数据源的匿名访问权限,选择“跳过连接测试”,然后单击“登录”,如下所示:
第一次数据集刷新会提取历史数据,这可能需要更长的时间。而后来的增量刷新仅提取最新一天的数据。此刷新是按照上一节中的增量刷新策略中的配置完成的。
刷新历史记录如下所示:
刷新完成后,您可以持续自动将数据提取到 Power BI。