Instâncias de dados locais para várias visualizações de dados
Um recurso de dados especial da API de visualização de dados está disponível para buscar dados para várias visualizações de dados simultaneamente. Este recurso de dados reduz o número de chamadas de API e, portanto, pode acelerar a busca de dados.
Quando usar
- Várias visualizações de dados do mesmo tipo têm a mesma fonte de dados. Por exemplo, você tem cinco visualizações em que o tipo de visualização é Pontuação única e a fonte de dados é a tabela Incidente [incidente] com o filtro
verdadeiro. Se você tiver vários grupos de indicadores com o mesmo tipo e fonte de dados, poderá criar uma instância do mesmo recurso de dados de visualização múltipla para cada grupo. - Uma visualização de dados tem vários recursos de dados que fazem referência à mesma fonte de dados. Por exemplo, você tem uma visualização de linha com um recurso de dados do indicador "Número de incidentes em aberto" e outro recurso de dados do indicador "Idade média dos incidentes em aberto". Esses indicadores usam a fonte de dados Incident.Open. Para eficiência, você pode converter esta visualização para usar apenas um recurso de dados.
Quando não usar
- Há apenas uma visualização de dados no Construtor de IU página.
- As visualizações de dados na página provavelmente levarão muito tempo para carregar os dados. Nesse caso, é melhor manter o carregamento de dados dividido entre recursos de dados separados.
Configure um recurso de dados de visualização múltipla
Se o seu caso de uso atender aos critérios de um recurso de dados de visualização múltipla, você poderá seguir este procedimento.
Antes de Iniciar
Revise o caso de uso de um único recurso de dados para várias visualizações em Instâncias de dados locais para várias visualizações de dados.
Função necessária: ui_builder_admin, admin
Por Que e Quando Desempenhar Esta Tarefa
Procedimento
Recurso de dados para três visualizações de pontuação única com a mesma fonte de dados
Neste exemplo, começamos com uma página do UIB que contém três componentes de Visualização de dados. Todos esses componentes são do tipo de visualização Pontuação única e usam a mesma fonte de dados.
Você segue o procedimento geral até a Etapa 6. Agora, você tem uma API de visualização de dados para várias visualizações de dados na página Painéis.
[
{
"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"
}
]
}
}
]A solicitação é uma matriz de objetos, um para cada visualização de dados. Cada visualização tem um detailspropriedade com um valor arbitrário para visualizationIde um booliano followFilterdefinindo se a visualização segue os componentes de filtro na página. Nesse caso, todas as três visualizações seguem filtros.
Cada visualização também tem um configurationspropriedade, que contém somente um dataConfigurationsmatriz. Porque todas as visualizações são do mesmo tipo, Pontuação única, e esse tipo de visualização mostra apenas um valor simples, todos os três dataCategoryas propriedades são "simples". Da mesma forma, todas as visualizações usam a mesma fonte de dados. Como a fonte de dados é a tabela Incidente [incidente], as três visualizações têm um sourceTypede "tabela" e um tableOrViewNamede "incidente". O único lugar em que as visualizações podem variar são os agregados que elas usam. Aqui, você vê que o primeiro usa uma agregação de CONTAGEM, o segundo usa um agregado AVG no campo business_duration e o terceiro usa um AVG do campo de prioridade.
VizId valor no script para essa visualização.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;
}Solicite JSON para um indicador
[
{
"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
}
]
}
}
]As primeiras e óbvias diferenças são que o. sourceTypeé "indicador" e o. dataCategoryé "tendência". Você também vê isso em vez de a. tableOrViewNamevocê tem um uuidObjeto com o uuid do indicador Número de incidentes em aberto e uma matriz vazia que pode conter os uuuids de detalhamentos para filtrar esse indicador. Como esta visualização oferece suporte a valores de agrupamento por, você tem um groupByMatriz que, neste caso, contém somente o uuuid do detalhamento de prioridade. Ter um group-by implica a classificação, e aqui você vê que sortByÉ "opção", refletindo o tipo de dados do detalhamento de prioridade e o. sortOrderé crescente.