KR102223090B1 - 차트생성장치 및 그 방법 - Google Patents
차트생성장치 및 그 방법 Download PDFInfo
- Publication number
- KR102223090B1 KR102223090B1 KR1020190043788A KR20190043788A KR102223090B1 KR 102223090 B1 KR102223090 B1 KR 102223090B1 KR 1020190043788 A KR1020190043788 A KR 1020190043788A KR 20190043788 A KR20190043788 A KR 20190043788A KR 102223090 B1 KR102223090 B1 KR 102223090B1
- Authority
- KR
- South Korea
- Prior art keywords
- chart
- data
- central management
- management unit
- source data
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/901—Indexing; Data structures therefor; Storage structures
- G06F16/9024—Graphs; Linked lists
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/904—Browsing; Visualisation therefor
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/906—Clustering; Classification
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/10—Text processing
- G06F40/166—Editing, e.g. inserting or deleting
- G06F40/183—Tabulation, i.e. one-dimensional positioning
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- General Physics & Mathematics (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Software Systems (AREA)
- Health & Medical Sciences (AREA)
- Artificial Intelligence (AREA)
- Audiology, Speech & Language Pathology (AREA)
- Computational Linguistics (AREA)
- General Health & Medical Sciences (AREA)
- User Interface Of Digital Computer (AREA)
Abstract
차트생성장치 및 그 방법이 개시된다. 차트생성장치는 원천 데이터를 적어도 둘 이상의 그룹 데이터로 분할하고, 복수 개의 작업처리부를 통해 적어도 둘 이상의 그룹 데이터에 대한 차트를 각각 생성한 후 적어도 둘 이상의 그룹 데이터에 대한 차트를 중첩하여 제공한다.
Description
본 발명의 실시 예는 차트를 생성하는 방법 및 그 장치에 관한 것으로, 보다 상세하게는 빅 데이터(big data) 등과 같이 방대한 양의 데이터를 차트로 생성하는 방법 및 그 장치에 관한 것이다.
빅 데이터는 그 양이 매우 방대하여 기존의 데이터베이스 관리도구로 수집, 저장, 검색, 분석, 시각화 등이 어려운 정형 또는 비정형 데이터 집합을 의미한다. 따라서 빅 데이터를 분석하고 처리하기 위해서는 별도의 도구가 개발되어야 한다.
예를 들어, 수백만 또는 수천만 건에 이르는 빅 데이터를 한 눈에 볼 수 있는 차트를 그리고자 할 경우에 수백만 또는 수천만 건의 데이터를 일일이 화면에 표시하여야 하는데, 이는 일반적인 컴퓨터의 처리 용량을 벗어날 뿐만 아니라 고성능의 서버를 이용한다고 하여도 빅 데이터에 대한 하나의 차트를 그리는데 매우 많은 시간이 걸리므로 현실적으로 어렵다. 더구나 대용량의 데이터에 대한 차트를 그린 후 그 차트를 축소 또는 확대할 때마다 처음부터 차트를 다시 그린다는 것은 거의 불가능하다.
본 발명의 실시 예가 이루고자 하는 기술적 과제는, 빅 데이터와 같이 매우 많은 양의 데이터를 실시간 차트로 생성할 수 있는 방법 및 그 장치를 제공하는 데 있다.
상기의 기술적 과제를 달성하기 위한, 본 발명의 실시 예에 따른 차트생성장치의 일 예는, 차트의 생성을 각각 독립적으로 수행하는 복수 개의 작업처리부; 및 원천 데이터를 적어도 둘 이상의 그룹 데이터로 분할하고, 적어도 둘 이상의 그룹 데이터의 차트 생성을 적어도 둘 이상의 작업처리부에 요청하고, 적어도 둘 이상의 작업처리부에 의해 생성된 복수 개의 차트를 중첩하여 제공하는 중앙관리부;를 포함한다.
상기의 기술적 과제를 달성하기 위한, 본 발명의 실시 예에 따른 차트생성방법의 일 예는, 중앙관리부 및 복수 개의 작업처리부를 포함하는 차트생성장치가 수행하는 차트생성방법에 있어서, 상기 중앙관리부는 원천 데이터를 적어도 둘 이상의 그룹 데이터로 분할하는 단계; 상기 복수 개의 작업처리부는 적어도 둘 이상의 그룹 데이터에 대한 차트를 각각 생성하는 단계; 및 상기 중앙관리부는 적어도 둘 이상의 그룹 데이터에 대한 차트를 중첩하여 제공하는 단계;를 포함한다.
본 발명의 실시 예에 따르면, 빅 데이터 등과 같은 대용량 데이터를 모두 일일이 그려 차트로 생성할 수 있다. 또한, 원천 데이터를 그룹으로 분할하여 차트를 생성하므로 차트 생성 시간을 단축할 수 있으며, 차트의 확대나 축소 등의 요청에도 실시간 차트를 수정하여 표시할 수 있다. 또 다른 실시 예에 따르면, 원천 데이터를 분할한 각 그룹 데이터를 바이너리 파일로 압축 저장하고 이 바이너리 파일을 이용하여 차트를 생성하므로, 저장공간을 절약할 수 있을 뿐만 아니라 메모리 로딩 시간 또는 전송 시간 등을 단축할 수 있다. 또 다른 실시 예로, 원천 데이터의 일부만이 수정된 경우에 원천 데이터에 대한 차트를 모두 새롭게 생성할 필요없이 해당 부분에 대한 차트 부분만을 수정할 수 있어 하드웨어 자원의 낭비를 방지하고 차트 생성에 소요되는 시간을 획기적으로 줄일 수 있다.
도 1은 본 발명의 실시 예에 따른 차트생성장치의 구성의 일 예를 도시한 도면,
도 2는 본 발명의 실시 예에 따른 원천 데이터의 일 예를 도시한 도면,
도 3은 본 발명의 실시 예에 따라 원천 데이터를 분할하는 일 예를 도시한 도면,
도 4는 본 발명의 실시 예에 따라 복수의 서브 차트를 중첩하는 개념을 도시한 도면,
도 5는 본 발명의 실시 예에 따라 중앙관리부가 각 작업처리부에 제공하는 차트표시정보의 일 예를 도시한 도면,
도 6은 본 발명의 실시 예에 따라 그룹 데이터를 저장하는 방식의 일 예를 도시한 도면,
도 7은 본 발명의 실시 예에 따라 그룹 데이터의 데이터값을 바이너리 파일로 변환하는 방법의 일 예를 도시한 도면, 그리고,
도 8은 본 발명의 실시 예에 따른 차트생성방법의 일 예를 도시한 흐름도이다.
도 2는 본 발명의 실시 예에 따른 원천 데이터의 일 예를 도시한 도면,
도 3은 본 발명의 실시 예에 따라 원천 데이터를 분할하는 일 예를 도시한 도면,
도 4는 본 발명의 실시 예에 따라 복수의 서브 차트를 중첩하는 개념을 도시한 도면,
도 5는 본 발명의 실시 예에 따라 중앙관리부가 각 작업처리부에 제공하는 차트표시정보의 일 예를 도시한 도면,
도 6은 본 발명의 실시 예에 따라 그룹 데이터를 저장하는 방식의 일 예를 도시한 도면,
도 7은 본 발명의 실시 예에 따라 그룹 데이터의 데이터값을 바이너리 파일로 변환하는 방법의 일 예를 도시한 도면, 그리고,
도 8은 본 발명의 실시 예에 따른 차트생성방법의 일 예를 도시한 흐름도이다.
이하에서 첨부된 도면들을 참조하여 본 발명의 실시 예에 따른 차트생성장치 및 그 방법에 대해 상세히 설명한다.
도 1은 본 발명의 실시 예에 따른 차트생성장치의 구성의 일 예를 도시한 도면이다.
도 1을 참조하면, 차트생성장치는 중앙관리부(100), 적어도 둘 이상의 작업처리부(110) 및 데이터저장소(120)를 포함한다. 중앙관리부(100) 및 적어도 둘 이상의 작업처리부(110)는 각각 물리적 또는 논리적으로 구분되는 서버로 구현될 수 있다. 예를 들어, 적어도 둘 이상의 작업처리부(110)는 각각 가상머신(Virtual Machine)으로 구현될 수 있다. 실시 예에 따라 데이터저장소(120)는 생략될 수 있다. 다만, 이하에서는 데이터저장소(120)를 포함한 차트생성장치를 기준으로 설명한다. 작업처리부(110)가 논리적 서버로 구현되는 경우에 작업처리부(110)의 개수는 원천 데이터의 크기 또는 도 3에서 살펴볼 그룹 데이터의 개수에 따라 능동적으로 변경될 수 있다.
차트생성장치가 생성하는 차트는 두 개 이상의 값의 상호 관계 또는 변화의 상태를 도형적으로 표현한 것을 의미한다. 차트의 일 예로, 원 차트, 막대 차트, 꺾은선 차트, 산포도 차트(scatter chart), 박스플랏(boxplot), 트리맵(treemap) 등 여러 가지가 존재한다.
원천 데이터(130)를 구성하는 데이터 요소는 차트에서 원, 사각형, 삼각형, 선, 점 등 다양한 모양의 범례(legend)로 표현될 수 있다. 또한, 데이터 요소를 표시하는 범례는 차트에서 다양한 색상이나 크기로 표시될 수 있다.
원천 데이터(130)는 매우 많은 데이터 요소를 포함한다. 원천 데이터(130)에 포함된 모든 데이터 요소를 차트에 표시하기 위해서는 데이터 요소의 개수만큼 그리기 동작을 수행하여야 한다. 차트 생성 시간을 줄이기 위하여 본 실시 예는 원천 데이터(130)에 대한 차트 생성을 복수 개의 작업처리부(110)를 통해 분산 처리한다. 본 실시 예를 포함한 이하의 실시 예는 원천 데이터(130)가 빅 데이터처럼 많은 데이터 요소를 포함하는 경우를 가정하여 설명하나, 본 실시 예는 빅 데이터 분야에 한정되는 것은 아니며 일반 데이터 분야에도 적용될 수 있다. 원천 데이터(130)의 일 예가 도 2에 도시되어 있다.
원천 데이터(130)는 종래의 다양한 데이터베이스 관리 시스템(DBMS, DataBase Management System)에 저장될 수 있다. 이 경우에, 중앙관리부(100)는 원천 데이터(130)가 저장된 데이터베이스 관리 시스템에 읽기, 쓰기 등의 쿼리를 전송하고, 데이터베이스 관리 시스템으로부터 해당 쿼리에 대한 결과를 수신할 수 있다. 예를 들어, 중앙관리부(100)는 데이터베이스 관리 시스템에 원천 데이터의 데이터 요소의 개수를 문의하거나, 원천 데이터에 포함된 데이터 요소의 최소값 및 최대값을 문의하고 그 결과를 수신할 수 있다. 데이터베이스 관리 시스템 그 자체는 종래에 널리 알려진 기술이므로 이에 대한 상세한 설명은 생략한다.
중앙관리부(100)는 원천 데이터(130)에 대한 차트를 복수 개의 작업처리부(110)를 통해 생성할 수 있다. 예를 들어, 중앙관리부(100)는 원천 데이터(130)에 포함된 복수 개의 데이터 요소를 그룹 데이터로 분할하고, 각 그룹 데이터에 대한 차트(이하, '서브 차트')의 생성을 각 작업처리부(110)에 요청할 수 있다. 원천 데이터를 복수 개의 그룹 데이터로 분할한 예가 도 3에 도시되어 있다.
각 작업처리부(110)는 중앙관리부(100)를 통해 그룹 데이터를 제공받거나 원천 데이터가 저장된 데이터베이스 관리 시스템으로부터 직접 그룹 데이터를 제공받을 수 있다. 예를 들어, 각 작업처리부(110)는 자신이 처리할 그룹 데이터의 구간 정보를 중앙관리부(100)로부터 제공받으면, 그룹 데이터의 구간 정보를 이용하여 데이터베이스 관리 시스템에 해당 구간의 데이터(즉, 그룹 데이터)를 요청하여 수신할 수 있다.
중앙관리부(100)는 각 작업처리부(110)가 생성한 서브 차트를 중첩 배치하여 원천 데이터(130)에 대한 차트를 완성하고 제공한다. 각 작업처리부(110)가 생성한 서브 차트는 일종의 픽셀단위 이미지이며, 중앙관리부(100)는 픽셀단위 이미지로 구성된 각 서브 차트를 중첩하여 차트를 완성한다. 각 작업처리부(110)가 생성한 서브 차트를 중첩하는 개념의 일 예가 도 4에 도시되어 있다.
각 작업처리부(110)가 그룹 데이터를 기반으로 서브 차트를 생성할 때 각 그룹 데이터에 포함된 데이터 요소의 최소값 및 최대값의 범위가 서로 다르면, 각 작업처리부(110)가 생성한 서브 차트의 크기나 차트 표시 범위 등도 서로 다를 수 있다. 예를 들어, 제1 작업처리부에서 생성한 서브 차트는 가로축의 범위가 100~1000이고, 제2 작업처리부에서 생성한 서브 차트는 가로축의 범위가 110~1100일 수 있다. 또는 제1 작업처리부에서 생성한 서브 차트는 500*500 픽셀 수로 이루어진 반면, 제2 작업처리부에서 생성한 서브 차트는 600*500 픽셀 수로 이루어질 수 있다. 이와 같은 경우에, 중앙관리부(100)는 각 작업처리부(110)가 생성한 차트를 동일한 크기의 차트 및 표시 범위로 조정하는 후처리 과정이 필요하다.
중앙관리부(100)가 후처리 과정 없이 신속하게 차트를 완성할 수 있도록 각 작업처리부(110)가 모두 동일한 크기의 차트를 생성하도록 할 수 있다. 이를 위해, 중앙관리부(100)는 각 작업처리부(110)에 각 그룹 데이터의 서브 차트 생성을 요청할 때 차트의 가로 및 세로의 최소값 및 최대값 등을 포함하는 차트표시정보를 제공할 수 있다. 중앙관리부(100)가 각 작업처리부(110)에 제공하는 차트표시정보의 일 예에 대해서 도 5에서 다시 설명한다.
데이터저장소(120)는 원천 데이터 또는 원천 데이터를 분할한 각 그룹 데이터를 바이너리 파일로 저장할 수 있다. 일 실시 예로, 각 작업처리부(110)는 그룹 데이터에 대한 서브 차트 생성 요청을 받으면, 해당 그룹 데이터를 기초로 차트를 생성하고 해당 그룹 데이터를 바이너리 파일로 변환하여 데이터저장소에 저장할 수 있다. 이후 동일한 그룹 데이터에 대한 서브 차트의 생성 요청이 있으면, 작업처리부(110)는 그룹 데이터가 아닌 바이너리 파일을 기초로 차트 생성 과정을 수행할 수 있다. 다른 실시 예로, 중앙관리부(100)가 각 작업처리부(110)에 서브 차트 생성을 요청하기 전에 데이터저장소(120)에 각 그룹 데이터에 대한 바이너리 파일을 미리 저장할 수 있다. 이 경우, 각 작업처리부(110)는 데이터저장소에 저장된 바이너리 파일을 기초로 서브 차트 생성 작업을 수행할 수 있다. 바이너리 파일의 생성 방법에 대해서는 도 6 및 도 7a 및 도 7b에서 다시 설명한다.
도 2는 본 발명의 실시 예에 따른 원천 데이터의 일 예를 도시한 도면이다.
도 2를 참조하면, 원천 데이터(130)는 복수 개의 데이터 요소로 구성되며, 하나의 데이터 요소(250)는 적어도 하나 이상의 필드(210,220,230)에 대한 데이터값을 포함한다. 예를 들어, 원천 데이터(130)는 공장의 각 라인에 설치된 센서들이 일정 시간 간격으로 측정한 각종 센싱 정보일 수 있다. 일정 시간 간격마다 측정한 센싱 정보들이 원천 데이터(130)의 각 데이터 요소를 구성할 수 있다. 이 외에도 원천 데이터(130)는 각종 소비 패턴에 대한 정보, 날씨에 관한 정보 등 정형 또는 비정형의 값을 포함하는 다양한 형태의 빅 데이터일 수 있다.
도 3은 본 발명의 실시 예에 따라 원천 데이터를 분할하는 일 예를 도시한 도면이다.
도 3을 참조하면, 중앙관리부(100)는 원천 데이터(300)를 복수 개의 작업처리부(110)를 통해 분산 처리하기 위하여 복수 개의 그룹으로 분할한다. 원천 데이터를 분할하여 얻은 각 그룹 데이터(310,320,330)에 포함된 데이터 요소의 개수는 서로 동일하거나 서로 다를 수 있다. 예를 들어, 원천 데이터(300)의 데이터 요소 개수가 110만 개인 경우에, 중앙관리부(100)는 원천 데이터(300)를 각각 20만 개의 데이터 요소를 포함하는 제1 내지 제5 그룹 데이터와, 10만 개의 데이터 요소를 포함하는 제6 그룹 데이터로 분할할 수 있다.
원천 데이터(300)의 분할은 원천 데이터에 포함된 데이터 요소의 순서(예를 들어, 범례, X값, Y값 등을 기초로 정렬된 순서)에 따라 분할될 수 있다. 매우 많은 수의 데이터 요소를 차트에 표시할 때 서로 다른 데이터 요소에 대한 범례가 동일 픽셀에 중첩표시될 수 있다. 이 경우, 사용자에게 보이는 데이터 요소는 가장 나중에 차트에 표시된 데이터 요소이다. 따라서 원천 데이터를 어느 하나의 장치가 모두 그리는 경우와 동일한 결과를 얻기 위하여, 중앙 관리부(100)는 원천 데이터(300)를 순차적으로 앞에서부터 분할하거나 또는 뒤에서부터 앞쪽으로 순차적으로 분할하여 각 작업처리부(110)에 할당하고, 각 작업처리부(110)에서 생성된 서브 차트를 순차적으로 중첩배치하여 차트를 생성한다.
일 실시 예로, 중앙관리부(100)는 원천 데이터(300)가 저장된 데이터베이스 관리 시스템에 범례, X값 또는 Y값 등의 순으로 정렬된 데이터 요소의 일정 개수(즉, 제1 그룹 데이터(310))를 읽어 온 후 이를 제1 작업관리부에 전달하고, 그 다음 일정 개수의 데이터 요소(즉, 제2 그룹 데이터(320))를 읽어온 후 이를 제2 작업관리부에 전달할 수 있다.
도 4는 본 발명의 실시 예에 따라 복수의 서브 차트를 중첩하는 개념을 도시한 도면이다.
도 4를 참조하면, 중앙관리부(100)는 각 작업처리부(110)가 생성한 서브 차트(400,410,420)를 중첩하여 하나의 차트(450)를 생성한다. 중앙관리부(100)가 별도의 후처리 작업 없이 각 작업처리부(110)가 생성한 서브 차트(400,410,420)를 단순 중첩하여 하나의 차트(450)를 생성할 수 있도록 각 작업처리부가 생성한 서브 차트(400,410,420)의 가로 및 세로의 최대값 및 최소값의 범위와 크기(가로 및 세로 픽셀 수 등)는 모두 동일할 수 있다.
중앙관리부(100)는 각 작업처리부(110)가 생성한 서브 차트(400,410,420)를 원천 데이터의 데이터 요소의 순서에 따라 중첩한다. 예를 들어, 도 3과 같이 원천 데이터(300)가 순차적으로 제1 내지 제M 그룹 데이터(310,320,330)로 분할되고, 제1 내지 제M 작업처리부(110)가 각 그룹 데이터(310,320,330)에 대한 서브 차트를 생성한 경우에, 중앙관리부(100)는 제1 내지 제M 그룹 데이터에 대한 서브 차트를 순차적으로 중첩 배치한다.
각 작업처리부(110)가 생성한 서브 차트(400,410,420)는 픽셀 단위의 이미지일 수 있다. 중앙관리부(100)는 각 처리작업부(110)가 생성한 복수 개의 서브 차트(400,410,420)를 모두 동일 평면에 투영하여 하나의 차트(450)를 완성한다. 완성된 차트 또한 픽셀 단위의 이미지일 수 있다.
일 실시 예로, 복수 개의 작업처리부(110) 중 어느 한 작업처리부는 차트의 가로축 및 세로축의 최소값 및 최대값과 그 사이의 값들을 표시하는 레이블 등을 포함하는 차트의 기본틀을 생성할 수 있다. 이 경우 나머지 작업처리부는 차트의 레이블 등을 표시하는 과정을 생략하고 순수하게 데이터 요소만을 표시한 서브 차트를 생성할 수 있다. 중앙관리부(110)는 기본틀 위에 서브 차트를 순차적으로 중첩하여 차트를 완성할 수 있다.
도 5는 본 발명의 실시 예에 따라 중앙관리부가 각 작업처리부에 제공하는 차트표시정보의 일 예를 도시한 도면이다.
도 5를 참조하면, 중앙관리부(100)는 각 작업처리부(110)에 그룹 데이터에 대한 서브 차트 생성을 요청할 때 차트의 가로축 및 세로축의 최소값 및 최대값을 포함하는 차트표시정보를 전송할 수 있다. 차트표시정보는 이 외에도 X*Y 픽셀수, 레이블의 표시 방법이나 표시 단위, 범례 등의 정보를 더 포함할 수 있다.
각 작업처리부(110)는 중앙관리부(100)로부터 제공받은 차트표시정보를 기초로 차트를 생성한다. 차트의 기본틀 생성이 어느 하나의 작업처리부에서 이루어지는 경우에, 나머지 작업처리부는 기본틀을 제외한 데이터 요소만이 표시된 서브 차트를 생성할 수 있다.
각 작업처리부(110)가 생성한 서브 차트의 가로 및 세로의 최대값 및 최소값의 범위는 동일하다. 또한, 모든 서브 차트의 X*Y 픽셀수도 동일할 경우에, 중앙관리부(100)는 각 작업처리부가 생성한 차트를 픽셀 단위로 단순 중첩하여 하나의 완성된 차트를 생성할 수 있다.
다른 실시 예로, 중앙관리부(100)는 데이터 요소를 차트에 표시하는데 사용하는 범례와 인덱스값 사이의 맵핑관계를 정의한 범례정의정보를 각 작업처리부(110)에 제공할 수 있다. 예를 들어, 도 2의 A 필드의 데이터값이 A1,A2,A3,A4의 네 종류이고, 이들 데이터값을 파란색, 녹색, 주황색, 빨간색의 네 가지 색상의 범례로 표시하는 차트를 생성하고자 하는 경우, "파란색-0, 녹색-1, 주황색-2, 빨간색-3"와 같이 범례와 인덱스값의 맵핑관계를 나타내는 범례정의정보를 각 작업처리부(110)에 제공할 수 있다. 이 경우에, 각 작업처리부(110)는 그룹 데이터에 포함된 데이터 요소의 각 데이터값을 범례정의정보를 참조하여 범례에 대한 인덱스값으로 변환하고, 인덱스값에 해당하는 범례를 표시한 차트를 생성할 수 있다.
도 6은 본 발명의 실시 예에 따라 그룹 데이터를 저장하는 방식의 일 예를 도시한 도면이다.
도 6을 참조하면, 데이터저장소(120)는 각 그룹 데이터(600,610,620)를 바이너리 파일(650,660,670)로 저장한다. 바이너리 파일(650,660,670)은 데이터 요소를 인덱스값의 바이너리 코드 형태로 포함한다. 그룹 데이터(600,610,620)를 바이너리 파일(650,660,670)로 변환하는 주체는 각 작업처리부(110)이거나 데이터저장소(120) 또는 중앙관리부(100)일 수 있다. 다만, 이하에서는 설명의 편의를 위해 그룹 데이터(600,610,620)를 바이너리 파일(650,660,670)로 변환하는 주체를 각 작업처리부(110)로 한정하여 설명한다.
데이터 요소의 데이터값은 숫자, 문자, 문자열, 기호 등 다양한 형태일 수 있다. 문자 또는 문자열을 포함하는 하나의 데이터 요소를 저장하기 위해서는 적어도 수 byte의 저장 공간이 필요하다. 원천 데이터가 수백만 개의 데이터 요소를 포함하는 빅 데이터인 경우에, 이를 수십 개의 그룹 데이터로 분할한다고 하여도, 각 그룹 데이터 또한 수만 개 이상의 데이터 요소를 포함한다. 그룹 데이터 그 자체를 저장할 경우 매우 많은 저장공간을 차지할 뿐만 아니라 이러한 그룹 데이터를 메모리에 로딩하여 차트를 생성하는데 하드웨어의 자원이 많이 소요되며 처리 시간도 많이 소요되는 단점이 존재한다.
따라서 작업처리부(110)는 데이터 요소를 인덱스값으로 변환하는 과정을 통해, 그룹 데이터(600,610,620)를 바이너리 코드로 구성된 바이너리 파일 형태로 저장한다. 바이너리 파일(650,660,670)은 데이터베이스의 일종이 아니라 일반 컴퓨터 파일이다.
원천 데이터에 대한 차트는 사용자의 요구에 따라 다양한 형태(예를 들어, 원 차트, 막대 차트 등)로 생성되거나 차트의 일부분이 확대 또는 축소될 수 있다. 새로운 종류의 차트 또는 차트의 확대나 축소 등의 사용자 요구가 있으면 매번 원천 데이터에 대한 차트를 새롭게 생성하여야 한다.
본 실시 예는 사용자의 요구에 따른 차트 생성시 복수 개의 작업처리부(110)를 통해 보다 신속하게 차트를 생성하는 방법을 제시하고 있다. 그러나 각 작업처리부(110)가 차트를 생성하기 위해서는 자신에게 할당된 그룹 데이터를 매번 읽어야 한다. 원천 데이터가 빅 데이터인 경우에 원천 데이터가 저장된 DBMS에 각 작업처리부(110)에 필요한 그룹 데이터를 요청하고 수신하는 과정에 많은 시간이 소요될 수 있다. 또한, 그룹 데이터의 크기가 큰 경우에 각 작업처리부(110)가 그룹 데이터 전체를 메모리에 모두 로딩할 수 없는 문제점도 존재한다.
이에 본 실시 예는 각 그룹 데이터를 바이너리 파일로 저장한 후 원천 데이터에 대한 차트 종류 변경, 범례의 변경, 차트의 확대나 축소 등이 필요할 때 각 작업처리부(110)가 각 그룹 데이터(600,610,620)에 해당하는 바이너리 파일(650,660,670)을 이용하여 차트를 생성할 수 있도록 한다. 예를 들어, 그룹 데이터에 포함된 수~수십 바이트 이상의 문자열 등의 데이터 요소를 수 비트(예를 들어, 4bit short type)로 표현 가능한 정수 형태의 인덱스값으로 변환하면 데이터 크기를 매우 많이 감소할 수 있다.
각 작업처리부(110)는 그룹 데이터에 비해 저용량인 바이너리 파일을 신속하게 읽거나 메모리에 로딩할 수 있으므로 원천 데이터로부터 해당 그룹 데이터를 읽는 경우와 대비하여 메모리 로딩시간 또는 전송 시간 등을 많이 단축할 수 있다. 또한, 데이터저장소(120)의 저장공간을 절약할 수 있다.
도 7a 및 도 7b은 본 발명의 실시 예에 따라 그룹 데이터의 데이터 요소를 바이너리 파일로 변환하는 방법의 일 예를 도시한 도면이다.
도 7a를 참조하면, 그룹 데이터의 각 필드에 속한 데이터값의 종류는 한정적일 수 있다. 예를 들어, 도 2의 원천 데이터의 데이터 요소의 개수가 수 백만 건이라고 하여도, 각 필드에 속한 데이터값의 서로 다른 종류는 한정적일 수 있다. 예를 들어, A 필드가 공기질에 관한 측정 데이터값이고, 공기질을 4단계로 구분 표시하는 경우에 A 필드에 속한 데이터값의 종류는 4개이다. 따라서 본 실시 예는 데이터값의 서로 다른 종류의 개수가 한정적이라는 특징을 기초로 그룹 데이터의 크기를 바이너리 파일로 축소 저장할 수 있는 방법을 제시한다.
이하에서는 설명의 편의를 위하여 원천 데이터의 데이터 요소는 A 필드와 B 필드로 구성되고, A 필드(210)에 저장되는 데이터값의 종류는 A1,A2,A3,A4(700)의 네 가지이며, B 필드(220)에 저장되는 데이터값의 종류는 B1,B2,B3(710) 세 가지라고 가정한다.
중앙관리부(100)는 원천 데이터가 저장된 데이터베이스 관리 시스템에 쿼리(예를 들어, 'group by' 또는 'distinct function' 등)를 이용하여 원천 데이터에 포함된 데이터 요소의 서로 다른 종류를 파악한다. 본 실시 예에서, 중앙관리부(100)는 데이터베이스 관리 시스템을 통해 "A1_B1, A1_B2, B1_B3, A2_B1, A2_B2, A2_B3, A3_B1, A3_B2, A3_B3, A4_B1, A4_B2, A4_B3"의 데이터 요소의 서로 다른 종류를 나타내는 데이터분류정보(720)를 획득할 수 있다. 데이터분류정보(720)에 포함되는 서로 다른 데이터 요소의 종류는 원천 데이터의 데이터 요소의 순서에 따라 정렬될 수 있다. 데이터분류정보(720)는 데이터저장소(120)에 저장될 수 있다.
데이터분류정보(720)의 각 요소는 순차적으로 증가하는 인덱스값(730)과 일대일 맵핑될 수 있다. 본 실시 예는 인덱스값이 0부터 순차적으로 증가하는 숫자를 제시하고 있으나, 이에 한정되는 것은 아니며 순차적으로 증감할 수 있는 값이면 어떤 형태든지 가능하다.
도 7b를 참조하면, 각 작업처리부(110)는 그룹 데이터(750)를 인덱스값(760)으로 변환하여 바이너리 파일(770)로 저장한다. 본 실시 예는 이해를 돕기 위하여 그룹 데이터(750)가 "A1_B1, A1_B3, A2_B2, A3_B1"인 경우를 가정하여 설명한다.
작업처리부(110)는 도 7a의 데이터분류정보(720)를 이용하여 그룹 데이터(750)의 각 데이터 요소를 인덱스 값(760)으로 변환한다. 예를 들어, 데이터분류정보에서 A1_B1의 인덱스값은 0이고, A1_B3의 인덱스값은 2, A1_B2의 인덱스값은 4, A3_B1의 인덱스값은 6이므로, 그룹 데이터 "A1_B1, A1_B3, A2_B2, A3_B1"(750)은 인덱스값 "0,2,4,6"(760)으로 변환된다. 작업처리부는 "0,2,4,6"의 인덱스값을 바이너리 코드로 포함하는 바이너리 파일(770)을 저장한다.
이후 작업처리부(110)는 바이너리 파일(770)을 이용하여 서브 차트를 생성할 수 있다. 작업처리부(110)가 바이너리 파일(770)에서 "2"의 인덱스값을 읽으면, 데이터분류정보(720)를 통해 "2"의 인덱스값에 해당하는 실제 데이터 요소의 값이 "A1_B3"임을 파악할 수 있다.
도 8은 본 발명의 실시 예에 따른 차트생성방법의 일 예를 도시한 흐름도이다.
도 8을 참조하면, 중앙관리부(100)는 원천 데이터를 적어도 둘 이상의 그룹 데이터로 분할한다(S800). 원천 데이터의 분할 예가 도 3에 도시되어 있다. 복수 개의 작업처리부(110)는 각 그룹 데이터에 대한 서브 차트를 생성한다(S810). 작업처리부(110)가 생성하는 서브 차트의 크기나 레이블, 가로 및 세로의 최대 및 최소값의 범위가 모두 동일하도록 중앙관리부(100)는 각 작업처리부(110)에 차트의 가로 또는 세로의 최소값 및 최대값을 포함하는 차트표시정보를 제공할 수 있다. 중앙관리부(100)는 각 작업처리부(110)가 생성한 서브 차트를 중첩하여 원천 데이터에 대한 차트를 생성하여 제공한다(S820).
사용자로부터 차트의 축소나 확대 또는 범례의 변경 등의 요청사항이 있어 다시 차트를 생성하여야 할 경우에, 중앙관리부(100)는 사용자 요청사항이 반영된 차트표시정보를 작업처리부(110)에 제공하면서 각 그룹 데이터에 대한 차트 생성을 요청할 수 있다. 각 작업처리부(110)는 원천 데이터를 분할한 그룹 데이터를 기초로 다시 차트를 생성한다. 이때 각 작업처리부(110)는 데이터저장소(120)에 저장된 각 그룹 데이터의 바이너리 파일을 기초로 차트 생성 작업을 수행할 수 있다. 바이너리 파일의 저장 방법은 도 6 및 도 7에 도시되어 있다.
다른 실시 예로, 원천 데이터의 일부가 변경된 경우에 중앙관리부(100)는 변경된 부분이 어느 그룹 데이터에 속하는지 파악한 후 해당 그룹 데이터에 대한 서브 차트 생성을 일부 작업 처리부(110)에 요청할 수 있다. 변경된 그룹 데이터에 대한 서브 차트가 생성되면, 중앙관리부(100)는 이전에 생성한 다른 서브 차트와 변경된 그룹 데이터에 대한 서브 차트를 순서에 맞게 중첩 배치하여 원천 데이터에 대한 차트를 신속하게 생성하고 제공할 수 있다.
본 발명은 또한 컴퓨터로 읽을 수 있는 기록매체에 컴퓨터가 읽을 수 있는 코드로서 구현하는 것이 가능하다. 컴퓨터가 읽을 수 있는 기록매체는 컴퓨터 시스템에 의하여 읽혀질 수 있는 데이터가 저장되는 모든 종류의 기록장치를 포함한다. 컴퓨터가 읽을 수 있는 기록매체의 예로는 ROM, RAM, CD-ROM, 자기 테이프, 플로피디스크, 광데이터 저장장치 등이 있다. 또한 컴퓨터가 읽을 수 있는 기록매체는 네트워크로 연결된 컴퓨터 시스템에 분산되어 분산방식으로 컴퓨터가 읽을 수 있는 코드가 저장되고 실행될 수 있다.
이제까지 본 발명에 대하여 그 바람직한 실시 예들을 중심으로 살펴보았다. 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자는 본 발명이 본 발명의 본질적인 특성에서 벗어나지 않는 범위에서 변형된 형태로 구현될 수 있음을 이해할 수 있을 것이다. 그러므로 개시된 실시 예들은 한정적인 관점이 아니라 설명적인 관점에서 고려되어야 한다. 본 발명의 범위는 전술한 설명이 아니라 특허청구범위에 나타나 있으며, 그와 동등한 범위 내에 있는 모든 차이점은 본 발명에 포함된 것으로 해석되어야 할 것이다.
Claims (12)
- 서브차트의 생성을 각각 독립적으로 수행하는 복수 개의 작업처리부; 및
원천 데이터를 적어도 둘 이상의 그룹 데이터로 분할하고, 각 그룹 데이터를 이용한 서브차트의 생성을 각 작업처리부에 요청하고, 적어도 둘 이상의 작업처리부에 의해 생성된 복수 개의 서브차트를 중첩하여 생성한 상기 원천 데이터의 차트를 제공하는 중앙관리부;를 포함하고,
상기 중앙관리부는, 상기 원천 데이터를 기초로 상기 차트의 가로와 세로의 최소값 및 최대값을 포함하는 차트표시정보를 결정하고, 상기 복수 개의 작업처리부에 서브차트 생성을 요청할 때 상기 차트표시정보를 제공하고,
상기 복수 개의 작업처리부는 각각 상기 차트표시정보를 기초로 동일한 크기의 서브차트를 생성하는 것을 특징으로 하는 차트생성장치. - 삭제
- 제 1항에 있어서,
상기 차트표시정보는 차트의 가로 및 세로 픽셀수를 포함하는 것을 특징으로 하는 차트생성장치. - 제 1항에 있어서,
상기 복수 개의 작업처리부 중 어느 하나는 차트의 레이블을 포함하는 기본틀을 생성하고,
상기 중앙관리부는 상기 기본틀 위에 각 작업처리부가 생성한 차트를 순차적으로 중첩 배치하는 것을 특징으로 하는 차트생성장치. - 제 1항에 있어서,
그룹 데이터의 데이터 요소를 인덱스값으로 표현한 바이너리 파일을 저장하는 데이터저장소;를 더 포함하고,
상기 작업처리부는 상기 바이너리 파일을 읽어 차트를 생성하는 것을 특징으로 하는 차트생성장치. - 제 5항에 있어서,
상기 인덱스값은 순차적으로 증가하는 값이고,
상기 데이터저장소는, 상기 원천 데이터에 포함된 데이터 요소의 종류를 상기 인덱스값의 순서에 따라 포함하는 데이터분류정보를 저장하는 것을 특징으로 하는 차트생성장치. - 중앙관리부 및 복수 개의 작업처리부를 포함하는 차트생성장치가 수행하는 차트생성방법에 있어서,
상기 중앙관리부는 원천 데이터를 적어도 둘 이상의 그룹 데이터로 분할하는 단계;
상기 복수 개의 작업처리부는 적어도 둘 이상의 그룹 데이터에 대한 서브차트를 각각 생성하는 단계; 및
상기 중앙관리부는 적어도 둘 이상의 그룹 데이터에 대한 서브차트를 중첩하여 생성한 상기 원천데이터의 차트를 제공하는 단계;를 포함하고,
상기 중앙관리부는, 상기 원천 데이터를 기초로 상기 차트의 가로와 세로의 최소값 및 최대값을 포함하는 차트표시정보를 결정하고, 상기 복수 개의 작업처리부에 서브차트 생성을 요청할 때 상기 차트표시정보를 제공하는 단계를 포함하고,
상기 서브차트를 각각 생성하는 단계, 상기 차트표시정보를 기초로 동일한 크기의 서브차트를 생성하는 단계를 포함하는 것을 특징으로 하는 차트생성방법. - 삭제
- 제 7항에 있어서, 상기 차트를 생성하는 단계는,
상기 차트의 레이블을 포함하는 기본틀을 생성하는 단계; 및
상기 기본틀 위에 각각 생성한 차트를 순차적으로 중첩 배치하는 단계;를 포함하는 것을 특징으로 하는 차트생성방법. - 제 7항에 있어서,
데이터저장소가 그룹 데이터의 데이터 요소를 인덱스값으로 표현한 바이너리 파일을 저장하는 단계;를 더 포함하고,
상기 작업처리부는 상기 바이너리 파일을 읽어 차트를 생성하는 것을 특징으로 하는 차트생성방법. - 제 10항에 있어서,
상기 인덱스값은 순차적으로 증가하는 값이고,
상기 데이터저장소는 상기 원천 데이터에 포함된 데이터 요소의 종류를 상기 인덱스값의 순서에 따라 포함하는 데이터분류정보를 저장하는 단계;를 더 포함하는 것을 특징으로 하는 차트생성방법. - 제 7항 및 제 9항 내지 제 11항 중 어느 한 항에 기재된 방법을 수행하기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록매체.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020190043788A KR102223090B1 (ko) | 2019-04-15 | 2019-04-15 | 차트생성장치 및 그 방법 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020190043788A KR102223090B1 (ko) | 2019-04-15 | 2019-04-15 | 차트생성장치 및 그 방법 |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20200121130A KR20200121130A (ko) | 2020-10-23 |
KR102223090B1 true KR102223090B1 (ko) | 2021-03-04 |
Family
ID=73039360
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020190043788A KR102223090B1 (ko) | 2019-04-15 | 2019-04-15 | 차트생성장치 및 그 방법 |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR102223090B1 (ko) |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2009015355A (ja) * | 2007-06-29 | 2009-01-22 | Ricoh Co Ltd | 情報処理装置、情報処理方法、コンピュータプログラム、及び、情報記録媒体 |
KR101798149B1 (ko) | 2017-04-17 | 2017-11-16 | 주식회사 뉴스젤리 | 데이터 테이블 중 일부 영역 선택을 통한 차트 시각화 방법 |
KR101915773B1 (ko) | 2018-02-26 | 2018-11-06 | 주식회사 에이치비 | 빅데이터를 위한 차트 표시 방법 및 그 장치 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20010056528A (ko) * | 1999-12-15 | 2001-07-04 | 이계철 | 대용량 데이터 파일의 검색 및 처리를 위한 데이터 타일링방법 |
CN103472978B (zh) | 2013-09-26 | 2017-10-13 | 深圳市华傲数据技术有限公司 | 一种基于四分位图展示数据的可视化方法及系统 |
KR101788250B1 (ko) * | 2016-03-16 | 2017-10-20 | 주식회사 에이치비 | 데이터 시각화 장치 및 그 방법 |
-
2019
- 2019-04-15 KR KR1020190043788A patent/KR102223090B1/ko active IP Right Grant
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2009015355A (ja) * | 2007-06-29 | 2009-01-22 | Ricoh Co Ltd | 情報処理装置、情報処理方法、コンピュータプログラム、及び、情報記録媒体 |
KR101798149B1 (ko) | 2017-04-17 | 2017-11-16 | 주식회사 뉴스젤리 | 데이터 테이블 중 일부 영역 선택을 통한 차트 시각화 방법 |
KR101915773B1 (ko) | 2018-02-26 | 2018-11-06 | 주식회사 에이치비 | 빅데이터를 위한 차트 표시 방법 및 그 장치 |
Also Published As
Publication number | Publication date |
---|---|
KR20200121130A (ko) | 2020-10-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9959015B2 (en) | Systems and methods for monitoring and analyzing performance in a computer system with node pinning for concurrent comparison of nodes | |
US10523538B2 (en) | User interface that provides a proactive monitoring tree with severity state sorting | |
US20160330093A1 (en) | User interface that provides a proactive monitoring tree with state distribution ring | |
US7903114B2 (en) | Apparatus and method for visualizing the relationship between a plurality of sets | |
US20170323028A1 (en) | System and method for large scale information processing using data visualization for multi-scale communities | |
US20150261793A1 (en) | Method for implementing database | |
US8799859B2 (en) | Augmented design structure matrix visualizations for software system analysis | |
CN109388791B (zh) | 图表动态展示方法、装置、计算机设备及存储介质 | |
US20060095858A1 (en) | Hierarchical dataset dashboard view | |
Jugel et al. | VDDA: automatic visualization-driven data aggregation in relational databases | |
US10042920B2 (en) | Chart navigation system | |
US20110007075A1 (en) | Data processing apparatus and method | |
EP0627697B1 (en) | Indexing/compression scheme for supporting graphics and data selection | |
CN106294409A (zh) | 数据处理方法和装置 | |
US20150199420A1 (en) | Visually approximating parallel coordinates data | |
KR101788250B1 (ko) | 데이터 시각화 장치 및 그 방법 | |
KR102223090B1 (ko) | 차트생성장치 및 그 방법 | |
JP7380858B2 (ja) | 表示制御装置および表示制御方法 | |
CN106204413A (zh) | 利用分层加速结构的图形渲染 | |
US20210365480A1 (en) | Combining visualizations in a business analytic application | |
US8232994B2 (en) | Viewing multi-dimensional data in two dimensions | |
CA3154379A1 (en) | Systems and methods of network visualization | |
WO2020097480A1 (en) | Displaying large data sets in a heat map | |
JP2011164830A (ja) | グラフ可視化装置及びグラフ可視化方法及びグラフ可視化プログラム | |
Li et al. | Valid: A web framework for visual analytics of large streaming data |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
E902 | Notification of reason for refusal | ||
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant |