複数の可視化のローカルデータインスタンス
特別なデータ可視化 API データリソースを使用して、複数のデータ可視化のデータを同時にフェッチできます。このデータリソースにより、API コールの数が減るため、データフェッチを高速化できます。
使用するタイミング
- 同じタイプの複数のデータ表示方法に同じデータソースがあります。たとえば、可視化タイプが単一スコアで、データソースがフィルター
active=trueのインシデント [incident] テーブルである 5 つの可視化があるとします。タイプとデータソースが同じインジケーターのグループが複数ある場合は、グループごとに同じ複数の可視化データ リソースのインスタンスを作成できます。 - データの可視化には、同じデータソースを参照する複数のデータリソースがあります。たとえば、「オープンインシデントの数」インジケーターのデータリソースと「オープンインシデントの平均経過時間」インジケーターの別のデータリソースを含む折れ線グラフの可視化があるとします。これらのインジケーターはどちらも Incident.Open データソースを使用します。効率を上げるために、この可視化を変換して 1 つのデータリソースのみを使用できます。
使用しない場合
- UI ビルダーページに表示される可視化は 1 つだけです。
- ページ上のデータの可視化は、データのロードに時間がかかる可能性があります。その場合は、データの読み込みを個別のデータ リソースに分割したままにしておくことをお勧めします。
複数の可視化データリソースを設定する
ユースケースが複数の可視化データリソースの基準を満たしている場合は、この手順に従うことができます。
始める前に
複数の可視化のローカルデータインスタンスの複数の可視化について、単一のデータリソースのユースケースを確認します。
必要なロール:ui_builder_admin、admin
このタスクについて
手順
同じデータソースを持つ 3 つの単一スコア可視化のデータリソース
この例では、3 つのデータ可視化コンポーネントを含む UIB ページから開始します。これらのコンポーネントはすべて単一スコアの可視化タイプであり、すべて同じデータソースを使用します。
ステップ 6 の一般的な手順に従います。これで、ダッシュボードページに複数のデータ視覚化用のデータ視覚化 API ができました。
[
{
"details": {
"visualizationId": "vis_1",
"followFilter": true
},
"configurations": {
"dataConfigurations": [
{
"sourceType": "table",
"dataCategory": "simple",
"order": 0,
"tableOrViewName": "incident",
"aggregateFunction": "COUNT"
}
]
}
},
{
"details": {
"visualizationId": "vis_2",
"followFilter": true
},
"configurations": {
"dataConfigurations": [
{
"sourceType": "table",
"dataCategory": "simple",
"order": 0,
"tableOrViewName": "incident",
"aggregateFunction": "AVG",
"aggregateField": "business_duration"
}
]
}
},
{
"details": {
"visualizationId": "vis_3",
"followFilter": true
},
"configurations": {
"dataConfigurations": [
{
"sourceType": "table",
"dataCategory": "simple",
"order": 0,
"tableOrViewName": "incident",
"aggregateFunction": "AVG",
"aggregateField": "priority"
}
]
}
}
]要求は、データの可視化ごとに 1 つずつ、オブジェクトのアレイです。各可視化には、visualizationIdの任意の値を持つdetailsプロパティと、可視化がページ上のフィルターコンポーネントに従うかどうかを示すブールfollowFilter設定があります。この場合、3 つの可視化はすべてフィルターに従います。
各可視化には、dataConfigurations配列のみを含む configurations プロパティもあります。すべての可視化は同じタイプ (単一スコア) であり、この可視化タイプは単純な値のみを表示するため、 dataCategory 3 つのプロパティはすべて「シンプル」です。同様に、すべての可視化で同じデータソースが使用されます。データソースはインシデント [incident] テーブルであるため、3 つのチャート化の sourceType はすべて「table」、 tableOrViewName は「incident」です。視覚化が異なる可能性がある唯一の場所は、使用する集計です。ここでは、1 つ目は COUNT 集計を使用し、2 つ目は business_duration フィールドの AVG 集計を取得し、3 つ目は優先度フィールドの平均を取得することがわかります。
。
vizId 値として使用します。function evaluateProperty({api, helpers}) {
const data = api.data.data_visualization_api_for_multiple_data_visualizations_1.output;
if (!data) {
return [];
}
const vizId = 'vis_1';
const dataForViz = data.result.find(d => d.details.visualizationId === vizId);
return dataForViz.dataResponses;
}インジケーターの要求 JSON
[
{
"details": {
"visualizationId": "vis1",
"followFilter": true
},
"configurations": {
"dataConfigurations": [
{
"sortBy": "choice",
"sortOrder": "asc",
"sourceType": "indicator",
"dataCategory": "trend",
"order": 0,
"splitView": false,
"numberOfGroups": 2,
"uuid": {
"indicator": "fb007202d7130100b96d45a3ce6103b4",
"breakdowns": []
},
"trendBy": "anything",
"trendInterval": "date",
"groupBy": [
"0df47e02d7130100b96d45a3ce610399"
],
"removeMissingIntervalData": false
}
]
}
}
]最初の明らかな違いは、 sourceType が「指標」であり、 dataCategory が「トレンド」であるということです。また、 tableOrViewName プロパティの代わりに、オープンインシデントの数インジケーターの uuid を持つ uuid オブジェクトと、そのインジケーターをフィルタリングするためのブレークダウンの uuid を保持できる空のアレイがあることもわかります。この可視化はグループ化された値をサポートしているため、この場合は優先度ブレークダウンの uuid のみを含む groupBy 配列があります。グループ分けはソートを意味しますが、ここでは、 sortBy が優先度ブレークダウンのデータタイプを反映した「選択肢」であり、 sortOrder が昇順であることがわかります。