Citrix Performance Analytics 的 Power BI 集成

Citrix Analytics 服务平台 ODATA API 目前支持性能分析数据导出功能。

本文档描述了将 CAS ODATA API 与 Power BI 集成所需的必要步骤,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 桌面。
  2. 选择主页 -> 获取数据 -> 空白查询。将出现 Power Query Editor 页面。

    数据导出

  3. Power Query Editor 屏幕上,选择管理参数并添加以下两个参数以支持增量刷新:

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

    管理参数

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

  4. 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 DateTimeZone.FromText([Timestamp]) >= DateTime.AddZone
        (RangeStart, 0) and DateTimeZone.FromText([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:带有可选 ODATA 查询的 CAS ODATA 的 API URL(例如:"https://api.cloud.com/casodata/sessions?$filter=SessionState ne '3'"
  6. 完成后,单击“完成”。将出现数据源访问凭据请求。
  7. 选择“匿名”,然后单击“应用”。数据按如下方式刷新:

    数据源访问权限

配置 PowerBI 以支持增量刷新

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

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

注意:

需要 Power BI 高级版或专业版许可证才能支持增量刷新。

增量刷新

重要提示:

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

发布到 Power BI 云并启用预设刷新

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

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

设置预设刷新

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

跳过连接测试

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

刷新历史记录如下所示:

刷新后的数据

刷新完成后,您可以持续自动将数据提取到 Power BI。

完整数据

Citrix Performance Analytics 的 Power BI 集成