Intégration de Power BI pour Citrix Performance Analytics
L’API ODATA de la plateforme Citrix Analytics Service prend actuellement en charge la fonctionnalité d’exportation de données Performance Analytics.
Ce document décrit les étapes nécessaires pour intégrer l’API CAS ODATA à Power BI, qui prend également en charge :
- Actualisation incrémentielle des données (cette prise en charge est essentielle pour un ensemble de données volumineux)
- Actualisation planifiée des données (extraction et exportation automatiques des données vers l’espace de travail Power BI)
Logiciels requis
Les éléments suivants sont nécessaires pour connecter le flux CAS ODATA :
- ID client Citrix Cloud (CCID)
- Point de terminaison global de l’API CAS ODATA :
https://api.cloud.com/casodata
- Client d’API Citrix Cloud.
L’API CAS ODATA utilise le jeton porteur Citrix Cloud pour l’authentification. Un client d’API Citrix Cloud est requis pour obtenir le jeton porteur. Pour plus d’informations sur la création d’un client d’API Citrix Cloud et l’enregistrement de son identifiant et de son code secret, consultez la documentation Démarrez avec les API Citrix Cloud.
Remarque :
L’administrateur qui crée le client API doit disposer d’un accès « en lecture seule » ou d’un « accès administrateur complet » au service Citrix Cloud Analytics.
Connectez le flux CAS ODATA à Power BI
Effectuez les étapes suivantes pour connecter le flux CAS ODATA à Power BI :
- Ouvrez Power BI Desktop.
-
Sélectionnez Accueil -> Obtenir des données -> Requête vide. La page Power Query Editor s’affiche.
-
Sur l’écran Power Query Editor, sélectionnez Gérer les paramètres et ajoutez les deux paramètres suivants pour prendre en charge l’actualisation incrémentielle :
- RangeStart : la date de début de l’actualisation (doit utiliser le type « Date/Time »)
- RangeEnd : la date de fin de l’actualisation (doit utiliser le type « Date/Time »)
Pour plus d’informations, consultez la documentation Microsoft.
-
Sur l’écran Power Query Editor, sélectionnez Advanced Editor, entrez la requête suivante pour interagir avec Citrix Cloud afin d’obtenir le jeton porteur et pour interagir avec le flux CAS ODATA pour obtenir les données requises.
Remarque :
Utilisez le jeton du porteur récupéré à l’étape précédente pour vous authentifier.
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-->
-
Remplacez les espaces réservés suivants en fonction de votre site :
- Placeholder_customerId : identifiant du client
-
placeholder_tokenUrl : URL d’authentification CC spécifique à la région
https://api.cloud.com/cctrustoauth2/root/tokens/clients
- placeholder_ApiClientId : ID du client de l’API
- placeholder_ApiSecretKey : clé secrète du client de l’API
- placeholder_OdataApiUrl : URL de l’API pour CAS ODATA avec requête ODATA facultative (par exemple :
"https://api.cloud.com/casodata/sessions?$filter=SessionState ne '3'"
)
- Une fois terminé, cliquez sur OK. La demande d’informations d’identification d’accès à la source de données apparaît.
-
Sélectionnez Anonyme, puis cliquez sur Appliquer. Les données sont actualisées comme suit :
Configurer PowerBI pour prendre en charge l’actualisation incrémentielle
Lorsque Power Query peut extraire des données, vous devez configurer une actualisation incrémentielle pour la source de données.
Cliquez avec le bouton droit sur la source de données et sélectionnez Actualisation incrémentielle pour configurer la stratégie permettant d’activer l’actualisation incrémentielle :
Remarque :
Une licence Power BI Premium ou Pro est requise pour prendre en charge l’actualisation incrémentielle.
Important :
- Lorsque l’actualisation incrémentielle est activée, la première actualisation déclenche les appels d’API ODATA pour obtenir toutes les données historiques. Comme l’API ODATA agrège les données de manière quotidienne, il est important d’utiliser le nombre de « jours » pour les données archivées.
- Prévoyez un nombre raisonnable de jours pour conserver les données afin d’économiser de l’espace disque dans votre espace de travail PowerBI (par exemple, « 7 jours »).
Publiez sur le cloud Power BI et activez l’actualisation planifiée
Une fois les modifications précédentes effectuées, sélectionnez Power BI desktop Home -> Fichier -> Publier sur Power BI. Le jeu de données et les rapports sont publiés dans l’espace de travail cloud Power BI.
Activez l’actualisation planifiée en cliquant sur Paramètres dans le jeu de données :
Configurez l’accès anonyme pour les sources de données dans la section Informations d’identification de la source de données et sélectionnez Ignorer le test de connexion, puis cliquez sur Se connecter comme suit :
La première actualisation de l’ensemble de données extrait les données historiques, ce qui peut prendre plus de temps. Et l’actualisation incrémentielle ultérieure extrait uniquement les données du jour le plus récent. Cette actualisation est effectuée comme configuré dans la stratégie d’actualisation incrémentielle de la section précédente.
L’historique des actualisations se présente comme suit :
Une fois l’actualisation terminée, vous pouvez extraire automatiquement les données en continu vers Power BI.