KR102072236B1 - 정형 스트림 데이터 처리장치 및 처리방법 - Google Patents

정형 스트림 데이터 처리장치 및 처리방법 Download PDF

Info

Publication number
KR102072236B1
KR102072236B1 KR1020160058663A KR20160058663A KR102072236B1 KR 102072236 B1 KR102072236 B1 KR 102072236B1 KR 1020160058663 A KR1020160058663 A KR 1020160058663A KR 20160058663 A KR20160058663 A KR 20160058663A KR 102072236 B1 KR102072236 B1 KR 102072236B1
Authority
KR
South Korea
Prior art keywords
schema
stream data
data
stream
tree
Prior art date
Application number
KR1020160058663A
Other languages
English (en)
Other versions
KR20170062358A (ko
Inventor
박경현
원희선
Original Assignee
한국전자통신연구원
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 한국전자통신연구원 filed Critical 한국전자통신연구원
Publication of KR20170062358A publication Critical patent/KR20170062358A/ko
Application granted granted Critical
Publication of KR102072236B1 publication Critical patent/KR102072236B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/22Indexing; Data structures therefor; Storage structures
    • G06F16/2282Tablespace storage structures; Management thereof
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/22Indexing; Data structures therefor; Storage structures
    • G06F16/2219Large Object storage; Management thereof
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/22Indexing; Data structures therefor; Storage structures
    • G06F16/2228Indexing structures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/22Indexing; Data structures therefor; Storage structures
    • G06F16/2228Indexing structures
    • G06F16/2246Trees, e.g. B+trees

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

본 발명은 정형 스트림 데이터 처리 기술에 관한 것으로, 본 발명의 일 측면에 따른 정형 스트림 데이터 처리장치는, XML 형태로 이루어진 스트림 데이터를 대상으로 스키마를 추출하고, 추출된 스키마를 기반으로 하여 데이터베이스 테이블을 생성하는 테이블 생성부; 및 스트림 데이터를 수집하고, 수집된 스트림 데이터에 대한 전처리를 수행하며, 전처리된 스트림 데이터를 상기 데이터베이스 테이블에 저장하는 데이터 처리부를 포함한다.

Description

정형 스트림 데이터 처리장치 및 처리방법{Apparatus and method for processing structured stream data}
본 발명은 정형 스트림 데이터 처리 기술에 관한 것으로, 상세하게는 스키마 정보가 없는 정형 스트림 데이터로부터 자동으로 데이터 스키마를 추출하고, 이를 바탕으로 관계형 테이블을 생성함으로써 사용자의 관여 없이 자동으로 스트림 데이터를 저장할 수 있는 정형 스트림 데이터 처리장치 및 처리방법에 관한 것이다.
빅데이터(Big-data) 분석은 데이터의 입력 타입에 따라 크게 배치 분석과 스트림 분석으로 구분할 수 있다. 스트림 데이터는 데이터 형태에 따라 정형 데이터와 비정형 데이터로 구분할 수 있는데, 정형 데이터를 실시간으로 수집하여 저장할 경우, 일반적으로 정형 데이터의 구조와 매핑되는 데이터베이스 테이블에 데이터를 저장한다.
따라서, 만약 수집하려는 스트림 데이터를 저장할 데이터베이스 테이블이 존재하지 않거나, 스트림 데이터가 스키마 정보를 가지고 있지 않아서 저장 테이블을 생성할 수 없다면, 스트림 데이터를 데이터베이스에 효율적으로 저장할 수 없는 문제가 발생한다.
또한, 기존의 스트림 데이터 수집 시스템들은 데이터 수집 로직이 코드 레벨로 구현되었기 때문에, 사용자에 의해 변경 및 수정이 필요한 경우 유연하게 대처하지 못한다는 단점이 있다.
따라서, 본 발명은 상기와 같은 종래 기술의 문제점을 해결하기 위하여 안출된 것으로, 본 발명의 목적은, 스키마 정보가 없는 정형 스트림 데이터로부터 자동으로 데이터 스키마를 추출하고, 이를 바탕으로 관계형 테이블을 생성함으로써 사용자의 관여 없이 자동으로 스트림 데이터를 저장할 수 있는 정형 스트림 데이터 처리장치 및 처리방법을 제공함에 있다.
본 발명은 또 다른 목적은, 기존의 워크플로우 관리 도구를 확장하여 스트림 데이터 처리를 위한 워크플로우 환경을 제공하여 사용자들이 쉽게 스트림 데이터를 수집하고 처리할 수 있도록 하는 정형 스트림 데이터 처리장치 및 처리방법을 제공함에 있다.
상기와 같은 목적을 달성하기 위한 본 발명의 일 측면에 따른 정형 스트림 데이터 처리장치는, 입력되는 스트림 데이터를 대상으로 스키마를 추출하고, 추출된 스키마를 기반으로 하여 데이터베이스 테이블을 생성하는 테이블 생성부; 및 스트림 데이터를 수집하고, 수집된 스트림 데이터에 대한 전처리를 수행하며, 전처리된 스트림 데이터를 상기 데이터베이스 테이블에 저장하는 데이터 처리부를 포함한다.

본 발명의 일 측면에 따른 정형 스트림 데이터 처리방법은, 입력되는 스트림 데이터를 대상으로 스키마를 추출하고, 추출된 스키마를 기반으로 하여 데이터베이스 테이블을 생성하는 단계; 및 스트림 데이터를 수집하고, 수집된 스트림 데이터에 대한 전처리를 수행하며, 전처리된 스트림 데이터를 상기 데이터베이스 테이블에 저장하는 데이터 처리부를 포함한다.
이와 같은 본 발명에 따른 스트림 데이터 처리 기술을 이용하면, 스키마 정보가 없는 정형 스트림 데이터로부터 자동으로 데이터 스키마를 추출하고, 이를 바탕으로 관계형 테이블을 생성함으로써 사용자의 관여 없이 자동으로 스트림 데이터를 저장할 수 있다.
또한, 본 발명의 스트림 데이터 처리 기술은 스트림 데이터 처리를 위한 워크플로우 환경을 제공하기 때문에, 사용자들이 쉽게 스트림 데이터를 수집하고 처리할 수 있다.
도 1은 본 발명의 실시 예에 따른 정형 스트림 데이터 처리장치의 구성을 도시한 구성도이다.
도 2는 본 발명의 실시 예에 따른 정형 스트림 데이터 처리장치의 데이터베이스 테이블 생성 절차를 도시한 순서도이다.
도 3은 본 발명의 실시 예에 따른 데이터베이스 테이블 생성 절차에 이용되는 스트림 데이터의 일례를 도시한 도면이다.
도 4는 본 발명의 실시 예에 따른 데이터베이스 테이블 생성 절차에 따라 구축된 데이터 그래프의 일례를 도시한 도면이다.
도 5는 본 발명의 실시 예에 따른 데이터베이스 테이블 생성 절차에 따라 추출되는 최대 경계 스키마의 일례를 도시한 도면이다.
도 6은 본 발명의 실시 예에 따른 데이터베이스 테이블 생성 절차에 따라 추출되는 최소 경계 스키마의 일례를 도시한 도면이다.
도 7은 본 발명의 실시 예에 따른 데이터베이스 테이블 생성 절차에 따라 생성되는 스키마 트리의 일례를 도시한 도면이다.
도 8은 본 발명의 실시 예에 따른 데이터베이스 테이블 생성 절차에 있어서의 분해된 스키마 트리의 일례를 도시한 도면이다.
도 9는 본 발명의 실시 예에 따른 데이터베이스 테이블 생성 절차에 따라 생성된 스키마 트리-관계형 테이블 매핑 정보의 일례를 도시한 도면이다.
도 10은 스트림 데이터 처리를 위해 확장된 워크플로우 관리 시스템의 구조를 도시한 도면이다.
도 11은 도 10의 워크플로우 관리 시스템에서의 실행을 위한 스트림 노드의 구조를 도시한 도면이다.
도 12는 도 10의 워크플로우 관리 시스템에서의 실행을 위한 스트림 노드의 타입을 도시한 도면이다.
도 13은 본 발명의 실시 예에 따른 워크플로우 관리 시스템의 스트림 노드의 WDL 워크플로우 시맨틱의 일례를 도시한 도면이다.
도 14는 본 발명의 실시 예에 따른 워크플로우 관리 시스템의 스트림 처리 과정의 일례를 도시한 도면이다.
본 발명의 이점 및 특징, 그리고 그것들을 달성하는 방법은 첨부되는 도면과 함께 상세하게 후술되어 있는 실시 예들을 참조하면 명확해질 것이다. 그러나 본 발명은 이하에서 개시되는 실시 예들에 한정되는 것이 아니라 서로 다른 다양한 형태로 구현될 수 있으며, 단지 본 실시 예들은 본 발명의 개시가 완전하도록 하고, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 발명의 범주를 완전하게 알려주기 위해 제공되는 것이며, 본 발명은 청구항의 범주에 의해 정의될 뿐이다. 명세서 전체에 걸쳐 동일 도면부호는 동일 구성 요소를 지칭한다.
본 발명의 실시 예들을 설명함에 있어서 공지 기능 또는 구성에 대한 구체적인 설명이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우에는 그 상세한 설명을 생략할 것이다. 그리고 후술되는 용어들은 본 발명의 실시 예에서의 기능을 고려하여 정의된 용어들로서 이는 사용자, 운용자의 의도 또는 관례 등에 따라 달라질 수 있다. 그러므로 그 정의는 본 명세서 전반에 걸친 내용을 토대로 내려져야 할 것이다.
이하, 본 발명의 실시 예에 따른 정형 스트림 데이터 처리장치 및 처리방법에 대하여 첨부된 도면을 참조하여 상세하게 설명한다.
도 1은 본 발명의 실시 예에 따른 정형 스트림 데이터 처리장치의 구성을 도시한 구성도이다.
기존의 스트림 데이터 처리장치들은 이미 데이터 저장을 위한 테이블과 전처리 로직이 존재한다는 가정 하에 실행되는 반면, 본 발명의 실시 예에 따른 정형 스트림 데이터 처리장치(이하 ‘데이터 처리장치’)는 스트림 데이트로부터 데이터 스키마를 추출하고, 워크플로우 컴포넌트를 이용하여 사용자가 원하는 로직을 자유롭게 적용할 수 있도록 구현된다.
상기 데이터 처리장치(10)는 수집되는 스트림 데이터를 처리하기 위해, 테이블 생성부(11) 및 데이터 처리부(13)로 구성될 수 있다.
상기 테이블 생성부(11)는 데이터베이스 테이블을 생성하는 구성으로서, XML 형태로 이루어진 스트림 데이터를 대상으로 스키마를 추출하고, 추출된 스키마를 기반으로 하여 데이터베이스 테이블을 생성한다.
상기 데이터 처리부(13)는 스트림 데이터를 수집 및 처리하는 구성으로서, 스트림 데이터를 수집하고, 수집된 스트림 데이터에 대한 전처리를 수행하며, 전처리된 스트림 데이터를 데이터베이스 테이블에 저장한다.
이때, 상기 데이터 처리부(13)의 스트림 데이터에 대한 처리와 관련된 사항에 대해서는 도 10 내지 14를 참조하여 후술하도록 한다.
도 2는 본 발명의 실시 예에 따른 정형 스트림 데이터 처리장치의 데이터베이스 테이블 생성 절차를 도시한 순서도이다.
도 2의 절차는 도 1의 테이블 생성부(11)에 의해 수행될 수 있으며, 먼저 저장하고자 하는 데이터를 입력받기 위한 소스 노드(source node)를 선택하고(S20), 선택된 소스 노드를 통해 일정 시간 동안 스트림 데이터를 입력받는다(S21).
그리고, 테이블 생성부(11)는 입력받은 데이터를 메모리 상에 그래프 모델을 기반으로 저장하여 데이터 그래프를 구축한다(S22).
단계 S22에 따라 데이터 그래프를 구축한 후, 테이블 생성부(11)는 데이터 그래프로부터 최대 경계 스키마와 최소 경계 스키마를 추출한다(S23). 이때, 최대 경계 스키마와 최소 경계 스키마는 모두 XML 데이터의 스키마를 표현하기 위한 그래프 기반의 데이터 구조이다.
단계 S23에 따라 최대/최소 경계 스키마를 추출한 후, 테이블 생성부(11)는 추출된 최대/최소 경계 스키마를 바탕으로 스키마 트리를 생성한다(S24). 이때, 생성된 스키마 트리는 스트림 데이터의 스키마를 나타내지만 스키마 정보가 트리 구조로 이루어졌기 때문에 직접 관계형 테이블로의 매핑은 불가능하다.
단계 S24에 따라 스키마 트리를 생성한 후, 테이블 생성부(11)는 스키마 트리를 분해하여 서브 트리를 생성함으로써, 스키마 트리를 관계형 테이블로 매핑하기 위한 정보(트리-테이블 매핑 정보)를 생성한다(S25).
단계 S25에 따라 트리-테이블 매핑 정보를 생성한 후, 테이블 생성부(11)는 생성된 트리-테이블 매핑 정보에 따라 스트림 데이터 저장을 위한 테이블을 생성한다(S26).
이상에서는 도 2를 참조하여 본 발명의 실시 예에 따른 정형 스트림 데이터 처리장치의 데이터베이스 테이블 생성 절차에 대해서 살펴보았다. 이하에서는 각 절차의 예를 들어 보다 구체적으로 살펴보기로 한다.
도 3은 본 발명의 실시 예에 따른 데이터베이스 테이블 생성 절차에 이용되는 스트림 데이터의 일례를 도시한 도면으로서, 도 3에 도시된 스트림 데이터는 인터넷 서점에서 판매되고 있는 도서 정보와 도서 관련 후기 정보를 나타낸다.
도 3의 스트림 데이터는 <store>를 루트 노드로 하여 도서를 나타내는 <book> 단위로 표현되고, 도서는 <info>에 포함되는 도서 정보, <author>에 포함되는 작가 정보, <comment>에 포함되는 후기 정보로 구성된다.
데이터 소스 노드는 다중의 사용자들이 도서의 후기를 올릴 때마다 주기적으로 도 3과 같은 형태로 데이터를 입력받는다고 가정한다.
XML 데이터는 기본적으로 구조적 문서를 정의하는 모델로부터 시작되었기 때문에 메모리 상에 DOM(Document Object Model) 형태로 저장된다. 따라서, XML 데이터로부터 스키마를 추출하기 위해서는 먼저 레이블과 방향성이 있는 그래프(Labeled Directed Graph)로 변환하여 저장해야 한다.
도 4는 본 발명의 실시 예에 따른 데이터베이스 테이블 생성 절차에 따라 구축된 데이터 그래프의 일례를 도시한 도면이다.
도 4의 데이터 그래프는 도 3에 도시된 바와 같은 스트림 데이터를 기반으로 구축된 것으로서, 도 4에 도시된 바와 같이, 데이터 그래프에는 레이블명이 해당 노드로 들어오는 간선 상에 표시되고, 데이터 그래프는 입력되는 모든 데이터를 포함하고 있으며, 최대/최소 경계 스키마 추출의 입력 데이터로 사용된다.
도 5는 본 발명의 실시 예에 따른 데이터베이스 테이블 생성 절차에 따라 추출되는 최대 경계 스키마의 일례를 도시한 도면이다.
도 5의 최대 경계 스키마는 도 4의 데이터 그래프로부터 추출된 것으로서, 도 5에 도시된 바와 같이, 최대 경계 스키마는 데이터 가이드를 이용하여 추출 가능한데, 데이터 가이드는 데이터베이스 구조를 간결하고 정확하게 나타내기 위한 구조로, 데이터 소스의 모든 유일한 레이블 경로를 데이터 소스에 나타나는 빈도에 상관없이 한 번만 기술한다. 따라서, 데이터 가이드의 이러한 특성을 이용하여 데이터 그래프로부터 최대 경계 스키마를 추출할 수 있다.
도 6은 본 발명의 실시 예에 따른 데이터베이스 테이블 생성 절차에 따라 추출되는 최소 경계 스키마의 일례를 도시한 도면이다.
도 6의 최소 경계 스키마는 도 4의 데이터 그래프로부터 추출된 것으로서, 도 6에 도시된 바와 같이, 최소 경계 스키마는 데이터 로그를 이용하여 추출할 수 있는데, 특히 데이터 로그의 최대 고정점을 적용하여 타입을 분류함으로써 추출할 수 있다.
최대 경계 스키마의 경우, 주어진 데이터 그래프에 대해 타입을 구분할 때 모호성이 발생하지 않지만, 최소 경계 스키마의 경우에는 모호성이 발생한다. 예를 들어, 도 6의 최소 경계 스키마의 경우, book 레이블을 통해 도달할 수 있는 노드는 2개로 레이블만 가지고는 타입을 결정하는데 모호함이 있다.
이처럼 최대 경계 스키마나 최소 경계 스키마만으로는 스트림 데이터의 스키마를 표현하기에는 적합하지 못하다.
따라서, 보다 정확한 데이터 스키마를 추출하는 것이 필요한데, 이를 위해 본 발명에서는 최대 경계 스키마와 최소 경계 스키마를 이용함으로써 스키마 트리를 생성하는 것이 제안된다.
도 7은 본 발명의 실시 예에 따른 데이터베이스 테이블 생성 절차에 따라 생성되는 스키마 트리의 일례를 도시한 도면이다.
도 7의 스키마 트리는 도 5에 도시된 최대 경계 스키마와 도 6에 도시된 최소 경계 스키마를 바탕으로 생성되는 것으로서, 스키마 트리는 스트림 데이터의 스키마 구조를 기술한다.
최대 경계 스키마를 기준으로 최소 경계 스키마를 비교하여 스키마 트리를 생성하는 경우, 동일한 레이블이 중복되거나 아예 없는 부분이 발생하게 된다. 이러한 중복 부분은 스키마 트리에 표시해 주어야 한다.
예를 들어, <author>는 최소 경계 스키마 상에 최소 1개 이상 존재하고, <comment>는 존재하지 않거나 1회 이상 존재하는 경우, author+, comment*와 같이 “+”, “*” 등의 연산자로 표시할 수 있다.
도 7과 같이 생성된 스키마 트리를 관계형 테이블과 매핑하기 위해서는 객체-관계형 매핑 기법을 적용하여 관계형 스키마를 생성해야 한다. 하지만, 트리 구조가 직접적으로 관계형 테이블로 매핑되기 어렵기 때문에, 먼저 스키마 트리를 서브 트리로 분해한 후 객체-관계형 매핑 기법을 적용하여 관계형 테이블로 매핑해야 한다.
도 8은 본 발명의 실시 예에 따른 데이터베이스 테이블 생성 절차에 있어서의 분해된 스키마 트리의 일례를 도시한 도면이다.
도 8과 같이 스키마 트리를 서브 트리로 분해하는 경우, 스키마 트리를 트리 객체로 인식함으로써 아래의 규칙들을 기반으로 클래스를 테이블로, 속성을 컬럼으로, 클래스 간의 관계를 외래키 관계로 매핑한다.
스키마 트리를 분해하기 위한 매칭 규칙은 다음과 같다.
규칙 1) 객체-관계형 매핑 기법에 의해, 스키마 트리의 리프 노드들은 속성 타입으로, 리프 노드가 아닌 노드들은 클래스 타입으로 매핑한다.
규칙 2) 부모 노드와 자식 노드의 타입이 모드 클래스 타입이면, 클래스-클래스 관계가 이루어져 관계형 스키마에서 외래키 관계로 매핑한다.
규칙 3) 부모 노드와 자식 노드의 타입이 클래스 타입과 속성 타입이면, 관계형 스키마에서 테이블과 컬럼으로 매핑한다.
규칙 4) 단일값 속성(single-valued property)은 클래스 테이블의 컬럼으로 매핑한다.
규칙 5) 다중값 속성(multi-valued property)은 별개의 테이블로 생성하여 테이블 내 다중 튜플로 매핑한다.
규칙 6) 스키마 트리 내 루트 엘리먼트는 제거한다.
규칙 7) 부모 노드와 자식 노드가 클래스-클래스 타입이면 자식 노드를 제거할 수 있다. 이때, 자식 노드가 제거되면 자식 노드의 클래스 속성들은 부모 노드의 클래스 속성으로 취급된다.
여기서, 규칙 6과 규칙 7은 스키마 트리 내의 계층 구조를 줄여 불필요한 테이블의 생성을 막기 위한 규칙이다. 예를 들어, 스키마 트리 내의 루트 엘리먼트는 XML 문서에는 하나의 루트 엘리먼트가 존재해야 한다는 조건을 만족하기 위해 존재하기 때문에 루트 엘리먼트를 제거해도 스키마 생성에는 아무런 영향을 주지 않는다.
도 8에서와 같이 분해된 스키마 트리는 관계형 스키마로 매핑이 가능한데, 이때 서로 간의 매핑 정보를 유지해야 한다. 스키마 트리와 관계형 테이블 사이의 매핑 정보는 XML 데이터를 저장하거나 질의 시 질의에 대한 결과를 추출하는 과정에서 사용될 수 있다.
도 9는 본 발명의 실시 예에 따른 데이터베이스 테이블 생성 절차에 따라 생성된 스키마 트리-관계형 테이블 매핑 정보의 일례를 도시한 도면이다.
도 3에 도시된 바와 같은 데이터는, 도 9에 도시된 바와 같이, 스키마 트리-관계형 테이블 매핑 정보에 따라 book, author, comment 테이블에 나누어 저장된다.
book 테이블은 bid, SN, title, year의 컬럼을 가지고, author 테이블 및 comment 테이블과 외래키로 연결되고, author 테이블은 aid, bid, name, age, nation 컬럼으로 구성되고, comment 테이블은 cid, bid, name, text 컬럼으로 구성되며, author 테이블과 comment 테이블의 bid 컬럼은 book 테이블의 bid 컬럼을 참조한다.
이상에서 설명한 바와 같이 데이터베이스를 생성한 후에는 실제 스트림 데이터를 데이터베이스에 저장한다. 이때, 사용자는 컴포넌트를 이용하여 스트림 데이터를 저장하는 워크플로우를 구성하고 실행할 수 있다.
이하에서는 워크플로우를 이용하여 스트림 데이터를 처리하는 과정에 대해서 살펴보기로 한다.
기존의 일반적인 워크플로우 관리 시스템은 규칙 기반의 관리 시스템(rule-based management system)으로 사용자가 워크플로우를 구성할 때 DAG(Directed Acyclic Graph) 모델을 사용한다.
또한, 워크플로우를 구성하는 노드는 일반적으로 액션 노드(action node)와 제어 노드(control node)로 구분된다. 액션 노드는 실제 스트림 처리를 담당하는 노드이고, 제어 노드는 워크플로우의 흐름을 제어하는 노드이다.
이와 같은 노드로 구성된 워크플로우 관리 시스템은 행동 기반의 아키텍쳐(activity-based architecture)를 기반으로 하기 때문에, 하나의 노드가 작업을 완료한 후에 규칙에 따라 다음 노드의 작업을 수행하는 구조로 되어 있다.
이와 같은 행동 기반의 아키텍쳐는 빅데이터를 대상으로 하는 배치 처리에는 적합하지만 실시간으로 스트림을 처리하기에는 불가능한 시스템 구조이다.
이에, 본 발명에서는 기존의 워크플로우 관리 시스템을 확장하여, 배치 및 스트림 데이터 처리가 가능한 워크플로우 관리 방법을 제공한다.
도 10은 스트림 데이터 처리를 위해 확장된 워크플로우 관리 시스템의 구조를 도시한 도면이다.
도 10에 도시된 워크플로우 관리 시스템은 도 1의 데이터 처리부(13)에 적용될 수 있는 것으로서, 도 10을 참조하여 워크플로우 관리 시스템(100)을 살펴보면, 클라이언트(110)는 사용자가 워크플로우 컴포넌트를 사용하여 워크플로우를 구성할 수 있도록 GUI 환경을 제공하고, 사용자의 요청에 따라 워크플로우를 구성하는 것으로, 웹 기반 UI 클라이언트일 수 있다.
그리고, 클라이언트(110)는 컴포넌트를 사용하여 워크플로우를 구성하는 면에서 기존의 워크플로우 클라이언트와 동일하지만 스크림 데이터 처리를 위한 컴포넌트들을 추가로 지원한다.
WDL(Workflow Description Language) 생성기(130)는 클라이언트(110)에 의해 구성된 워크플로우를 XML 형태로 변환한다. 즉, WDL 생성기(130)는 워크플로우 UI에 해당되는 XML 형태의 WDL을 생성한다.
기존의 시스템에서는 순차적으로 워크플로우 노드가 실행되도록 기술된 것에 반하여, 본 발명에서는 모든 워크플로우 노드가 실행되어 실시간으로 스트림 데이터를 처리할 수 있도록 XML 형태로 기술되는 것이다.
이때, 상기 WDL 생성기(130)에 의해 기술되는 WDL에서의 각 노드는 스트림 노드이며, 스트림이 입력되면 어떤 액션(action)을 수행해야 하는지가 기술되어 있다.
워크플로우 실행 엔진(150)은 스트림이 입력되면, WDL 생성기(130)에 의해 생성된 WDL에 기술되어 있는 action을 수행한다.
도 11은 도 10의 워크플로우 관리 시스템에서의 실행을 위한 스트림 노드의 구조를 도시한 도면이다.
도 11을 참조하면, 하나의 스트림 노드(1100)는 실시간으로 스트림을 입력받고 출력하기 위해 2개의 에이전트(1110, 1130)를 포함한다.
소스 에이전트(source agent, 1110)는 스트림 데이터를 수집하는 에이전트로, 스트림 소스 노드로부터 전송받은 스트림을 컴포넌트에 전달하는 역할을 하고, 타겟 에이전트(target agent, 1130)는 컴포넌트에 의해 처리된 스트림을 출력하는 역할을 수행한다.
따라서, 스트림 노드는 2개의 에이전트를 통해 실시간 스트림 처리가 가능해지고, 노드 실행 시, 1개의 스트림 처리 프로세스와 2개의 에이전트 프로세스가 실행된다.
도 12는 도 10의 워크플로우 관리 시스템에서의 실행을 위한 스트림 노드의 타입을 도시한 도면이다.
도 12(a)에 도시된 노드는 이벤트 노드(event node)로서, 입력되는 스트림을 처리하며, 입력되는 모든 스트림을 대상으로 스트림 처리를 수행하는 노드이다.
도 12(b)에 도시된 노드는 복합 이벤트 노드(complex event node)로서, 모든 스트림을 처리 대상으로 하는 노드가 아니고, 스트림 내에 특정 이벤트가 포함된 스트림만을 대상으로 스트림 처리를 수행하는 노드이다.
도 12(c)에 도시된 노드는 소스 노드(source node)로서, 로그 데이터와 같이 서버에 저장된 정적 데이터를 스트림으로 변환해 주는 것으로서, 기존의 데이터들을 스트림으로 처리하기 위해서는 소스 노드를 이용하여 스트리 처리를 할 수 있다.
도 12(d)에 도시된 노드는 타겟 노드(target node)로서, 소스 노드와는 반대되는 기능을 수행하는 것으로, 스트림 처리를 수행한 후 결과를 정적 데이터로 출력한다. 이때, 타겟 노드는 입력 스트림의 크기에 상관없이 한 번의 정적 데이터를 생성한다.
도 13은 본 발명의 실시 예에 따른 워크플로우 관리 시스템의 스트림 노드의 WDL 워크플로우 시맨틱의 일례를 도시한 도면이다.
도 13을 참조하면, 스트림 노드는 입력 스트름에 대해 <invoke>에 의해 호출되는 액션(action)을 수행하고, 출력 스트림을 생성한다.
이상에서 살펴본 바와 같이 WDL 생성기(130)를 확장하면 워크플로우 실행 엔진(150)은 노드 타입에 따라 적합한 실행 언어(execution language)로 변환하여 해당 노드의 작업을 실행한다.
도 14는 본 발명의 실시 예에 따른 워크플로우 관리 시스템의 스트림 처리 과정의 일례를 도시한 도면이다.
도 14에서의 스트림 처리 과정은 도 10에 도시된 워크플로우 관리 시스템(100)에 의해 수행되는 것으로서, 사용자의 지시에 따라 클라이언트(110)가 워크플로우를 생성하면(S1400), WDL 생성기(130)는 워크플로우 UI에 해당되는 XML 형태의 WDL을 생성한다(S1410).
이후, 워크플로우 실행 엔진(150)이 워크플로우를 실행하면(S1420), 모든 스트림 노드에 해당되는 프로세스와 각 노드가 가지고 있는 2개의 에이전트 프로세스가 실행된다.
도 14의 경우에는, 스트림 처리 워크플로우가 3개의 스트림 노드로 구성되어 있기 때문에, 3개의 액션 프로세스와 6개의 에이전트 프로세서가 실행되어, 총 9개의 프로세스가 실행된다.
이와 같이, 확장된 워크플로우 관리 시스템은 배치 처리뿐만 아니라 동시에 스트림 처리가 가능하기 때문에, 사용자들은 손쉽게 워크플로우를 이용하여 스트림을 처리할 수 있게 된다.
한편, 본 발명에 따른 정형 스트림 데이터 처리장치 및 처리방법을 실시 예에 따라 설명하였지만, 본 발명의 범위는 특정 실시 예에 한정되는 것은 아니며, 본 발명과 관련하여 통상의 지식을 가진 자에게 자명한 범위 내에서 여러 가지의 대안, 수정 및 변경하여 실시할 수 있다.
따라서, 본 발명에 기재된 실시 예 및 첨부된 도면들은 본 발명의 기술 사상을 한정하기 위한 것이 아니라 설명하기 위한 것이고, 이러한 실시 예 및 첨부된 도면에 의하여 본 발명의 기술 사상의 범위가 한정되는 것은 아니다. 본 발명의 보호 범위는 청구범위에 의하여 해석되어야 하며, 그와 동등한 범위 내에 있는 모든 기술 사상은 본 발명의 권리 범위에 포함되는 것으로 해석되어야 할 것이다.
10 : 정형 스트림 데이터 처리장치
11 : 테이블 생성부
13 : 데이터 처리부

Claims (9)

  1. 입력되는 스트림 데이터를 그래프 모델을 기반으로 저장하여 데이터 그래프를 구축하고, 상기 데이터 그래프로부터 최대 및 최소 경계 스키마를 추출하고, 상기 최대 및 최소 경계 스키마를 바탕으로 스키마 트리를 생성하고, 상기 스키마 트리에 대한 분해를 통해 생성되는 서브 트리에 객체-관계형 매핑 기법을 적용하여 상기 추출된 스키마를 기반으로 하여 데이터베이스 테이블을 생성하는 테이블 생성부; 및
    스트림 데이터를 수집하고, 수집된 스트림 데이터에 대한 전처리를 수행하며, 전처리된 스트림 데이터를 상기 데이터베이스 테이블에 저장하는 데이터 처리부를 포함하는
    정형 스트림 데이터 처리장치.
  2. 삭제
  3. 제 1 항에 있어서,
    상기 테이블 생성부는, 데이터 가이드를 이용하여 상기 최대 경계 스키마를 추출하고, 데이터 로그를 이용하여 상기 최소 경계 스키마를 추출하도록 구현되는 것인 정형 스트림 데이터 처리장치.
  4. 제 1 항에 있어서,
    상기 테이블 생성부는, 상기 최대 경계 스키마를 기준으로 상기 최소 경계 스키마를 비교하여 상기 스키마 트리를 생성하는 경우, 중복되는 레이블에 대해서 연산자를 이용하여 상기 스키마 트리에 표시하도록 구현되는 것인 정형 스트림 데이터 처리장치.
  5. 제 1 항에 있어서,
    상기 테이블 생성부는, 상기 스키마 트리를 분해하여 상기 서브 트리를 생성하는 경우, 상기 스키마 트리의 리프 노드들은 속성 타입으로 매핑하고, 리프 노드가 아닌 노드들은 클래스 타입으로 매핑하도록 구현되는 것인 정형 스트림 데이터 처리장치.
  6. 제 1 항에 있어서,
    상기 테이블 생성부는, 상기 스키마 트리를 분해하여 상기 서브 트리를 생성하는 경우, 부모 노드와 자식 노드의 타입이 모드 클래스 타입이면, 외래키 관계로 매핑하고, 부모 노드와 자식 노드의 타입이 클래스 타입과 속성 타입이면, 테이블과 컬럼으로 매핑하도록 구현되는 것인 정형 스트림 데이터 처리장치.
  7. 제 1 항에 있어서,
    상기 테이블 생성부는, 상기 스키마 트리를 분해하여 상기 서브 트리를 생성하는 경우, 단일값 속성(single-valued property)은 클래스 테이블의 컬럼으로 매핑하고, 다중값 속성(multi-valued property)은 별개의 테이블로 생성하여 테이블 내 다중 튜플로 매핑하도록 구현되는 것인 정형 스트림 데이터 처리장치.
  8. 제 1 항에 있어서,
    상기 테이블 생성부는, 상기 스키마 트리를 분해하여 상기 서브 트리를 생성하는 경우, 상기 스키마 트리 내 루트 엘리먼트는 제거하고, 부모 노드와 자식 노드가 클래스-클래스 타입이면 자식 노드를 제거하도록 구현되는 것인 정형 스트림 데이터 처리장치.
  9. 테이블 생성부가 입력되는 스트림 데이터를 그래프 모델을 기반으로 저장하여 데이터 그래프를 구축하고, 상기 데이터 그래프로부터 최대 및 최소 경계 스키마를 추출하고, 상기 최대 및 최소 경계 스키마를 바탕으로 스키마 트리를 생성하고, 상기 스키마 트리에 대한 분해를 통해 생성되는 서브 트리에 객체-관계형 매핑 기법을 적용하여 상기 추출된 스키마를 기반으로 하여 데이터베이스 테이블을 생성하는 단계; 및
    데이터 처리부가 스트림 데이터를 수집하고, 수집된 스트림 데이터에 대한 전처리를 수행하며, 전처리된 스트림 데이터를 상기 데이터베이스 테이블에 저장하는 단계;를 포함하는
    정형 스트림 데이터 처리방법.
KR1020160058663A 2015-11-27 2016-05-13 정형 스트림 데이터 처리장치 및 처리방법 KR102072236B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR1020150167786 2015-11-27
KR20150167786 2015-11-27

Publications (2)

Publication Number Publication Date
KR20170062358A KR20170062358A (ko) 2017-06-07
KR102072236B1 true KR102072236B1 (ko) 2020-02-03

Family

ID=59223928

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020160058663A KR102072236B1 (ko) 2015-11-27 2016-05-13 정형 스트림 데이터 처리장치 및 처리방법

Country Status (1)

Country Link
KR (1) KR102072236B1 (ko)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102345890B1 (ko) * 2021-06-11 2022-01-03 주식회사 사이람 정형 데이터의 그래프 모델링 방법 및 그래프 모델링 장치

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101525529B1 (ko) 2014-09-30 2015-06-05 주식회사 비트나인 데이터 처리장치 및 그 데이터 매핑방법

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20060032463A (ko) * 2004-10-12 2006-04-17 정보통신연구진흥원 상이한 구조의 대용량 XML 데이터 검색을 위한 XMLDB 구축방법과 XQuery 엔진 시스템 및 그 방법
KR20060067065A (ko) * 2004-12-14 2006-06-19 김명원 천연 잔디 경기장에 라인 부분만 인조 잔디로 장치한 방법

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101525529B1 (ko) 2014-09-30 2015-06-05 주식회사 비트나인 데이터 처리장치 및 그 데이터 매핑방법

Also Published As

Publication number Publication date
KR20170062358A (ko) 2017-06-07

Similar Documents

Publication Publication Date Title
Elallaoui et al. Automatic transformation of user stories into UML use case diagrams using NLP techniques
Spahiu et al. ABSTAT: ontology-driven linked data summaries with pattern minimalization
Bhardwaj et al. Collaborative data analytics with DataHub
Smirnov et al. Action patterns in business process model repositories
Dumas et al. Fast detection of exact clones in business process model repositories
US9367652B2 (en) Cross-domain data artifacts consolidation in model context
Boubeta-Puig et al. A model-driven approach for facilitating user-friendly design of complex event patterns
Seriai et al. Mining features from the object-oriented source code of software variants by combining lexical and structural similarity
Smajevic et al. From conceptual models to knowledge graphs: a generic model transformation platform
Villazon-Terrazas et al. Construction of enterprise knowledge graphs (I)
Achichi et al. Automatic key selection for data linking
Letsholo et al. TRAM: A tool for transforming textual requirements into analysis models
Saraee et al. A new data science framework for analysing and mining geospatial big data
Petermann et al. Graph mining for complex data analytics
KR102072236B1 (ko) 정형 스트림 데이터 처리장치 및 처리방법
CN105426676B (zh) 一种钻井数据处理方法和系统
KR102206742B1 (ko) 자연언어 텍스트의 어휘 지식 그래프 표현 방법 및 장치
Meitz et al. An Approach to Support Process Model Validation based on Text Generation.
Padró et al. Language processing infrastructure in the xlike project
Umber et al. A Step Towards Ambiguity Less Natural Language Software Requirements Specifications.
Rheinländer et al. Versatile optimization of UDF-heavy data flows with sofa
Al-Msie'deen Requirements traceability: Recovering and visualizing traceability links between requirements and source code of object-oriented software systems
Layzell et al. DOCKET: program comprehension-in-the-large
Naeem et al. Generating OLAP queries from natural language specification
Maazoun et al. A bottom up SPL design method

Legal Events

Date Code Title Description
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right