여러 데이터 시각화를 위한 로컬 데이터 인스턴스

  • 릴리스 버전: Zurich
  • 업데이트 날짜 2025년 07월 31일
  • 소요 시간: 7분
  • 특수 데이터 시각화 API 데이터 자원을 사용하여 여러 데이터 시각화에 대한 데이터를 동시에 가져올 수 있습니다. 이 데이터 자원은 API 호출 수를 줄여 데이터 가져오기 속도를 높일 수 있습니다.

    사용 시기

    다음 시나리오에서 "여러 데이터 시각화를 위한 데이터 시각화 API" 데이터 자원을 사용할 수 있습니다.
    • 같은 유형의 여러 데이터 시각화에는 동일한 데이터 소스가 있습니다. 예를 들어 시각화 유형이 단일 점수이고 데이터 소스가 필터 active=true가 있는 인시던트 [incident] 테이블인 5개의 시각화가 있습니다. 유형과 데이터 소스가 동일한 표시기 그룹이 여러 개 있는 경우 각 그룹에 대해 동일한 다중 시각화 데이터 자원의 인스턴스를 만들 수 있습니다.
    • 데이터 시각화에는 동일한 데이터 소스를 참조하는 여러 데이터 자원이 있습니다. 예를 들어 "오픈 인시던트 수" 표시기의 데이터 자원과 "오픈 인시던트의 평균 연령" 표시기의 다른 데이터 자원이 있는 선 시각화가 있습니다. 이 두 표시기 모두 Incident.Open 데이터 소스를 사용합니다. 효율성을 위해 이 시각화를 하나의 데이터 자원만 사용하도록 변환할 수 있습니다.

    사용하지 말아야 할 경우

    • 페이지에는 UI 빌더 하나의 데이터 시각화만 있습니다.
    • 페이지의 데이터 시각화는 데이터를 로드하는 데 시간이 오래 걸릴 수 있습니다. 이 경우 데이터 로드를 별도의 데이터 리소스 간에 분할하여 유지하는 것이 좋습니다.

    여러 시각화 데이터 자원 설정

    사용 사례가 다중 시각화 데이터 자원에 대한 기준을 충족하는 경우 다음 절차를 따를 수 있습니다.

    시작하기 전에

    에서 여러 데이터 시각화를 위한 로컬 데이터 인스턴스여러 시각화에 대한 단일 데이터 자원의 사용 사례를 검토합니다.

    필요한 역할: ui_builder_admin, admin

    이 태스크 정보

    중요사항:
    이 데이터 자원은 여러 호출을 단일 호출로 병합합니다. 단일 호출은 단일 스레드에서 단일 트랜잭션으로 실행됩니다. 따라서 특히 많은 양의 데이터를 처리할 때는 트랜잭션 제한시간이 발생할 수 있으므로 이 데이터 자원을 각별히 주의해서 사용하십시오. 데이터의 양, 페이지 설정 및 대상 사용자 경험에 따라 별도의 데이터 자원을 사용하면 더 나은 결과를 얻을 수 있습니다.

    프로시저

    1. 데이터 시각화가 있는 기술 대시보드 또는 UIB 페이지로 이동합니다.
    2. 페이지의 데이터 시각화가 사용 시기의 기준을 충족하는지 확인합니다.
      예를 들어 인시던트 테이블 데이터 소스에 여러 다이얼 시각화가 있고 가져오는 데이터의 양이 그리 크지 않습니다.
    3. 데이터 및 스크립트 서랍의 데이터 자원 아래에서 + 데이터 자원 추가를 선택합니다.

      아직 데이터 자원이 없을 때 데이터 자원 링크를 추가합니다.
    4. 데이터 자원 선택 창에서 데이터 시각화를 검색합니다.
      사용할 수 있는 데이터 자원을 선택할 수 있습니다.
      여러 데이터 시각화를 위한 자원을 포함한 데이터 시각화 API 데이터 자원의 선택입니다.
    5. "여러 데이터 시각화를 위한 데이터 시각화 API"를 선택합니다.
    6. 유형을 데이터 구성으로 설정합니다.
    7. 요청 필드에 JSON을 입력합니다.
      이 절차의 끝에 있는 예시를 참조하십시오.
    8. 이 데이터 자원을 사용하려는 각 데이터 시각화에서 다음 작업을 수행합니다.
      1. 데이터 시각화를 선택합니다.
      2. 구성 패널을 엽니다.
      3. 데이터를 수동으로 정의를 켭니다.
      4. 데이터 바인딩을 사용하여 데이터 필드에 스크립트를 바인딩합니다.

    동일한 데이터 소스를 사용한 3개의 단일 점수 시각화를 위한 데이터 자원

    이 예에서는 세 개의 데이터 시각화 구성요소가 포함된 UIB 페이지로 시작합니다. 이러한 구성요소는 모두 단일 점수 시각화 유형에 속하며 모두 동일한 데이터 소스를 사용합니다.

    6단계까지 일반 절차를 따릅니다. 이제 대시보드 페이지에 여러 데이터 시각화를 위한 데이터 시각화 API가 있습니다.

    다음으로 다음과 같이 요청에 대한 JSON을 작성합니다.
    [
        {
            "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"
                    }
                ]
            }
        }
    ]

    요청은 각 데이터 시각화에 대해 하나씩 객체의 배열입니다. 각 시각화에는 시각화가 details 페이지의 필터 구성 요소를 따르는지 여부에 대한 visualizationId 임의 값과 부울 followFilter 설정이 있는 속성이 있습니다. 이 경우 세 가지 시각화는 모두 필터를 따릅니다.

    각 시각화에는 configurations 배열만 포함하는 속성도 있습니다.dataConfigurations 모든 시각화는 동일한 유형인 단일 점수이고 이 시각화 유형은 단순한 값만 표시하므로 세 가지 dataCategory 속성은 모두 "단순"입니다. 마찬가지로 모든 시각화는 동일한 데이터 소스를 사용합니다. 데이터 소스가 인시던트 [incident] 테이블이므로 세 가지 시각화 모두 "테이블"과 tableOrViewName "인시던트"가 있습니다sourceType. 시각화가 달라질 수 있는 유일한 영역은 시각화에서 사용하는 집계입니다. 첫 번째는 COUNT 집계를 사용하고, 두 번째는 business_duration 필드에서 AVG 집계를 사용하고, 세 번째는 우선순위 필드의 AVG를 사용합니다.

    데이터 자원의 최종 구성은 다음과 같습니다.
    대시보드 데이터 브로커의 구성을 완료했습니다.
    마지막으로 각 데이터 시각화에 대해 다음 스크립트를 데이터 필드에 바인딩합니다. 각 시각화에 지정한 임의 visualizationId 값을 해당 시각화에 대한 스크립트의 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 요청

    표시기에 대한 시각화 요청은 테이블에 대한 이전 예와 다릅니다. 다음은 우선순위 세부 항목별로 그룹화된 오픈 인시던트 수 표시기에 대해 시간 경과에 따른 추세를 보여주는 시계열 시각화의 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 . 그룹 기준이 있다는 것은 정렬을 의미하며, 여기서는 우선순위 세부 항목 sortOrder 의 데이터 유형을 반영하는 "선택"이고 오름차순임을 알 sortBy 수 있습니다.