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

  • 릴리스 버전: Yokohama
  • 업데이트 날짜 2025년 01월 30일
  • 읽기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. Define data manually(수동으로 데이터 정의)를 켭니다.
      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] 테이블이기 때문에 세 가지 시각화 모두 "테이블"과 "incident"의 a 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
                    }
                ]
            }
        }
    ]

    첫 번째이자 명백한 차이점은 is "지표"와 is dataCategory "추세"입니다sourceType. 또한 속성 uuid 대신 tableOrViewName 오픈 인시던트 수 표시기의 UUID가 있는 객체와 해당 표시기를 필터링하기 위한 세부 항목의 UUID를 저장할 수 있는 빈 배열이 있음을 알 수 있습니다. 이 시각화는 groupBy 그룹 기준 값을 지원하기 때문에 이 경우 우선순위 세부 항목의 UUID만 포함하는 배열이 있습니다. 그룹 기준이 있다는 것은 정렬을 의미하며, 여기서는 가 sortBy 우선순위 세분화의 데이터 유형을 반영하는 "선택"이고 오 sortOrder 름차순임을 알 수 있습니다.