KR20170047932A - 일괄 처리 방식의 시스템에서의 실시간 데이터 처리 장치 및 방법 - Google Patents

일괄 처리 방식의 시스템에서의 실시간 데이터 처리 장치 및 방법 Download PDF

Info

Publication number
KR20170047932A
KR20170047932A KR1020150148656A KR20150148656A KR20170047932A KR 20170047932 A KR20170047932 A KR 20170047932A KR 1020150148656 A KR1020150148656 A KR 1020150148656A KR 20150148656 A KR20150148656 A KR 20150148656A KR 20170047932 A KR20170047932 A KR 20170047932A
Authority
KR
South Korea
Prior art keywords
data
data set
event
condition
satisfied
Prior art date
Application number
KR1020150148656A
Other languages
English (en)
Other versions
KR102238694B1 (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 에스케이텔레콤 주식회사
Priority to KR1020150148656A priority Critical patent/KR102238694B1/ko
Publication of KR20170047932A publication Critical patent/KR20170047932A/ko
Application granted granted Critical
Publication of KR102238694B1 publication Critical patent/KR102238694B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • G06F17/30318

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Debugging And Monitoring (AREA)

Abstract

본 발명의 일 실시예에 따른 실시간 데이터 처리 장치는 실시간으로 입력되는 데이터를 복수 개의 데이터를 포함하는 데이터 집합을 기준으로 처리를 수행하는 시스템으로부터, 상기 데이터 집합을 획득하는 데이터 집합 획득부, 상기 데이터 집합에 포함된 상기 복수 개의 데이터가 상기 시스템에 입력된 순서를 인식하는 순서 인식부 및 적어도 하나 이상의 조건을 포함하는 이벤트를 정의하며, 상기 복수 개의 데이터가 그 입력된 순서에 따라서 순차적으로 상기 적어도 하나 이상의 조건을 만족시키는지 여부를 판단하고, 상기 판단 결과를 기초로 상기 이벤트의 발생 여부를 판단하는 이벤트 처리부를 포함한다.

Description

일괄 처리 방식의 시스템에서의 실시간 데이터 처리 장치 및 방법{APPARATUS AND METHOD FOR PROCESSING DATA IN REAL TIME IN BATCH PROCESSING SYSTEM}
본 발명은 일괄 처리 방식의 시스템에서 실시간으로 데이터를 처리하기 위한 장치 및 방법에 관한 것이며, 보다 자세하게는 일괄 처리 방식의 시스템이 실시간으로 입력되는 데이터를 복수의 데이터를 포함하는 데이터 집합으로 묶어서 처리할 때, 이러한 데이터 집합에 포함된 데이터가 실시간으로 입력된 순서를 인식한 뒤, 해당 데이터가 이러한 순서에 따라서 기 정의된 이벤트를 발생시키는지 여부를 판단함으로써 실시간으로 데이터를 처리할 수 있는 장치 및 방법에 관한 것이다.
최근에 빅데이터 처리 엔진인 스파크(spark)가 등장하였다. 스파크는 기존의 빅데이터 처리 엔진인 하둡(hadoop)에 비하여 데이터 처리 속도가 빠르다. 이는 스파크가 데이터를 데이터 집합으로 묶어서 처리하기 때문인데, 스파크에서의 이러한 데이터 집합은 Resilient Distributed Datasets(RDD)라고 지칭된다.
RDD와 같은 데이터 집합에 대하여 도 1을 참조하여 보다 자세하게 살펴보기로 한다. 도 1을 참조하면, 스파크(10)는 실시간으로 입력되는 데이터(2)를 데이터 집합(20)으로 묶어서 처리한다. 데이터 집합(20)은 기 설정된 시간 동안 획득된 데이터를 하나의 데이터 집합으로 묶은 것 또는 기 설정된 개수나 용량의 데이터를 하나의 데이터 집합으로 묶은 것을 지칭할 수 있다. 도 1에 도시된 바와 같이 각각의 데이터 집합(21, 22)은 복수 개의 데이터를 포함하며, 이 때 각각의 데이터 집합(21, 22)에 포함된 데이터의 개수는 동일하거나 상이할 수 있다.
여기서, 빅데이터 처리 엔진이 이와 같이 데이터를 데이터 집합(20)으로 묶어서 처리하는 방식은 배치 방식 또는 일괄 처리 방식(batch processing)이라고 지칭된다. 아울러, 스파크의 경우 기존의 일괄 처리 방식에 비하여 데이터 집합의 크기가 작다는 점에서, 스파크가 데이터를 처리하는 방식은 기존의 배치 방식과 대비되도록 마이크로 배치 방식이라고 지칭되고 있다.
그런데, 스파크와 같은 일괄 처리 방식의 시스템(10)은 데이터를 데이터 집합(20)을 단위로 하여 처리하기 때문에, 데이터 집합(20)에 포함된 데이터에 대해서는 해당 데이터가 입력된 순서에 따라 순차적으로 처리할 수 없다. 즉, 스파크는 하나의 데이터 집합(20)에 포함된 각각의 데이터가 입력된 순서를 고려하여 순차적으로 처리할 수는 없다.
따라서, 스파크와 같이 데이터를 데이터 집합(20)으로 묶어서 일괄적으로 처리하는 시스템에서, 데이터를 데이터 집합(20)으로 묶어서 처리할 때의 이점을 그대로 유지하면서 데이터 집합(20)에 포함된 각각의 데이터를 순차적으로 처리할 수 있는 기술에 대한 요구가 있다.
미국공개특허, 2014/0280766 (2014.09.18.공개)
본 발명의 해결하고자 하는 과제는 실시간으로 입력되는 데이터를 데이터 집합으로 묶어서 일괄적으로 처리하는 시스템에서, 데이터를 데이터 집합으로 묶어서 처리할 때의 이점을 그대로 유지하면서 데이터 집합에 포함된 각각의 데이터를 순차적으로 처리할 수 있는 기술을 제안하는 것이다.
본 발명의 일 양상에 따른 실시간 데이터 처리 장치는 실시간으로 입력되는 데이터를 복수 개의 데이터를 포함하는 데이터 집합을 기준으로 처리를 수행하는 시스템으로부터, 상기 데이터 집합을 획득하는 데이터 집합 획득부, 상기 데이터 집합에 포함된 상기 복수 개의 데이터가 상기 시스템에 입력된 순서를 인식하는 순서 인식부 및 적어도 하나 이상의 조건을 포함하는 이벤트를 정의하며, 상기 복수 개의 데이터가 그 입력된 순서에 따라서 순차적으로 상기 적어도 하나 이상의 조건을 만족시키는지 여부를 판단하고, 상기 판단 결과를 기초로 상기 이벤트의 발생 여부를 판단하는 이벤트 처리부를 포함한다.
본 발명의 일 양상에 따른 실시간 데이터 처리 방법은 실시간으로 입력되는 데이터를 복수 개의 데이터를 포함하는 데이터 집합으로 구성한 뒤 상기 데이터 집합을 기준으로 처리를 수행하는 시스템으로부터, 상기 데이터 집합을 획득하는 단계, 상기 데이터 집합에 포함된 상기 복수 개의 데이터가 상기 시스템에 입력된 순서를 인식하는 단계, 상기 복수 개의 데이터가 그 입력된 순서에 따라서 순차적으로 적어도 하나 이상의 조건을 포함하도록 기 정의된 이벤트의 상기 적어도 하나 이상의 조건을 만족시키는지 여부를 판단하는 단계 및 상기 적어도 하나 이상의 조건을 만족시키는지 여부를 기초로 상기 이벤트의 발생 여부를 판단하는 단계를 포함한다.
본 발명의 일 실시예에 따르면, 실시간으로 입력되는 데이터를 데이터 집합으로 묶어서 일괄적으로 처리하는 시스템에서, 데이터를 데이터 집합으로 묶어서 처리할 때의 이점을 그대로 유지하면서 데이터 집합에 포함된 각각의 데이터를 순차적으로 처리할 수 있다.
도 1은 일괄 처리 방식의 시스템에서의 데이터 처리 방식을 개념적으로 도시한 도면이다.
도 2는 본 발명의 일 실시예에 따른 실시간 데이터 처리 장치가 일괄 처리 방식의 시스템에 적용된 것을 개념적으로 도시한 도면이다.
도 3은 본 발명의 일 실시예에 따른 실시간 데이터 처리 장치의 구성을 예시적으로 도시한 도면이다.
도 4는 이벤트를 발생시키는 데이터가 복수의 데이터 집합에 걸쳐서 존재하는 경우를 예시적으로 도시한 도면이다.
도 5는 본 발명의 일 실시예에 따른 실시간 데이터 처리 방법의 절차를 예시적으로 도시한 도면이다.
도 6은 본 발명의 일 실시예에 따라서 실시간으로 데이터를 처리하는 예시를 도시한 도면이다.
도 7은 본 발명의 일 실시예에 따라서 실시간으로 데이터를 처리하는 예시를 도시한 도면이다.
본 발명의 이점 및 특징, 그리고 그것들을 달성하는 방법은 첨부되는 도면과 함께 상세하게 후술되어 있는 실시예들을 참조하면 명확해질 것이다. 그러나 본 발명은 이하에서 개시되는 실시예들에 한정되는 것이 아니라 서로 다른 다양한 형태로 구현될 수 있으며, 단지 본 실시예들은 본 발명의 개시가 완전하도록 하고, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 발명의 범주를 완전하게 알려주기 위해 제공되는 것이며, 본 발명은 청구항의 범주에 의해 정의될 뿐이다.
본 발명의 실시예들을 설명함에 있어서 공지 기능 또는 구성에 대한 구체적인 설명이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우에는 그 상세한 설명을 생략할 것이다. 그리고 후술되는 용어들은 본 발명의 실시예에서의 기능을 고려하여 정의된 용어들로서 이는 사용자, 운용자의 의도 또는 관례 등에 따라 달라질 수 있다. 그러므로 그 정의는 본 명세서 전반에 걸친 내용을 토대로 내려져야 할 것이다.
도 2는 본 발명의 일 실시예에 따른 실시간 데이터 처리 장치가 일괄 처리 방식의 시스템에 적용된 것을 개념적으로 도시한 도면이다.
도 2를 참조하면, 일괄 처리 방식의 시스템(10)은 실시간으로 입력되는 데이터(2)를 RDD와 같은 데이터 집합(20)으로 구성하며, 본 발명의 일 실시예에 따른 실시간 데이터 처리 장치(100)로 전달한다.
여기서, 일괄 처리 방식의 시스템(10)은 데이터를 데이터 집합으로 구성하여 처리하는 방식의 시스템을 지칭하며, 스파크(spark)나 하둡(hadoop)과 같은 빅데이터 처리 엔진을 예로 들 수 있다. 아울러, 데이터 집합(20)이란, 일괄 처리 방식의 시스템(10)이 데이터를 실시간으로 입력받는 경우 이러한 데이터를 복수 개를 포함하도록 구성한 집합을 지칭한다. 이러한 데이터 집합(20)은 1분이나 10분과 같이 기 설정된 시간 동안 획득된 데이터를 포함하거나 또는 기 설정된 개수나 용량의 복수 개의 데이터를 포함할 수 있다. 또한 각각의 데이터 집합(21, 22)은 동일하거나 상이한 개수의 데이터를 포함할 수 있다.
실시간 데이터 처리 장치(100)는 데이터 집합(20)에 포함된 데이터가 실시간으로 입력된 순서를 인식하며, 해당 데이터가 기 정의된 이벤트를 발생시키는지 여부를 그 입력된 순서를 고려하여 판단한 뒤, 이벤트 발생 여부를 일괄 처리 방식의 시스템(10)에 제공한다. 이러한 실시간 데이터 처리 장치(100)는 전술한 기능을 수행하도록 프로그램된 컴퓨터 판독가능한 기록매체에 저장된 컴퓨터 프로그램일 수 있으며, 또는 이와 같은 컴퓨터 프로그램을 저장하는 메모리와 해당 컴퓨터 프로그램을 구동할 수 있는 마이크로프로세서를 포함하는 연산 장치일 수 있다.
한편, 실시간 데이터 처리 장치(100)는 일괄 처리 방식의 시스템(10)에 포함되거나 또는 일괄 처리 방식의 시스템(10)과 연결되어 전술한 기능을 수행할 수 있는데, 이하에서는 이러한 실시간 데이터 처리 장치(100)에 대하여 보다 자세하게 살펴보기로 한다.
도 3은 본 발명의 일 실시예에 따른 실시간 데이터 처리 장치(100)의 구성을 도시한 도면이다.
도 3을 참조하면, 일 실시예에 따른 실시간 데이터 처리 장치(100)는 데이터 집합 획득부(110), 순서 인식부(120) 및 이벤트 처리부(130)를 포함하며, 다만 이는 일 실시예에 따른 것이므로 본 발명의 사상이 이에 한정되는 것은 아니다.
데이터 집합 획득부(110)는 도 2에 도시된 일괄 처리 방식의 시스템(10)으로부터 데이터 집합(20)을 획득한다. 데이터 집합(20)이 복수 개 획득될 경우, 먼저 획득된 데이터 집합(21)은 나중에 획득된 데이터 집합(22)보다 일괄 처리 방식의 시스템(10)이 시간적으로 먼저 수신한 데이터를 포함하는 데이터 집합일 수 있으나, 이와 반대일 수도 있다. 이러한 데이터 집합 획득부(110)는 전술한 기능을 수행하도록 프로그램된 메모리 및 이러한 프로그램을 구동하는 마이크로프로세서에 의하여 구현될 수 있다.
순서 인식부(120)는 데이터 집합(20)에 포함된 복수 개의 데이터가 일괄 처리 방식의 시스템(10)에 입력된 순서를 인식하며, 이러한 기능을 수행하도록 프로그램된 메모리 및 이러한 프로그램을 구동하는 마이크로프로세서에 의하여 구현될 수 있다.
보다 구체적으로 살펴보면, 순서 인식부(120)는 일괄 처리 방식의 시스템(10)과 연결될 수 있으며, 이로부터 데이터 집합(20)에 포함된 복수 개의 데이터 각각의 순서(일괄 처리 방식의 시스템(10)에 입력된 순서)를 전달받음으로써 이러한 순서를 인식할 수 있다. 이를 위하여, 순서 인식부(120)는 일괄 처리 방식의 시스템(10)으로 데이터 집합(20)에 포함된 복수 개의 데이터 각각의 순서에 대한 정보를 요청할 수 있으며, 이에 대응하여 일괄 처리 방식의 시스템(10)으로부터 순서에 대한 정보를 수신할 수 있다. 다만, 이는 일 실시예에 따른 것이므로, 순서 인식부(120)는 이와 다른 방법으로 순서를 인식할 수도 있다.
이벤트 처리부(130)는 이벤트 정의부(131), 판단부(132), 상태 저장부(133) 및 결과 알림부(134)를 포함한다. 아울러, 이벤트 처리부(130)는 이러한 구성을 이용하여 적어도 하나 이상의 조건을 포함하는 이벤트를 정의하며, 복수 개의 데이터가 그 입력된 순서에 따라서 순차적으로 적어도 하나 이상의 조건을 만족시키는지 여부를 판단하고, 판단 결과를 기초로 이벤트의 발생 여부를 판단하는데, 이러한 이벤트 처리부(130)는 전술한 기능을 수행하도록 프로그램된 메모리 및 이러한 프로그램을 구동하는 마이크로프로세서에 의하여 구현될 수 있다.
보다 구체적으로 살펴보면, 이벤트 정의부(131)는 적어도 하나 이상의 조건을 포함하는 이벤트를 정의한다. 이벤트는 해당 이벤트가 포함하는 모든 조건이 만족된 경우 발생하는 것으로 정의될 수 있다.
여기서, 조건은 입력되는 데이터를 기초로 판단할 수 있는 기준을 지칭하는 것으로, 예를 들면 로그에 DNS error message가 1분 이내에 10회 발생하는지 여부, 1 분 이내에 네트워크에서의 tx rate가 100 이하로 떨어지는지 여부 또는 CPU의 부하가 30분 이상 99% 이상인지 여부 등일 수 있다.
여기서, 조건이 복수 개인 경우 각 조건의 만족 여부를 판단하는 순서가 존재할 수 있는데, 이 경우 순서가 빠른 조건이 만족된 이후에 그 다음 순서의 조건이 만족되는지 여부가 판단될 수 있다. 예를 들면, 조건이 제1 조건과 제2 조건을 포함하는 경우, 먼저 제1 조건이 만족되는지 여부가 판단되어야 하며, 제1 조건이 만족된 이후에 비로소 제2 조건이 만족되는지 여부가 판단되어야 한다. 다만, 이와 달리 복수 개의 조건 중 어느 조건이 만족되는지 여부가 동시에 판단될 수 있다.
판단부(132)는 입력된 데이터가 이벤트에 포함된 조건을 만족시키는지 여부를 판단한다. 아울러, 복수 개의 조건이 이벤트에 포함된 경우이면서 각 조건의 만족 여부를 판단하는 순서가 존재하는 경우에 있어서, 판단부(132)는 특정 조건이 만족되는지 여부를 판단한 뒤, 해당 조건이 만족된 경우 해당 조건의 다음 순서의 조건이 만족되는지 여부를 판단할 수 있다.
여기서, 이벤트에는 해당 이벤트의 상태를 나타내는 다양한 상태(state)가 존재한다. 이러한 상태에는 이벤트의 발생 여부를 판단하도록 개시된 상태를 지칭하는 초기 상태, 이벤트에 포함된 복수 개(예를 들면 n개)의 조건 각각의 만족 여부를 판단하는 제1 상태, 제2 상태,...,제n 상태, 그리고 이벤트에 포함된 조건 중 마지막 조건이 만족된 경우 또는 모든 조건이 만족된 경우의 상태를 나타내는 최종 상태(final state)가 있을 수 있다.
예를 들면, '로그에 DNS error message가 1분 이내에 10회 발생한 뒤 1 분 이내에 네트워크에서의 tx rate가 100 이하로 떨어지는지 여부'가 이벤트로 정의된 경우, 이러한 이벤트의 발생 여부를 판단하기로 한 상태는 초기 상태이다. 다음으로, '로그에 DNS error message가 1분 이내에 10회 발생하는지 여부'라는 조건이 만족되는지 여부를 판단하는 상태는 제1 상태, 제1 상태가 만족된 이후에 '1 분 이내에 네트워크에서의 tx rate가 100 이하로 떨어지는지 여부'라는 조건이 만족되는지 여부를 판단하는 상태는 제2 상태라고 지칭될 수 있다. 마지막으로, 제2 상태에서 '1 분 이내에 네트워크에서의 tx rate가 100 이하로 떨어지는지 여부'라는 조건이 만족된 경우는 최종 상태라고 지칭될 수 있다.
이를 참조하여 살펴보면, 판단부(132)는 이벤트에 포함된 복수의 조건 중에서 어떤 조건이 만족되었는지를 기초로 이벤트의 현재 상태를 판단하고, 해당 상태에서 만족되어야 하는 조건을 식별하며, 식별된 조건이 만족되는지 여부를 판단하고, 해당 조건이 만족되면 다음 상태(next state)로 천이(transition)되도록 할 수 있다.
상태 저장부(133)는 판단부(132)에 의하여 판단된 이벤트의 현재 상태를 저장하였다가, 판단부(132)에 제공할 수 있다. 예를 들면, 상태 저장부(133)에는 초기 상태, 제1 상태, 제2 상태,..제n 상태, 최종 상태 등이 저장될 수 있다.
결과 알림부(134)는 이벤트의 발생 여부를 일괄 처리 방식의 시스템(10)으로 전달할 수 있다. 예를 들면, 판단부(132)에 의하여 이벤트가 최종 상태라고 판단되면, 결과 알림부(134)는 이벤트가 발생되었음을 전달할 수 있다. 반면, 판단부(132)에 의하여 아직 이벤트가 최종 상태가 아닌 것으로 판단되면 결과 알림부(132)는 아직 이벤트가 발생되지 않았음을 전달할 수 있다.
한편, 전술한 이벤트 처리부(130)의 기능은 유한 오토마타(finite automata)를 적용하여 구현될 수도 있다.
이상에서 살펴본 바와 같이, 본 발명의 일 실시예에 따르면 실시간으로 입력되는 데이터를 데이터 집합으로 묶어서 일괄적으로 처리하는 시스템에서도 데이터 집합에 포함된 각각의 데이터에 대하여 그 입력되는 순서에 따라서 이벤트 발생 여부를 판단할 수 있다. 즉, 일괄 처리 시스템 하에서도 실시간 데이터 처리를 구현할 수 있다.
한편, 이벤트에 포함된 복수의 조건을 만족시키는 데이터(3)가 도 4에 도시된 바와 같이 복수의 데이터 집합(21, 22)에 걸쳐서 존재할 수 있다. 본 발명의 일 실시예에서는 이러한 경우에도 이벤트의 발생을 판단할 수 있다. 보다 구체적으로 살펴보면, 상태 저장부(133)는 제1 데이터 집합(21)에 포함된 데이터 전체에 대하여 판단부(132)가 판단한 현재 상태를 저장할 수 있다. 이 후, 제2 데이터 집합(22)이 획득되면, 상태 저장부(133)는 저장된 현재 상태를 판단부(132)에 제공할 수 있다. 그러면 판단부(132)는 제2 데이터 집합(21)이 조건을 만족시키는지 여부를 판단함에 있어서, 이벤트에 포함된 적어도 하나 이상의 조건 중에서 상태 저장부(133)가 제공한 현재 상태에서 만족되어야 하는 조건의 만족 여부부터 판단할 수 있다. 즉, 데이터(3)가 복수의 데이터 집합(21, 22)에 걸쳐서 존재할 때에도 이벤트의 만족 여부를 판단할 수 있다.
도 5는 본 발명의 일 실시예에 따른 실시간 데이터 처리 방법의 절차를 예시적으로 도시한 도면으로, 이러한 실시간 데이터 처리 방법은 도 3에 도시된 실시간 데이터 처리 장치(100)에 의하여 수행될 수 있다. 아울러, 도 5의 방법을 구성하는 각각의 절차는 실시예에 따라서 적어도 하나 이상이 수행되지 않거나 도시되지 않은 절차가 추가로 수행될 수 있으며, 절차가 수행되는 순서가 변경될 수 있다.
도 5를 참조하면, 일괄 처리 방식의 시스템(10)으로부터 데이터 집합(20)을 획득하는 단계(S100)가 수행된다. 데이터 집합(20)이 복수 개 획득될 경우, 먼저 획득된 데이터 집합(21)은 나중에 획득된 데이터 집합(22)보다 일괄 처리 방식의 시스템(10)이 시간적으로 먼저 수신한 데이터를 포함하는 데이터 집합일 수 있으나, 이와 반대일 수도 있음은 전술한 바와 같다.
다음으로, 데이터 집합(20)에 포함된 복수 개의 데이터가 일괄 처리 방식의 시스템(10)에 입력된 순서를 인식하는 단계(S110)가 수행된다. 이 때, 일괄 처리 방식의 시스템(10)으로부터 데이터 집합(20)에 포함된 복수 개의 데이터 각각의 순서(일괄 처리 방식의 시스템(10)에 입력된 순서)를 전달받음으로써 그 순서를 인식할 수 있음은 전술한 바와 같다.
다음으로, 적어도 하나 이상의 조건을 포함하는 이벤트를 정의하며, 복수 개의 데이터가 그 입력된 순서에 따라서 순차적으로 적어도 하나 이상의 조건을 만족시키는지 여부를 판단하는 단계(S120)가 수행된다.
보다 구체적으로 살펴보면, 이벤트는 적어도 하나 이상의 조건을 포함하도록 정의될 수 있으며, 이러한 이벤트는 해당 이벤트가 포함하는 모든 조건을 만족시키는 경우에 발생하는 것으로 정의될 수 있다.
여기서, 조건은 입력되는 데이터를 기초로 판단할 수 있는 기준을 지칭하는 것이고, 조건이 복수 개인 경우 각 조건의 만족 여부를 판단하는 순서가 존재할 수 있는데, 이 경우 순서가 빠른 조건이 만족된 이후에 그 다음 순서의 조건이 만족되는지 여부가 판단될 수 있는 것은 전술한 바와 같다. 또한, 이와 달리 복수 개의 조건 중 어느 조건이 만족되는지 여부를 동시에 판단할 수 있음 또한 전술한 바와 같다.
또한, 이벤트에는 상태가 존재하며, 이러한 상태에는 초기 상태, 이벤트에 포함된 복수 개(예를 들면 n개)의 조건 각각의 만족 여부를 판단하는 제1 상태, 제2 상태,...,제n 상태, 그리고 이벤트에 포함된 모든 조건이 만족된 경우 또는 마지막 조건이 만족된 경우의 상태인 최종 상태가 있을 수 있음은 전술한 바와 같다.
다음으로, 단계(S120)에서 판단한 결과를 기초로 이벤트의 발생 여부를 판단하는 단계(S130)가 수행된다.
다음으로, 도면에는 도시되지 않았지만 이벤트의 발생 여부를 판단한 결과를 일괄 처리 방식의 시스템(10)으로 전달하는 단계가 수행될 수 있다. 예를 들면, 이벤트가 발생되었거나 또는 아직 이벤트가 발생되지 않았음을 전달할 수 있다.
이상에서 살펴본 바와 같이, 본 발명의 일 실시예에 따르면 실시간으로 입력되는 데이터를 데이터 집합으로 묶어서 일괄적으로 처리하는 시스템에서도 데이터 집합에 포함된 각각의 데이터에 대하여 그 입력되는 순서에 따라서 이벤트 발생 여부를 판단할 수 있다. 즉, 일괄 처리 시스템 하에서도 실시간 데이터 처리를 구현할 수 있다.
한편, 이벤트에 포함된 복수의 조건을 만족시키는 데이터(3)가 도 4에 도시된 바와 같이 복수의 데이터 집합(21, 22)에 걸쳐서 존재할 때, 본 발명의 일 실시예에 따른 실시간 데이터 처리 방법에서 이벤트의 발생을 판단할 수 있으며, 이는 실시간 데이터 처리 장치(100)에서 설명한 바와 같으므로 이에 대한 자세한 설명은 생략하기로 한다.
도 6은 본 발명의 일 실시예에 따라서 실시간으로 데이터를 처리하는 기술을 적용한 실시예를 도시한 도면이다.
도 6을 참조하면, '로그에 DNS error message가 1분 이내에 10회 발생한 뒤 1 분 이내에 네트워크에서의 tx rate가 100 이하로 떨어지는지 여부'가 이벤트로 정의된다. 여기서, '로그에 DNS error message가 1분 이내에 10회 발생하는지 여부'는 제1 조건(w1)이며, '1 분 이내에 네트워크에서의 tx rate가 100 이하로 떨어지는지 여부'는 제2 조건(w2)이다. 아울러, S0는 초기 상태, S1은 제1 조건(w1)이 만족하는지 여부를 판단하는 상태, S2는 제1 조건(w1)이 만족된 상태에서 제2 조건(w2)이 만족되는지 여부를 판단하는 상태, F는 제2 조건(w2)이 만족된 최종 상태이다.
여기서, 초기 상태(S0)에서 제1 상태(S1), 제2 상태(S2) 그리고 최종 상태(F)로 천이되는 과정은 제1 데이터 집합에 포함된 데이터가 순차적으로 제1 조건(w1)과 제2 조건(w2)을 만족시키는지 여부에 따라 수행된다. 즉, 본 발명의 일 실시예에 따르면 실시간으로 입력되는 데이터를 데이터 집합으로 묶어서 일괄적으로 처리하는 시스템에서도, 데이터 집합에 포함된 각각의 데이터에 대하여 그 입력되는 순서에 따라서 이벤트 발생 여부를 판단할 수 있다.
도 7은 본 발명의 일 실시예에 따라서 실시간으로 데이터를 처리하는 기술을 적용한 실시예를 도시한 도면이다.
도 7을 참조하면, 'CPU의 부하가 30분 이상 99% 이상 유지되면서 log에 xx가 발생하는 경우'가 이벤트로 정의된다. 여기서, 'CPU의 부하가 30분 이상 99% 이상 유지되지 않음'은 제1 조건(w1-1)이며, 'CPU의 부하가 30분 이상 99% 이상 유지됨'은 제2 조건(w1-2)이다. 그리고 'log에 xx가 발생함'이 제3 조건(w2-1)이며, 'log에 xx가 발생하지 않음'이 제4 조건(w2-2)이다. 아울러, S0는 초기 상태, S1은 제1 조건(w1-1) 또는 제2 조건(w1-2)이 만족하는지 여부를 판단하는 상태, S2는 제3 조건(w2-1) 또는 제4 조건(w2-2)이 만족하는지 여부를 판단하는 상태, F는 제3 조건(w2-1)이 만족된 최종 상태이다.
여기서, 초기 상태(S0)에서 제1 상태(S1), 제2 상태(S2) 그리고 최종 상태(F)로 천이되는 과정은 제1 데이터 집합에 포함된 데이터가 순차적으로 제2 조건(w1-2)과 제3 조건(w2-1)을 만족시키는지 여부에 따라 수행된다. 즉, 본 발명의 일 실시예에 따르면 실시간으로 입력되는 데이터를 데이터 집합으로 묶어서 일괄적으로 처리하는 시스템에서도 데이터 집합에 포함된 각각의 데이터에 대하여 그 입력되는 순서에 따라서 이벤트 발생 여부를 판단할 수 있다. 이 때, 만약, 제1 상태(S1)에서 제2 조건(w1-2)이 아닌 제1 조건(w1-1)이 만족되면 초기 상태(S0)로 돌아간다. 또한, 제2 상태(S2)에서 제3 조건(w2-1)이 아닌 제4 조건(w2-2)이 만족되면 초기 상태(S0)로 돌아간다.
본 발명에 첨부된 블록도의 각 블록과 흐름도의 각 단계의 조합들은 컴퓨터 프로그램 인스트럭션들에 의해 수행될 수도 있다. 이들 컴퓨터 프로그램 인스트럭션들은 범용 컴퓨터, 특수용 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비의 프로세서에 탑재될 수 있으므로, 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비의 프로세서를 통해 수행되는 그 인스트럭션들이 블록도의 각 블록 또는 흐름도의 각 단계에서 설명된 기능들을 수행하는 수단을 생성하게 된다. 이들 컴퓨터 프로그램 인스트럭션들은 특정 방식으로 기능을 구현하기 위해 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비를 지향할 수 있는 컴퓨터 이용 가능 또는 컴퓨터 판독 가능 메모리에 저장되는 것도 가능하므로, 그 컴퓨터 이용가능 또는 컴퓨터 판독 가능 메모리에 저장된 인스트럭션들은 블록도의 각 블록 또는 흐름도 각 단계에서 설명된 기능을 수행하는 인스트럭션 수단을 내포하는 제조 품목을 생산하는 것도 가능하다. 컴퓨터 프로그램 인스트럭션들은 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비 상에 탑재되는 것도 가능하므로, 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비 상에서 일련의 동작 단계들이 수행되어 컴퓨터로 실행되는 프로세스를 생성해서 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비를 수행하는 인스트럭션들은 블록도의 각 블록 및 흐름도의 각 단계에서 설명된 기능들을 실행하기 위한 단계들을 제공하는 것도 가능하다.
또한, 각 블록 또는 각 단계는 특정된 논리적 기능(들)을 실행하기 위한 하나 이상의 실행 가능한 인스트럭션들을 포함하는 모듈, 세그먼트 또는 코드의 일부를 나타낼 수 있다. 또, 몇 가지 대체 실시예들에서는 블록들 또는 단계들에서 언급된 기능들이 순서를 벗어나서 발생하는 것도 가능함을 주목해야 한다. 예컨대, 잇달아 도시되어 있는 두 개의 블록들 또는 단계들은 사실 실질적으로 동시에 수행되는 것도 가능하고 또는 그 블록들 또는 단계들이 때때로 해당하는 기능에 따라 역순으로 수행되는 것도 가능하다.
이상의 설명은 본 발명의 기술 사상을 예시적으로 설명한 것에 불과한 것으로서, 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자라면 본 발명의 본질적인 품질에서 벗어나지 않는 범위에서 다양한 수정 및 변형이 가능할 것이다. 따라서, 본 발명에 개시된 실시예들은 본 발명의 기술 사상을 한정하기 위한 것이 아니라 설명하기 위한 것이고, 이러한 실시예에 의하여 본 발명의 기술 사상의 범위가 한정되는 것은 아니다. 본 발명의 보호 범위는 아래의 청구범위에 의하여 해석되어야 하며, 그와 동등한 범위 내에 있는 모든 기술사상은 본 발명의 권리범위에 포함되는 것으로 해석되어야 할 것이다.
본 발명의 실시예에 따르면 일괄 처리 방식으로 데이터를 처리하는 빅데이터 엔진에 대해서도 실시간으로 입력되는 데이터를 순차적으로 처리할 수 있으므로, 데이터 처리의 신속성과 실시간 데이터 처리를 동시에 확보할 수 있다.
100: 실시간 데이터 처리 장치
110: 데이터 집합 획득부 120: 순서 인식부
130: 이벤트 처리부

Claims (5)

  1. 실시간으로 입력되는 데이터를 복수 개의 데이터를 포함하는 데이터 집합을 기준으로 처리를 수행하는 시스템으로부터, 상기 데이터 집합을 획득하는 데이터 집합 획득부;
    상기 데이터 집합에 포함된 상기 복수 개의 데이터가 상기 시스템에 입력된 순서를 인식하는 순서 인식부; 및
    적어도 하나 이상의 조건을 포함하는 이벤트를 정의하며, 상기 복수 개의 데이터가 상기 시스템으로 입력된 순서에 따라서 상기 적어도 하나 이상의 조건을 만족시키는지 여부를 판단하고, 상기 판단 결과를 기초로 상기 이벤트의 발생 여부를 판단하는 이벤트 처리부를 포함하는
    실시간 데이터 처리 장치.
  2. 제 1 항에 있어서,
    상기 이벤트 처리부는 상기 적어도 하나 이상의 조건 중에서 현재까지 만족된 조건에 따라서 정의되는 상기 이벤트의 현재 상태를 저장하는 상태 저장부를 포함하고,
    상기 상태 저장부는,
    상기 데이터 집합 획득부를 통해 상기 이벤트 처리부가 획득한 제1 데이터 집합을 구성하는 데이터 전체에 대한 현재 상태를 저장하였다가, 상기 이벤트 처리부가 제2 데이터 집합을 획득하면 상기 현재 상태를 상기 이벤트 처리부에 제공하며,
    상기 이벤트 처리부는,
    상기 적어도 하나 이상의 조건 중에서 상기 현재 상태에서 만족되어야 하는 조건의 만족 여부부터 판단함으로써 상기 이벤트의 발생 여부를 판단하는
    실시간 데이터 처리 장치.
  3. 실시간으로 입력되는 데이터를 복수 개의 데이터를 포함하는 데이터 집합을 기준으로 처리를 수행하는 시스템으로부터, 상기 데이터 집합을 획득하는 단계;
    상기 데이터 집합에 포함된 상기 복수 개의 데이터가 상기 시스템에 입력된 순서를 인식하는 단계;
    상기 복수 개의 데이터가 상기 시스템으로 입력된 순서에 따라서 적어도 하나 이상의 조건을 포함하도록 기 정의된 이벤트의 상기 적어도 하나 이상의 조건을 만족시키는지 여부를 판단하는 단계; 및
    상기 적어도 하나 이상의 조건을 만족시키는지 여부를 기초로 상기 이벤트의 발생 여부를 판단하는 단계를 포함하는
    실시간 데이터 처리 방법.
  4. 제 3 항에 있어서,
    상기 이벤트의 발생 여부를 판단하는 단계는,
    상기 데이터 집합을 획득하는 단계에서 획득한 제1 데이터 집합에 포함된 데이터 전체에 대하여 그 입력된 순서에 따라서 상기 적어도 하나 이상의 조건을 만족시키는지 여부를 판단하는 단계;
    상기 제1 데이터 집합에 포함된 데이터 전체가 상기 적어도 하나 이상의 조건 중에서 현재까지 만족시킨 조건에 따라서 정의되는 상기 이벤트의 현재 상태를 저장하는 단계; 및
    상기 제1 데이터 집합이 획득된 이후에 제2 데이터 집합이 획득되면, 상기 현재 상태에서 만족되어야 하는 조건의 만족 여부부터 판단함으로써 상기 이벤트의 발생 여부를 판단하는
    실시간 데이터 처리 방법.
  5. 제 4 항 또는 제 5 항 중 어느 한 항에서의 각각의 단계를 수행하도록 프로그램된 컴퓨터 판독가능 기록매체에 저장된 컴퓨터 프로그램.
KR1020150148656A 2015-10-26 2015-10-26 일괄 처리 방식의 시스템에서의 실시간 데이터 처리 장치 및 방법 KR102238694B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020150148656A KR102238694B1 (ko) 2015-10-26 2015-10-26 일괄 처리 방식의 시스템에서의 실시간 데이터 처리 장치 및 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020150148656A KR102238694B1 (ko) 2015-10-26 2015-10-26 일괄 처리 방식의 시스템에서의 실시간 데이터 처리 장치 및 방법

Publications (2)

Publication Number Publication Date
KR20170047932A true KR20170047932A (ko) 2017-05-08
KR102238694B1 KR102238694B1 (ko) 2021-04-09

Family

ID=60163802

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020150148656A KR102238694B1 (ko) 2015-10-26 2015-10-26 일괄 처리 방식의 시스템에서의 실시간 데이터 처리 장치 및 방법

Country Status (1)

Country Link
KR (1) KR102238694B1 (ko)

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20090062468A (ko) * 2007-12-13 2009-06-17 한국전자통신연구원 네트워크 품질 관리 시스템 및 그 성능 측정 데이터 집합처리 방법
US20140280766A1 (en) 2013-03-12 2014-09-18 Yahoo! Inc. Method and System for Event State Management in Stream Processing
KR101695278B1 (ko) * 2016-04-26 2017-01-23 (주)시큐레이어 실시간성 이벤트를 탐지하는 방법 및 이를 이용한 서버
US9552173B2 (en) * 2013-10-14 2017-01-24 Globalfoundries Inc. Robust data replication
EP2842085B1 (en) * 2012-04-26 2019-02-06 Amadeus S.A.S. Database system using batch-oriented computation

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20090062468A (ko) * 2007-12-13 2009-06-17 한국전자통신연구원 네트워크 품질 관리 시스템 및 그 성능 측정 데이터 집합처리 방법
EP2842085B1 (en) * 2012-04-26 2019-02-06 Amadeus S.A.S. Database system using batch-oriented computation
US20140280766A1 (en) 2013-03-12 2014-09-18 Yahoo! Inc. Method and System for Event State Management in Stream Processing
US9552173B2 (en) * 2013-10-14 2017-01-24 Globalfoundries Inc. Robust data replication
KR101695278B1 (ko) * 2016-04-26 2017-01-23 (주)시큐레이어 실시간성 이벤트를 탐지하는 방법 및 이를 이용한 서버

Also Published As

Publication number Publication date
KR102238694B1 (ko) 2021-04-09

Similar Documents

Publication Publication Date Title
JP6602435B2 (ja) 連続イベント処理(cep)クエリの並列の実行
US10042669B2 (en) Concurrent execution of a computer software application along multiple decision paths
EP3547170A1 (en) Blockchain-based consensus method and device
US7433854B2 (en) Backward chaining with extended knowledge base network
CN108762911A (zh) 定时任务管理方法、装置、计算机设备及存储介质
CN110134659B (zh) 运行程序的日志监控系统、方法、介质及设备
US9853906B2 (en) Network prioritization based on node-level attributes
JP6141536B2 (ja) グレースケールアップグレードの方法および装置
US10725891B2 (en) Evaluating user experience
EP3605953A1 (en) Failure automatic recovery system, control device, procedure creation device, and computer-readable storage medium
US20220222266A1 (en) Monitoring and alerting platform for extract, transform, and load jobs
CN104239165A (zh) 一种移动终端及其双系统处理任务的方法和装置
CN113672369A (zh) 用于验证有向无环图的环的方法及装置、电子设备、存储介质
WO2013097561A1 (en) Scenario-based crawling
US20160335170A1 (en) Model checking device for distributed environment model, model checking method for distributed environment model, and medium
KR20170047932A (ko) 일괄 처리 방식의 시스템에서의 실시간 데이터 처리 장치 및 방법
CN107465756A (zh) 一种服务请求处理的方法和装置
US20170039200A1 (en) Evaluating user experience
CN105630583A (zh) 一种数据处理方法和装置
CN107528724B (zh) 一种节点集群的优化处理方法及装置
CN111124832A (zh) 数据监控方法、装置、电子设备及存储介质
CN103701670A (zh) 一种数据包负载的处理方法和装置
CN110555181A (zh) 一种页面交叉跳转方法及装置
US20190004885A1 (en) Method and system for aiding maintenance and optimization of a supercomputer
CN112434193B (zh) 一种引导式系统故障快速排查方法及装置

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant