Citrix パフォーマンス分析のための 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 画面で、「 パラメーターの管理 」を選択し、次の 2 つのパラメーターを追加してインクリメンタル更新をサポートします:
- RangeStart: 更新開始日 (「日付/時刻」タイプを使用する必要があります)
- RangeEnd: リフレッシュ終了日 (「日付/時刻」タイプを使用する必要があります)
詳細については、 Microsoft のドキュメントを参照してください。
-
[ Power Query Editor ]画面で[ Advanced 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: customer 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 に自動的に取り込むことができます。