适用于 Citrix Performance Analytics 的 Power BI 集成

Citrix Analytics Service 平台 ODATA API 目前支持 Performance Analytics 数据导出功能。

本文档介绍了将 CAS ODATA API 与 Power BI 集成所需的步骤,该集成还支持:

  1. 增量数据刷新(此支持对于大型数据集至关重要)
  2. 计划数据刷新(自动拉取数据并将其导出到 Power BI 工作区)

先决条件

连接 CAS ODATA 源需要以下各项:

  1. Citrix Cloud™ 客户 ID (CCID)
  2. 全局 CAS ODATA API 端点:https://api.cloud.com/casodata
  3. 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:

  1. 打开 Power BI Desktop。
  2. 选择 主页 -> 获取数据 -> 空白查询。此时将显示 Power Query 编辑器页面。

    数据导出

  3. Power Query 编辑器屏幕上,选择 管理参数,然后添加以下两个参数以支持增量刷新:

    • RangeStart:刷新开始日期(必须使用“日期/时间”类型)
    • RangeEnd:刷新结束日期(必须使用“日期/时间”类型)

    管理参数

    有关详细信息,请参阅 Microsoft 文档

  4. 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-->
    
  5. 根据您的站点替换以下占位符:

    • 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'”)
  6. 完成后,单击 完成。此时将显示数据源访问凭据请求。
  7. 选择 匿名,然后单击 应用。数据刷新如下:

    数据源访问

配置 PowerBI 以支持增量刷新

当 Power Query 可以拉取数据时,您需要为数据源配置增量刷新。

右键单击数据源并选择 增量刷新 以配置策略以启用增量刷新:

注意:

需要 Power BI Premium 或 Pro 许可证才能支持增量刷新。

增量刷新

重要提示:

  • 启用增量刷新后,首次刷新会触发 ODATA API 调用以获取所有历史数据。由于 ODATA API 以每日方式聚合数据,因此使用“天数”来表示存档数据非常重要。
  • 考虑保留数据的合理天数,以节省 PowerBI 工作区磁盘空间(例如“7”天)。

发布到 Power BI 云并启用计划刷新

完成上述更改后,选择 Power BI Desktop 主页 -> 文件 -> 发布到 Power BI。数据集和报表将发布到 Power BI 云工作区。

通过单击数据集中的 设置 来启用计划刷新:

设置计划刷新

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

跳过连接测试

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

刷新历史记录如下所示:

已刷新数据

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

完整数据

适用于 Citrix Performance Analytics 的 Power BI 集成