KR101966356B1 - 머신러닝 기반 무중단 파서 업데이트 방법 및 이를 이용한 솔루션 서버 - Google Patents

머신러닝 기반 무중단 파서 업데이트 방법 및 이를 이용한 솔루션 서버 Download PDF

Info

Publication number
KR101966356B1
KR101966356B1 KR1020180151821A KR20180151821A KR101966356B1 KR 101966356 B1 KR101966356 B1 KR 101966356B1 KR 1020180151821 A KR1020180151821 A KR 1020180151821A KR 20180151821 A KR20180151821 A KR 20180151821A KR 101966356 B1 KR101966356 B1 KR 101966356B1
Authority
KR
South Korea
Prior art keywords
parser
data
parsers
server
matching
Prior art date
Application number
KR1020180151821A
Other languages
English (en)
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 KR1020180151821A priority Critical patent/KR101966356B1/ko
Application granted granted Critical
Publication of KR101966356B1 publication Critical patent/KR101966356B1/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/23Updating
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/30Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
    • G06F16/31Indexing; Data structures therefor; Storage structures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • G06F9/505Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering the load
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N20/00Machine learning

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Artificial Intelligence (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Evolutionary Computation (AREA)
  • Medical Informatics (AREA)
  • Computing Systems (AREA)
  • Mathematical Physics (AREA)
  • Computer And Data Communications (AREA)

Abstract

머신러닝 기반 파서를 업데이트하는 방법에 있어서, (a) 후보 파서들이 소정의 저장부에 등록된 상태에서, 적어도 하나의 에이전트 서버로부터 비정형 데이터들이 획득되면, 솔루션 서버가, 상기 비정형 데이터들과 상기 소정의 저장부로부터 획득한 상기 후보 파서들을 각각 매칭한 결과를 참조로 하여, 상기 후보 파서들 중 상기 비정형 데이터들에 매칭되는 적어도 하나의 특정 파서를 결정하는 단계; 및 (b) 상기 솔루션 서버가, 상기 특정 파서 중 적어도 하나의 파서를 최적 파서로서 상기 에이전트 서버로 전달하는 단계;를 포함하는 것을 특징으로 하는 방법 및 이를 이용한 솔루션 서버를 제공한다.

Description

머신러닝 기반 무중단 파서 업데이트 방법 및 이를 이용한 솔루션 서버{METHOD FOR PAUSELESS PARSER UPDATE BASED ON MACHINE LEARNING AND SOLUTION SERVER USING THE SAME}
본 발명은 머신러닝 기반 무중단 파서 업데이트 방법 및 이를 이용한 솔루션 서버에 관한 것이다. 구체적으로는, (a) 후보 파서들이 소정의 저장부에 등록된 상태에서, 적어도 하나의 에이전트 서버로부터 비정형 데이터들이 획득되면, 솔루션 서버가, 상기 비정형 데이터들과 상기 소정의 저장부로부터 획득한 상기 후보 파서들을 각각 매칭한 결과를 참조로 하여, 상기 후보 파서들 중 상기 비정형 데이터들에 매칭되는 적어도 하나의 특정 파서를 결정하는 단계; 및 (b) 상기 솔루션 서버가, 상기 특정 파서 중 적어도 하나의 파서를 최적 파서로서 상기 에이전트 서버로 전달하는 단계;를 포함하는 것을 특징으로 하는 방법 및 이를 이용한 솔루션 서버에 관한 것이다.
기존의 실시간 데이터 분석 환경에서는 데이터를 파싱하는 작업을 하기 위해 파서를 사용자가 직접 등록하는 작업을 거치거나 다른 시스템에 등록되어 있는 데이터를 가져오는 작업을 거쳐야만 했다.
먼저, 사용자가 직접 파서를 등록하는 작업의 경우, 사용자가 파서를 입력하는 과정에서 오탈자가 빈번하게 발생하게 되고, 그에 따라 사용자가 다시 파서를 수정하는 작업을 거쳐야 하기 때문에 비효율적인 문제점이 존재하였다.
또한, 다른 시스템에 등록되어 있는 데이터를 가져오는 작업의 경우, 보편화되지 않은 파서 또는 검증되지 않은 파서를 가져오게 되면, 복구 작업이 진행되어야 하는 문제점이 존재하였다.
또한, 파싱 작업을 진행하는 중에 획득된 소량의 비정형 데이터로 인해 파싱이 진행되지 않으면, 사용자가 비정형 데이터를 파싱하기 위한 신규 파서를 생성해야만 한다. 이렇게 신규 파서를 생성하는 작업은 사용자가 대량의 데이터에서 해당 비정형 데이터를 찾아내고 이에 매칭되는 신규 파서를 생성한 뒤 해당 비정형 데이터에 대해 신규 파서로 파싱이 진행되는지 확인하는 과정과 해당 파싱 결과를 기초로 신규 파서를 수정하는 과정을 여러 번 거쳐야만 파싱이 진행될 수 있는 문제점이 존재하였다.
본 발명은 상술한 문제점을 모두 해결하는 것을 목적으로 한다.
또한, 본 발명은 솔루션 서버가, 에이전트 서버로 하여금 비정형 데이터에 매칭되는 파서를 업데이트하도록 하는 동안에도 기존 데이터에 대한 분석을 진행하도록 하고, 이에 따라 새롭게 획득되는 비정형 데이터들을 큐 형식의 저장공간에 저장하도록 한 상태에서, 새롭게 획득되는 비정형 데이터에 매칭되는 파서도 실시간으로 중단없이 업데이트하도록 하는 것을 다른 목적으로 한다.
또한, 본 발명은 비정형 데이터에 전부 매칭되는 파서가 존재하지 않더라도 솔루션 서버가, 비정형 데이터에 일부 매칭되는 파서를 비정형 데이터와 매칭하고, 매칭한 결과를 참조로 학습하여 비정형 데이터에 전부 매칭되는 파서를 생성하는 것을 또 다른 목적으로 한다.
또한, 본 발명은 에이전트 서버에서 획득된 비정형 데이터들 내에 중복되는 비정형 데이터들이 존재할 경우, 에이전트 서버로 하여금 이를 일부 제거하도록 하여 솔루션 서버로 전송하도록 함으로써, 솔루션 서버가 동일한 비정형 데이터들에 대하여 중복되는 분석 및 학습을 하지 않는 것을 또 다른 목적으로 한다.
또한, 본 발명은 솔루션 서버가, 에이전트 서버 각각으로 하여금 에이전트 서버 각각의 쿼리들을 분할하여 전송하도록 하고, 각각의 쿼리들 중 적어도 일부에 매칭되는 파서들을 각각의 에이전트 서버로 전달함으로써, 다수의 에이전트 서버로부터 쿼리를 획득하는 솔루션 서버의 부하를 줄이는 것을 또 다른 목적으로 한다.
상기 목적을 달성하기 위한 본 발명의 대표적인 구성은 다음과 같다.
머신러닝 기반 파서를 업데이트하는 방법에 있어서, (a) 후보 파서들이 소정의 저장부에 등록된 상태에서, 적어도 하나의 에이전트 서버로부터 비정형 데이터들이 획득되면, 솔루션 서버가, 상기 비정형 데이터들과 상기 소정의 저장부로부터 획득한 상기 후보 파서들을 각각 매칭한 결과를 참조로 하여, 상기 후보 파서들 중 상기 비정형 데이터들에 매칭되는 적어도 하나의 특정 파서를 결정하는 단계; 및 (b) 상기 솔루션 서버가, 상기 특정 파서 중 적어도 하나의 파서를 최적 파서로서 상기 에이전트 서버로 전달하는 단계;를 포함하는 것을 특징으로 하는 방법이 제공된다.
또한, 본 발명의 일 실시예에 따르면, 머신러닝 기반 파서를 업데이트하는 솔루션 서버에 있어서, 인스트럭션들을 저장하는 적어도 하나의 메모리; 및 상기 인스트럭션들을 실행하기 위해 구성된 적어도 하나의 프로세서를 포함하되, 상기 프로세서는, 후보 파서들이 소정의 저장부에 등록된 상태에서, 적어도 하나의 에이전트 서버로부터 비정형 데이터들이 획득되면, (1) 상기 비정형 데이터들과 상기 소정의 저장부로부터 획득한 상기 후보 파서들을 각각 매칭한 결과를 참조로 하여, 상기 후보 파서들 중 상기 비정형 데이터들에 매칭되는 적어도 하나의 특정 파서를 결정하는 프로세스, 및 (2) 상기 특정 파서 중 적어도 하나의 파서를 최적 파서로서 상기 에이전트 서버로 전달하는 프로세스를 수행하는 상기 인스트럭션들을 실행하는 솔루션 서버가 제공된다.
본 발명에 의하면, 다음과 같은 효과가 있다.
본 발명은 솔루션 서버가, 에이전트 서버로 하여금 비정형 데이터에 매칭되는 파서를 업데이트하도록 하는 동안에도 기존 데이터에 대한 분석을 진행하도록 하고, 이에 따라 새롭게 획득되는 비정형 데이터들을 큐 형식의 저장공간에 저장하도록 한 상태에서, 새롭게 획득되는 비정형 데이터에 매칭되는 파서도 실시간으로 중단없이 업데이트하도록 하는 효과가 있다.
또한, 본 발명은 비정형 데이터에 전부 매칭되는 파서가 존재하지 않더라도, 솔루션 서버가, 비정형 데이터에 일부 매칭되는 파서를 비정형 데이터와 매칭하고, 매칭한 결과를 참조로 학습하여 비정형 데이터에 전부 매칭되는 파서를 생성하는 효과가 있다.
또한, 본 발명은 에이전트 서버에서 획득된 비정형 데이터들 내에 중복되는 비정형 데이터들이 존재할 경우, 에이전트 서버로 하여금 이를 일부 제거하도록 하여 솔루션 서버로 전송하도록 함으로써, 솔루션 서버가 동일한 비정형 데이터들에 대하여 중복되는 분석 및 학습을 하지 않는 효과가 있다.
또한, 본 발명은 솔루션 서버가, 에이전트 서버 각각으로 하여금 에이전트 서버 각각의 쿼리들을 분할하여 전송하도록 하고, 각각의 쿼리들 중 적어도 일부에 매칭되는 파서들을 각각의 에이전트 서버로 전달함으로써, 다수의 에이전트 서버로부터 쿼리를 획득하는 솔루션 서버의 부하를 줄이는 효과가 있다.
도 1은 본 발명의 일 실시예에 따른 머신러닝 기반 무중단 파서 업데이트를 위한 솔루션 서버 및 에이전트 서버를 개략적으로 도시한 것이고,
도 2는 본 발명의 일 실시예에 따른 머신러닝 기반 무중단 파서 업데이트 방법에 있어서, 솔루션 서버가 에이전트 서버로 하여금 파서를 업데이트 하도록 하는 전체 과정을 개략적으로 도시한 것이고,
도 3은 본 발명의 일 실시예에 따른 머신러닝 기반 무중단 파서 업데이트 방법에 있어서, 솔루션 서버가 에이전트 서버 각각으로 하여금 에이전트 서버 각각에서 획득된 비정형 데이터들을 솔루션 서버로 전송하도록 하는 과정을 개략적으로 도시한 것이고,
도 4는 본 발명의 일 실시예에 따른 머신러닝 기반 무중단 파서 업데이트 방법에 있어서, 솔루션 서버가 에이전트 서버 각각으로 하여금 에이전트 서버 각각에서 획득된 비정형 데이터들 내에 존재하는 중복 데이터 중 적어도 일부를 제거하도록 하는 과정을 개략적으로 도시한 것이고,
도 5는 본 발명의 일 실시예에 따른 머신러닝 기반 무중단 파서 업데이트 방법에 있어서, 솔루션 서버가 적어도 하나의 에이전트 서버로부터 획득된 비정형 데이터를 단위체로 분할하고 중복 단위체를 제외한 상태에서 특정 파서를 결정하는 과정을 개략적으로 도시한 것이고,
도 6은 본 발명의 일 실시예에 따른 머신러닝 기반 무중단 파서 업데이트 방법에 있어서 솔루션 서버가 적어도 하나의 에이전트 서버로부터 획득된 비정형 데이터와 후보 파서들을 매칭하여 특정 파서를 결정하는 과정을 개략적으로 도시한 것이다.
후술하는 본 발명에 대한 상세한 설명은, 본 발명이 실시될 수 있는 특정 실시예를 예시로서 도시하는 첨부 도면을 참조한다. 이들 실시예는 당업자가 본 발명을 실시할 수 있기에 충분하도록 상세히 설명된다. 본 발명의 다양한 실시예는 서로 다르지만 상호 배타적일 필요는 없음이 이해되어야 한다. 예를 들어, 여기에 기재되어 있는 특정 형상, 구조 및 특성은 일 실시예에 관련하여 본 발명의 정신 및 범위를 벗어나지 않으면서 다른 실시예로 구현될 수 있다. 또한, 각각의 개시된 실시예 내의 개별 구성요소의 위치 또는 배치는 본 발명의 정신 및 범위를 벗어나지 않으면서 변경될 수 있음이 이해되어야 한다. 따라서, 후술하는 상세한 설명은 한정적인 의미로서 취하려는 것이 아니며, 본 발명의 범위는, 적절하게 설명된다면, 그 청구항들이 주장하는 것과 균등한 모든 범위와 더불어 첨부된 청구항에 의해서만 한정된다. 도면에서 유사한 참조부호는 여러 측면에 걸쳐서 동일하거나 유사한 기능을 지칭한다.
이하, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자가 본 발명을 용이하게 실시할 수 있도록 하기 위하여, 본 발명의 바람직한 실시예들에 관하여 첨부된 도면을 참조하여 상세히 설명하기로 한다.
도 1은 본 발명의 일 실시예에 따른 머신러닝 기반 무중단 파서 업데이트 방법을 이용한 솔루션 서버(200) 및 에이전트 서버(100)를 개략적으로 도시한 것으로, 솔루션 서버(200)는 메모리(201) 및 프로세서(202)를 포함할 수 있고, 에이전트 서버(100)는 메모리(101) 및 프로세서(102)를 포함할 수 있다. 본 발명의 방법이 컴퓨터 하드웨어 및 소프트웨어의 조합을 활용하여 구현될 것이라는 점은 통상의 기술자가 용이하게 이해할 수 있을 것이다.
메모리(101, 201)는 인스트럭션들을 저장할 수 있는데, 구체적으로, 인스트럭션들은 에이전트 서버(100), 솔루션 서버(200)로 하여금 특정의 방식으로 기능하게 하기 위한 컴퓨터 소프트웨어로서, 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비를 지향할 수 있는 컴퓨터 이용 가능 또는 컴퓨터 판독 가능 메모리에 저장될 수 있다. 인스트럭션들은 도면에 도시된 기능들을 실행하기 위한 프로세스들을 수행하는 것도 가능하다.
또한, 솔루션 서버(200)의 프로세서(202) 및 에이전트 서버(100)의 프로세서(102)는 MPU(Micro Processing Unit) 또는 CPU(Central Processing Unit), 캐쉬 메모리(Cache Memory), 데이터 버스(Data Bus) 등의 하드웨어 구성을 포함할 수 있다. 또한, 운영체제, 특정 목적을 수행하는 애플리케이션의 소프트웨어 구성을 더 포함할 수도 있다. 솔루션 서버(200)의 프로세서(202)는 비정형 데이터에 대응되는 특정 파서(220)를 결정할 수 있는데. 해당 과정에 대해서는 뒤에서 구체적으로 설명하기로 한다.
이와 같은 솔루션 서버(200) 및 에이전트 서버(100)의 구성에 의해 머신러닝 기반 무중단 파서 업데이트 방법을 설명하면 다음과 같다.
도 2는 솔루션 서버(200)가 에이전트 서버(100)로 하여금 파서를 업데이트 하도록 하는 전체적인 과정을 개략적으로 도시한 것이다.
후보 파서들(210)이 소정의 저장부에 등록된 상태에서, 적어도 하나의 에이전트 서버(100)로부터 비정형 데이터들이 획득된다.
여기서, 후보 파서란 소정의 저장부에 등록되어 있는 파서 전체를 의미하며, 후보 파서들(210)이 등록되어 있는 소정의 저장부는 솔루션 서버(200)에 내장되거나, 별도의 장치로 마련될 수도 있다.
이후, 솔루션 서버(200)는, 비정형 데이터들과 소정의 저장부로부터 획득한 후보 파서들(210)을 각각 매칭한 결과를 참조로 하여, 후보 파서들(210) 중 비정형 데이터들에 매칭되는 적어도 하나의 특정 파서(220)를 결정할 수 있다.
여기서, 특정 파서(220)란 비정형 데이터들과 후보 파서들(210)을 각각 매칭한 결과를 참조로 하여 후보 파서들(210) 중 결정된 적어도 하나의 파서로서, 구체적으로는 매칭 파서(221)와 기타 파서(222)를 포함할 수 있다.
여기서, 매칭 파서(221)란 비정형 데이터와 매칭 파서(221)를 매칭했을 때 제1 임계 범위의 매칭률을 만족하는 파서를 의미한다. 제1 임계 범위는 비정형 데이터와 파서의 매칭률이 100%인 것을 의미할 수 있으나, 이에 한정되는 것은 아니다. 또한 기타 파서(222)란 비정형 데이터와 기타 파서(222)를 매칭했을 때 제2 임계 범위의 매칭률을 만족하는 파서를 의미한다. 제2 임계 범위는 비정형 데이터와 파서의 매칭률이 제1 임계 범위 미만인 것을 의미할 수 있으나, 이에 한정되는 것은 아니다.
이와 같이 매칭 파서(221) 또는 기타 파서(222)를 결정한 상태에서, 각각의 에이전트 서버(100)가 각각의 에이전트 서버(100)에 획득된 비정형 데이터들을 파싱하기에 적절한 파서를 선택하는 과정을 살펴본다.
솔루션 서버(200)는, 매칭 파서(221)에 대응되는 정보를 에이전트 서버(100)로 전송한다. 여기서, 솔루션 서버(200)가 매칭 파서(221)에 대응되는 정보를 에이전트 서버(100)로 전송하는 것은 매칭 파서(221) 그 자체를 전송한다는 것이 아니며, 일 예로, 솔루션 서버(200)가 비정형 데이터에 매칭되는 매칭 파서(221)를 보유하고 있다는 정보를 전송하는 것일 수도 있다.
그리고, 솔루션 서버(200)로부터 매칭 파서(221)에 대응되는 정보가 획득되면, 에이전트 서버(100)는 해당 에이전트 서버(100)에 획득된 비정형 데이터들을 파싱할 수 있는 매칭 파서(221) 중 일부(소위, 제1 파서 선택 정보)를 선택하고 이를 솔루션 서버(200)로 전송함으로써, 솔루션 서버(200)로부터 제1 파서 선택 정보를 적어도 포함한 최적 파서를 전달받을 수 있다. 여기서, 최적 파서란 매칭 파서(221) 또는 기타 파서(222)를 포함하며, 특정 파서(220) 내에서 선택된 적어도 하나의 파서로서, 솔루션 서버(200)가 에이전트 서버(100)로 최종적으로 전달하는 파서를 의미할 수 있다. 또한, 기타 파서(222)에 대한 과정도 위에서 설명한 바와 같이 매칭 파서(221)에 대한 과정과 유사하다.
도 2를 참조하여 구체적인 예를 들면, 솔루션 서버(200)가 매칭 파서(221) 내 P1, P2, P3, P4 파서에 대응되는 정보 및 기타 파서(222) 내 P5, P6, P7, P8 파서에 대응되는 정보를 전송한 상태에서, 에이전트 서버(100)가 P1, P2, P3, P4 파서 중 P2, P3, P4 파서를 선택할 수 있고, P5, P6, P7, P8 파서 중 P6 파서를 선택할 수 있다. 이후, 에이전트 서버(100)로부터 매칭 파서(221) 중 P2, P3, P4 파서를 선택한다는 내용의 제1 파서 선택 정보 및 기타 파서(222) 중 P6 파서를 선택한다는 내용의 제2 파서 선택 정보가 전송되면, 솔루션 서버(200)는, 제1 파서 선택 정보 및 제2 파서 선택 정보를 참조로 하여, 이에 대응되는 일부 매칭 파서(221) 및 기타 파서(222)를 최적 파서로서 에이전트 서버(100)로 전달할 수 있다.
다음으로, 솔루션 서버(200)가 최적 파서를 에이전트 서버(100)로 전달하는 방법에 대해 설명한다.
솔루션 서버(200)는, 상기 최적 파서를 소정의 방식에 의해 암호화하여 에이전트 서버(100)로 전달할 수 있다. 이때 암호화하는 방식은 대칭형 암호화 방식, 비 대칭형 암호화 방식, 또는 대칭형 암호화 방식과 비 대칭형 암호화 방식이 조합된 방식일 수도 있으나, 이에 한정되는 것은 아니며 다른 암호화 방식일 수 있다.
또한, 적어도 하나 이상의 최적 파서를 포함하는 통합 데이터를 생성하고, 통합 데이터의 데이터 형식을 json 데이터 형식으로 변환한 상태에서 변환된 통합 데이터를 소정의 방식에 의해 암호화하여 에이전트 서버(100)로 전달할 수 있다. 다만, 데이터 형식을 변환하는 방식은 json 데이터 형식에 의해 변환하는 방식에 한정되는 것은 아니다.
한편, 솔루션 서버(200)는 하나 이상의 에이전트 서버(100)로 최적 파서들을 전달하기에, 에이전트 서버(100)의 수가 많아질수록 솔루션 서버(200)에 과부하가 발생한다. 이렇게 솔루션 서버(200)에 발생할 수 있는 과부하를 방지하기 위하여 데이터 페이징(data paging) 방식을 이용한다. 다만 데이터 페이징 방식에 대한 구체적인 설명은 아래에서 하기로 한다.
그리고, 솔루션 서버(200)는, 위와 같이 결정된 특정 파서(220) 중 적어도 하나의 파서를 최적 파서로서 에이전트 서버(100)로 전달하고, 에이전트 서버(100)로 하여금 최적 파서들을 업데이트하도록 하여 최적 파서들로 비정형 데이터들을 파싱하도록 할 수 있다.
다음으로, 적어도 하나의 에이전트 서버(100)로부터 비정형 데이터들이 획득되기까지의 과정에 대해서 도 3, 도 4를 참조하여 구체적으로 설명한다.
도 3은 솔루션 서버(200)가 에이전트 서버(100) 각각으로 하여금 에이전트 서버(100) 각각에서 획득된 비정형 데이터들을 솔루션 서버(200)로 전송하도록 하는 과정을 개략적으로 도시한 것이다.
에이전트 서버(100) 각각은 비정형 데이터들의 획득 여부를 실시간으로 모니터링 한다.
에이전트 서버(100)는, 획득된 비정형 데이터들 내에 적어도 하나의 중복 데이터가 존재할 경우, 에이전트 서버(100) 각각에서 획득된 중복 데이터 중 적어도 일부를 제거하여 비정형 데이터들을 솔루션 서버(200)로 전송할 수 있다. 여기서, 중복 데이터란 비정형 데이터들 내에서 동일한 비정형 데이터들을 의미한다.
일 예로, 에이전트 서버 1(100-1)에서 획득된 비정형 데이터들이 a, a, b, c, d, d, d라고 가정하면, 비정형 데이터들 내에 존재하는 중복 데이터는 a, d가 된다. 따라서 에이전트 서버 1(100-1)은 비정형 데이터들 a, a, b, c, d, d, d내에서 중복 데이터 a, d 일부를 제거하고, 솔루션 서버(200)로 a, b, c, d를 전송할 수 있다.
한편, 각각의 에이전트 서버(100)는 획득된 비정형 데이터들에 대응되는 최적 파서를 전달 받아 파서를 교체하는 동안에도 계속해서 데이터를 처리하게 되므로 추가적인 비정형 데이터들이 획득될 수 있다. 이때, 각각의 에이전트 서버(100)는 비정형 데이터들을 각각의 큐(queue) 형식의 저장 공간에 저장할 수 있다. 그리고, 앞서 도 2를 참조로 언급한 바와 같은 과정을 거친 후 각각의 비정형 데이터들에 대응되는 최적 파서들이 획득되면, 각각의 에이전트 서버(100)는 각각의 비정형 데이터들을 이에 대응되는 최적 파서들로 파싱할 수 있다. 큐 형식의 저장 공간은 에이전트 서버(100)에 내장되거나, 별도의 장치로 마련될 수도 있다.
중복 데이터 중 적어도 일부를 제거하는 과정에 대해 도 4를 참조하여 더 구체적으로 설명한다.
도 4에서, 에이전트 서버(100)가 1번 비정형 데이터, 2번 비정형 데이터, 3번 비정형 데이터를 획득한 후, 1번 내지 3번 비정형 데이터를 비교하여 중복 데이터를 판단한다. 1번 및 2번 비정형 데이터를 비교해보면, 1번 비정형 데이터와 2번 비정형 데이터는 json 타입 및 버전이 공통되므로, 1번 비정형 데이터를 기준으로, 2번 비정형 데이터는 중복 데이터로 판단될 수 있다. 반면, 1번 및 3번 비정형 데이터를 비교해보면, json 타입인 것은 공통되나, 3번 비정형 데이터는 1번 비정형 데이터와 버전 및 sysinfo의 데이터형식이 다르므로 3번 비정형 데이터는 중복 데이터가 아닌 것으로 판단된다. 따라서, 에이전트 서버(100)는 2번 비정형 데이터를 제거하고, 1번 및 3번 비정형 데이터를 솔루션 서버(200)로 전송할 수 있다.
이처럼 에이전트 서버(100)가 중복 데이터 중 적어도 일부를 제거하는 과정을 통해 솔루션 서버(200)로 전송되는 비정형 데이터들의 양을 줄일 수 있게 되고, 솔루션 서버(200)가 비정형 데이터들과 후보 파서들(210)을 효율적으로 매칭할 수 있게 된다.
위와 같이 에이전트 서버(100)가 중복 데이터 중 적어도 일부를 제거하여 비정형 데이터들을 솔루션 서버(200)로 전송한 이후, 솔루션 서버(200)가 비정형 데이터와 후보 파서들(210)을 매칭하여 특정 파서(220)를 결정하는 구체적인 과정을 도 5를 참조하여 설명하면 다음과 같다.
1번 비정형 데이터와 2번 비정형 데이터가 획득되면, 솔루션 서버(200)는 후보 파서들(210) 중에서 1번 비정형 데이터 또는 2번 비정형 데이터와 매칭되는 파서를 결정할 수 있다. 후보 파서들(210) 중에서 P1 파서는 json 타입이고 version값이 2.6으로서 1번 비정형 데이터와 모두 매칭된다. 따라서 P1 파서가 매칭 파서(221)로 결정된다. 또한 후보 파서들(210) 중에서 P2 파서는 json 타입이고 version값이 2.7로서 2번 비정형 데이터와 일부 매칭되나 2번 비정형 데이터에는 또 다른 json 타입의 데이터 "sysinfo": {"VendorName": "Linux", ...}가 포함되어 있으므로 모두 매칭되지는 않는다. 반면, 2번 비정형 데이터는 P3 파서와 모두 매칭되므로 P3 파서가 매칭 파서(221)로 결정된다.
지금까지 비정형 데이터와 소정의 저장부로부터 획득한 후보 파서의 매칭률이 제1 임계 범위 또는 제2 임계 범위를 만족하는 경우를 설명하였다.
아래에서는 비정형 데이터와 소정의 저장부로부터 획득한 후보 파서의 매칭률이 제1 임계 범위 또는 제2 임계 범위를 만족하지 못하거나, 매칭되는 파서가 존재하지 않는 경우를 설명하고, 비정형 데이터와 파서의 매칭률이 제1 임계 범위 또는 제2 임계 범위의 매칭률을 만족시킬 수 있는 파서를 생성하는 과정을 설명한다.
도 4를 참조하여 설명한 바와 같이, 중복 데이터 중 적어도 일부가 제거된 비정형 데이터들이 솔루션 서버(200)로 전송되면, 비정형 데이터들 각각이 제1 기준에 의해 단위체들로 분할되고 비정형 데이터들 각각의 단위체들 내에 적어도 하나의 중복 단위체가 존재할 경우, 솔루션 서버(200)가, 중복 단위체를 적어도 일부 제외한 상태에서, 비정형 데이터들 각각의 단위체들과 후보 파서들(210)을 각각 매칭하고, 단위체들과 후보 파서들(210)을 각각 매칭한 결과를 참조로 하여, 적어도 하나의 매칭 파서(221)와 적어도 하나의 기타 파서(222)를 포함하는 특정 파서(220)를 결정할 수 있다.
여기서, 제1 기준은 비정형 데이터들 각각의 구분자, 기관, 제품, 타입, 및 버전 중 적어도 하나에 의해 비정형 데이터들 각각이 단위체들로 분할되는 기준을 의미하고, 단위체는 구분자, 기관, 제품, 타입, 및 버전의 구체적인 정보 중 적어도 하나를 의미한다.
일 예로, 비정형 데이터가 {"Version": "2.7", ..., "Version": "2.7"} 와 같다고 할 때, 비정형 데이터를 제1 기준에 의해 단위체로 분할하게 되면 {{"Version": "2.7"}, ..., {"Version": "2.7"}} 의 {"Version": "2.7"} 각각이 단위체가 된다. 이때, 솔루션 서버(200)는 {"Version": "2.7"} 단위체가 두 개 있다고 하여 {"Version": "2.7"} 단위체와 후보 파서들(210)을 두 번 매칭하지 않고, {"Version": "2.7"} 단위체 두 개 중 하나를 제외하고 후보 파서와 한 번 매칭할 수 있다.
이와 같이 중복 단위체를 적어도 일부 제외함으로써, 솔루션 서버(200)는 비정형 데이터의 중복되는 단위체들과 후보 파서들(210)을 매칭하여 중복되는 학습을 하는 불필요한 과정을 피할 수 있다.
도 6는 솔루션 서버(200)가 비정형 데이터를 단위체들로 분할하고 중복 단위체를 적어도 일부 제외한 상태에서 학습용 파서를 학습하여 통합 파서를 생성하고 특정 파서(220)를 결정하는 과정을 개략적으로 도시한 것이다.
일 예로, 솔루션 서버(200)는 중복 단위체를 적어도 일부 제외한 단위체들 D1, D2, D3, D4, ..., Dn과 후보 파서들(210) P1, P2, ..., Pm을 매칭한다.
이후, 솔루션 서버(200)가 비정형 데이터들 각각의 단위체들 D1, D2, D3, D4, ..., Dn과 후보 파서들(210) P1, P2, ..., Pm을 각각 매칭한 결과를 참조로 하여, 단위체들 각각에 대응되는 각각의 학습용 파서들을 결정하고 학습용 파서들을 학습하고 이를 결합하여 통합 파서를 생성한 후, (i) 적어도 하나의 비정형 데이터와 통합 파서를 매칭하여 통합 파서 중 제1 임계 범위의 매칭률을 만족하는 파서인 매칭 파서(221)를 결정하고, (ii) 적어도 하나의 비정형 데이터와 통합 파서를 매칭하여 통합 파서 중 제2 임계 범위의 매칭률을 만족하는 파서인 기타 파서(222)를 결정할 수 있다.
여기서, 학습용 파서들은 비정형 데이터들 각각의 단위체들 D1, D2, D3, D4, ..., Dn과 후보 파서들(210) P1, P2, ..., Pm을 각각 매칭한 결과를 참조로 하여 결정된 파서로서, 솔루션 서버(200)가 통합 파서를 생성하기 위해 학습하는 파서이다.
또한, 통합 파서는 학습용 파서들이 학습되고 결합되어 생성된 파서로서, 비정형 데이터와 통합 파서의 매칭률이 제1 임계 범위를 만족하는 통합 파서는 매칭 파서(221)로 결정되고, 비정형 데이터와 통합 파서의 매칭률이 제2 임계 범위를 만족하는 통합 파서는 기타 파서(222)로 결정된다.
일 예로, 패턴 a, 패턴 b, 패턴 c, 패턴 e, 패턴 g가 포함된 a+b+c+e+g의 정보를 가지는 비정형 데이터 a+b+c+e+g가 있다고 할 때, 솔루션 서버(200)가 소정의 저장부로부터 후보 파서 A, B, C, ..., Z를 획득하여 비정형 데이터 a+b+c+e+g와 매칭을 하게 되면, 후보 파서 A, B, C, ..., Z 각각은 비정형 데이터 a+b+c+e+g와 제1 임계 범위 및 제2 임계 범위의 매칭률을 만족하지 못한다.
그러면, 솔루션 서버(200)는 비정형 데이터 a+b+c+e+g의 단위체들인 a, b, c, e, g 각각을 후보 파서 A, B, C, ..., Z들과 각각 매칭한 결과를 참조로 하여, 단위체들 a, b, c, e, g 각각에 대응되는 후보 파서인 A, B, C, E, G 를 학습용 파서로서 결정할 수 있다.
그리고, 솔루션 서버(200)는 학습용 파서로서 결정된 A, B, C, E, G 를 학습하고 이를 결합하여 통합 파서 A+B+C+E+G를 생성한다.
구체적으로 비정형 데이터 a+b+c+e+g와 통합 파서 A+B+C+E+G를 매칭하면 통합 파서 A+B+C+E+G는 제1 임계 범위의 매칭률을 만족하게 되므로, 통합 파서 A+B+C+E+G를 매칭 파서(221)로서 결정할 수 있다.
다른 예로, 상기와 같이 비정형 데이터 a+b+c+e+g가 있다고 할 때, 솔루션 서버(200)가 소정의 저장부로부터 후보 파서 A, B, D, E, ..., Z를 획득하여 비정형 데이터 a+b+c+e+g와 매칭을 하게 되면, 후보 파서 A, B, D, E, ..., Z 각각은 비정형 데이터 a+b+c+e+g와 제1 임계 범위 및 제2 임계 범위의 매칭률을 만족하지 못한다.
그러면, 솔루션 서버(200)는 비정형 데이터 a+b+c+e+g의 단위체들인 a, b, c, e, g 각각을 후보 파서 A, B, D, E, ..., Z들과 각각 매칭한 결과를 참조로 하여, 단위체들 a, b, c, e, g 중 a, b, e, g 각각에 대응되는 후보 파서인 A, B, E, G 를 학습용 파서로서 결정할 수 있다.
그리고, 솔루션 서버(200)는 학습용 파서로서 결정된 A, B, E, G 를 학습하고 이를 결합하여 통합 파서 A+B+E+G를 생성한다.
제1 임계 범위의 매칭률은 100%, 제2 임계 범위의 매칭률은 80%라고 할때, 비정형 데이터 a+b+c+e+g와 통합 파서 A+B+E+G를 매칭하면 통합 파서 A+B+E+G는 제1 임계 범위의 매칭률을 만족하지 못하나, 제2 임계 범위의 매칭률을 만족하게 되므로, 통합 파서 A+B+E+G를 기타 파서(222)로서 결정할 수 있다.
추가로, 데이터 페이징 방식에 대해 다시 도 3을 참조하여 설명한다.
먼저, 솔루션 서버(200)가 에이전트 서버(100) 각각으로 하여금 에이전트 서버(100) 각각의 전체 쿼리들을 판단하도록 할 수 있다.
그리고, 솔루션 서버(200)가, 에이전트 서버(100) 각각으로 솔루션 서버(200)의 부하 정보를 전달하고, 에이전트 서버(100) 각각으로 하여금 솔루션 서버(200)의 부하 정보를 참조로 하여 전체 쿼리들을 n회에 걸쳐 분할하여 전송하기 위한 최적 쿼리 개수들을 결정하도록 하고 이에 따라 전송하도록 할 수 있다. 여기서 최적 쿼리 개수들은 솔루션 서버(200)의 부하를 줄이기 위해 전체 쿼리들을 n회에 걸쳐 분할하여 전송할 때, n회의 각 회마다 전송되는 쿼리 개수들을 의미한다.
일 예로, 에이전트 서버 1(100-1)의 전체 쿼리가 20개인 경우, 전체 쿼리들을 4회에 걸쳐 분할하여 전송하기 위한 최적 쿼리 개수들은 각 회마다 5개일 수 있다.
다른 예로, 에이전트 서버 2(100-2)의 전체 쿼리가 10개인 경우, 전체 쿼리들을 3회에 걸쳐 분할하여 전송하기 위한 최적 쿼리 개수들은 1회차에 3개, 2회차에 4개, 3회차에 3개일 수 있다.
그리고, 전체 쿼리들이 n회에 걸쳐 분할되어 획득되면, 솔루션 서버(200)는, 전체 쿼리 중 적어도 일부에 매칭되는 특정 파서(220) 중 적어도 하나의 파서를 최적 파서로서 에이전트 서버(100)로 전달할 수 있다.
일 예로, 에이전트 서버 1(100-1)로부터 20개의 전체 쿼리가 4회에 걸쳐 5개의 쿼리씩 분할되어 획득되면, 솔루션 서버(200)가, 20개의 쿼리 전부에 매칭되는 최적 파서를 에이전트 서버 1(100-1)로 전달할 수 있다.
다른 예로, 에이전트 서버 2(100-2)로부터 10개의 전체 쿼리가 5회에 걸쳐 2개의 쿼리씩 분할되어 획득되면, 솔루션 서버(200)가, 20개의 쿼리 중 적어도 일부인 10개의 쿼리에 매칭되는 10개의 최적 파서를 에이전트 서버 2(100-2)로 전달할 수 있다.
다른 예로, 에이전트 서버 N(100-N)으로부터 12개의 전체 쿼리가 2회에 걸쳐 6개의 쿼리씩 분할되어 획득되면, 솔루션 서버(200)가, 1회차에 획득되는 6개의 쿼리 중 적어도 일부인 4개의 쿼리에 매칭되는 4개의 최적 파서를 에이전트 서버 N(100-N)으로 먼저 전달하고, 2회차에 획득되는 6개의 쿼리 전부에 매칭되는 6개의 최적 파서를 에이전트 서버 N(100-N)으로 그 후에 전달할 수 있다.
이를 통해 본 발명에서는 머신러닝 기반으로 비정형 데이터에 대응되는 파서를 학습하고 생성하여 에이전트 서버(100)에서 획득되는 새로운 비정형 데이터에 대해서도 분석할 수 있게 된다.
실시간 분석 환경에서는 비정형 데이터가 들어왔을 때 이를 패스시키게 되면 분석률을 저하시키고 새로운 패턴의 정보를 바로 인지할 수 없다. 반면, 본 발명의 솔루션 서버(200)는 비정형 데이터로부터 최대한의 정보를 얻어 기존에 등록된 파서들을 학습하고 새로운 파서를 생성하여 에이전트 서버(100)로 하여금 비정형 데이터를 분석하도록 할 수 있다. 또한 사용자가 수동으로 파서를 업데이트하는 작업을 줄일 수 있는 효과가 있다.
이상 설명된 본 발명에 따른 실시예들은 다양한 컴퓨터 구성요소를 통하여 수행될 수 있는 프로그램 명령어의 형태로 구현되어 컴퓨터 판독 가능한 기록 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능한 기록 매체는 프로그램 명령어, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 컴퓨터 판독 가능한 기록 매체에 기록되는 프로그램 명령어는 본 발명을 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 분야의 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능한 기록 매체의 예에는, 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체, CD-ROM, DVD와 같은 광기록 매체, 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 ROM, RAM, 플래시 메모리 등과 같은 프로그램 명령어를 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령어의 예에는, 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드도 포함된다. 상기 하드웨어 장치는 본 발명에 따른 처리를 수행하기 위해 하나 이상의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.
이상에서 본 발명이 구체적인 구성요소 등과 같은 특정 사항들과 한정된 실시예 및 도면에 의해 설명되었으나, 이는 본 발명의 보다 전반적인 이해를 돕기 위해서 제공된 것일 뿐, 본 발명이 상기 실시예들에 한정되는 것은 아니며, 본 발명이 속하는 기술분야에서 통상적인 지식을 가진 자라면 이러한 기재로부터 다양한 수정 및 변형을 꾀할 수 있다.
따라서, 본 발명의 사상은 상기 설명된 실시예에 국한되어 정해져서는 아니 되며, 후술하는 특허청구범위뿐만 아니라 이 특허청구범위와 균등하게 또는 등가적으로 변형된 모든 것들은 본 발명의 사상의 범주에 속한다고 할 것이다.

Claims (24)

  1. 머신러닝 기반 파서를 업데이트하는 방법에 있어서,
    (a) 후보 파서들이 소정의 저장부에 등록된 상태에서, 적어도 하나의 에이전트 서버로부터 비정형 데이터들이 획득되면, 솔루션 서버가, 상기 비정형 데이터들과 상기 소정의 저장부로부터 획득한 상기 후보 파서들을 각각 매칭한 결과를 참조로 하여, 상기 후보 파서들 중 상기 비정형 데이터들에 매칭되는 적어도 하나의 특정 파서를 결정하는 단계; 및
    (b) 상기 솔루션 서버가, 상기 특정 파서 중 적어도 하나의 파서를 최적 파서로서 상기 에이전트 서버로 전달하는 단계;
    를 포함하는 것을 특징으로 하되,
    상기 (a) 단계 이후에,
    (a1) 상기 솔루션 서버가, (i) 상기 특정 파서로 상기 비정형 데이터들을 파싱한 파싱 결과들 중 적어도 하나의 매칭률이 제1 임계 범위의 매칭률을 만족하는 적어도 하나의 매칭 파서를 결정하고, (ii) 상기 매칭 파서에 대응되는 정보를 상기 에이전트 서버로 전송하여, 상기 에이전트 서버로 하여금 상기 매칭 파서 중 적어도 하나를 선택한 제1 파서 선택 정보를 전송하도록 하는 단계;
    를 더 포함하고,
    상기 (b) 단계에서,
    상기 솔루션 서버가, 상기 제1 파서 선택 정보를 참조로 하여, 상기 매칭 파서 중 적어도 하나의 파서를 상기 최적 파서로서 상기 에이전트 서버로 전달하는 것을 특징으로 하는 방법.
  2. 제1항에 있어서,
    상기 (a) 단계 이전에,
    (a0) 상기 에이전트 서버 각각에서 획득된 상기 비정형 데이터들 내에 적어도 하나의 중복 데이터가 존재할 경우, 상기 솔루션 서버가, 상기 에이전트 서버 각각으로 하여금 상기 에이전트 서버 각각에서 획득된 상기 중복 데이터 중 적어도 일부를 제거하도록 하여 상기 비정형 데이터들을 상기 솔루션 서버로 전송하도록 하는 단계;
    를 더 포함하는 것을 특징으로 하는 방법.
  3. 머신러닝 기반 파서를 업데이트하는 방법에 있어서,
    (a) 후보 파서들이 소정의 저장부에 등록된 상태에서, 적어도 하나의 에이전트 서버로부터 비정형 데이터들이 획득되면, 솔루션 서버가, 상기 비정형 데이터들과 상기 소정의 저장부로부터 획득한 상기 후보 파서들을 각각 매칭한 결과를 참조로 하여, 상기 후보 파서들 중 상기 비정형 데이터들에 매칭되는 적어도 하나의 특정 파서를 결정하는 단계; 및
    (b) 상기 솔루션 서버가, 상기 특정 파서 중 적어도 하나의 파서를 최적 파서로서 상기 에이전트 서버로 전달하는 단계;
    를 포함하는 것을 특징으로 하되,
    상기 (a) 단계에서,
    상기 비정형 데이터들 각각이 제1 기준에 의해 단위체들로 분할되고, 상기 비정형 데이터들 각각의 상기 단위체들 내에 적어도 하나의 중복 단위체가 존재할 경우, 상기 솔루션 서버가, 상기 중복 단위체를 적어도 일부 제외한 상태에서, 상기 비정형 데이터들 각각의 상기 단위체들과 상기 후보 파서들을 각각 매칭하고, 상기 단위체들과 상기 후보 파서들을 각각 매칭한 결과를 참조로 하여, 적어도 하나의 매칭 파서와 적어도 하나의 기타 파서를 포함하는 상기 특정 파서를 결정하는 것을 특징으로 하는 방법.
  4. 제3항에 있어서,
    상기 솔루션 서버가, 상기 비정형 데이터들 각각의 상기 단위체들과 상기 후보 파서들을 각각 매칭한 결과를 참조로 하여, 상기 단위체들 각각에 대응되는 각각의 학습용 파서들을 결정하고 상기 학습용 파서들을 학습하고 이를 결합하여 통합 파서를 생성한 후, (i) 상기 적어도 하나의 비정형 데이터와 상기 통합 파서를 매칭하여 상기 통합 파서 중 제1 임계 범위의 매칭률을 만족하는 파서인 상기 매칭 파서를 결정하고, (ii) 상기 적어도 하나의 비정형 데이터와 상기 통합 파서를 매칭하여 상기 통합 파서 중 제2 임계 범위의 매칭률을 만족하는 파서인 상기 기타 파서를 결정하는 것을 특징으로 하는 방법.
  5. 제3항에 있어서,
    상기 (b) 단계에서,
    상기 솔루션 서버가, 상기 매칭 파서 및 상기 기타 파서 중 적어도 하나의 파서를 상기 최적 파서로서 소정의 방식에 의해 암호화하여 상기 에이전트 서버로 전달하는 것을 특징으로 하는 방법.
  6. 제5항에 있어서,
    상기 솔루션 서버가, 상기 최적 파서를 포함하는 통합 데이터를 생성하고, 상기 통합 데이터의 데이터 형식을 소정의 형식으로 변환한 상태에서, 상기 변환된 통합 데이터를 상기 소정의 방식에 의해 암호화하여 상기 에이전트 서버로 전달하는 것을 특징으로 하는 방법.
  7. 제6항에 있어서,
    상기 소정의 형식은 json(JavaScript Object Notation) 데이터 형식인 것을 특징으로 하는 방법.
  8. 제3항에 있어서,
    상기 제1 기준은 상기 비정형 데이터들 각각의 구분자, 기관, 제품, 타입, 및 버전 중 적어도 하나에 의해 상기 비정형 데이터들을 상기 단위체들로 분할하는 기준인 것을 특징으로 하는 방법.
  9. 삭제
  10. 제1항에 있어서,
    상기 (a1) 단계에서,
    상기 솔루션 서버가, (i) 상기 특정 파서로 상기 비정형 데이터들을 파싱한 파싱 결과들 중 적어도 하나의 매칭률이 제2 임계 범위의 매칭률을 만족하는 적어도 하나의 기타 파서를 추가적으로 결정하고, (ii) 상기 기타 파서에 대응되는 정보를 상기 에이전트 서버로 추가적으로 전송하여, 상기 에이전트 서버로 하여금 상기 기타 파서 중 적어도 하나를 선택한 제2 파서 선택 정보를 추가적으로 전송하도록 하는 단계;
    를 더 포함하고,
    상기 (b) 단계에서,
    상기 솔루션 서버가, 상기 제2 파서 선택 정보를 추가적으로 참조로 하여, 상기 기타 파서 중 적어도 하나의 파서를 추가적으로 상기 최적 파서로서 상기 에이전트 서버로 전달하는 것을 특징으로 하는 방법.
  11. 머신러닝 기반 파서를 업데이트하는 방법에 있어서,
    (a) 후보 파서들이 소정의 저장부에 등록된 상태에서, 적어도 하나의 에이전트 서버로부터 비정형 데이터들이 획득되면, 솔루션 서버가, 상기 비정형 데이터들과 상기 소정의 저장부로부터 획득한 상기 후보 파서들을 각각 매칭한 결과를 참조로 하여, 상기 후보 파서들 중 상기 비정형 데이터들에 매칭되는 적어도 하나의 특정 파서를 결정하는 단계; 및
    (b) 상기 솔루션 서버가, 상기 특정 파서 중 적어도 하나의 파서를 최적 파서로서 상기 에이전트 서버로 전달하는 단계;
    를 포함하는 것을 특징으로 하되,
    상기 (b) 단계에서,
    (b1) 상기 솔루션 서버가, 상기 에이전트 서버 각각으로 하여금 상기 에이전트 서버 각각의 전체 쿼리들을 판단하도록 하는 단계;
    (b2) 상기 솔루션 서버가, 상기 에이전트 서버 각각으로 상기 솔루션 서버의 부하 정보를 전달하고, 상기 에이전트 서버 각각으로 하여금 상기 부하 정보를 참조로 하여, 상기 전체 쿼리들을 n회에 걸쳐 분할하여 전송하기 위한 최적 쿼리 개수들을 결정하도록 하고 이에 따라 전송하도록 하는 단계; 및
    (b3) 상기 전체 쿼리들이 n회에 걸쳐 분할되어 획득되면, 상기 솔루션 서버가, 상기 전체 쿼리 중 적어도 일부에 매칭되는 상기 특정 파서 중 적어도 하나의 파서를 상기 최적 파서로서 상기 에이전트 서버로 전달하는 단계;
    인 것을 특징으로 하는 방법.
  12. 제1항에 있어서,
    (c) 상기 솔루션 서버가, 상기 에이전트 서버로 하여금 상기 최적 파서들로 상기 비정형 데이터들을 파싱하도록 하는 단계;
    를 더 포함하는 것을 특징으로 하는 방법.
  13. 머신러닝 기반 파서를 업데이트하는 솔루션 서버에 있어서,
    인스트럭션들을 저장하는 적어도 하나의 메모리; 및
    상기 인스트럭션들을 실행하기 위해 구성된 적어도 하나의 프로세서를 포함하되,
    상기 프로세서는, 후보 파서들이 소정의 저장부에 등록된 상태에서, 적어도 하나의 에이전트 서버로부터 비정형 데이터들이 획득되면, (1) 상기 비정형 데이터들과 상기 소정의 저장부로부터 획득한 상기 후보 파서들을 각각 매칭한 결과를 참조로 하여, 상기 후보 파서들 중 상기 비정형 데이터들에 매칭되는 적어도 하나의 특정 파서를 결정하는 프로세스, 및 (2) 상기 특정 파서 중 적어도 하나의 파서를 최적 파서로서 상기 에이전트 서버로 전달하는 프로세스를 수행하는 상기 인스트럭션들을 실행하되,
    상기 (1) 프로세스 이후에,
    (1-1) (i) 상기 특정 파서로 상기 비정형 데이터들을 파싱한 파싱 결과들 중 적어도 하나의 매칭률이 제1 임계 범위의 매칭률을 만족하는 적어도 하나의 매칭 파서를 결정하고, (ii) 상기 매칭 파서에 대응되는 정보를 상기 에이전트 서버로 전송하여, 상기 에이전트 서버로 하여금 상기 매칭 파서 중 적어도 하나를 선택한 제1 파서 선택 정보를 전송하도록 하는 프로세스를 더 수행하고,
    상기 (2) 프로세스에서,
    상기 제1 파서 선택 정보를 참조로 하여, 상기 매칭 파서 중 적어도 하나의 파서를 상기 최적 파서로서 상기 에이전트 서버로 전달하는 것을 특징으로 하는 솔루션 서버.
  14. 제13항에 있어서,
    상기 프로세서는,
    상기 (1) 프로세스 이전에,
    상기 에이전트 서버 각각에서 획득된 상기 비정형 데이터들 내에 적어도 하나의 중복 데이터가 존재할 경우, 상기 에이전트 서버 각각으로 하여금 상기 에이전트 서버 각각에서 획득된 상기 중복 데이터 중 적어도 일부를 제거하도록 하여 상기 비정형 데이터들을 상기 솔루션 서버로 전송하도록 하는 프로세스를 더 수행하는 상기 인스트럭션들을 실행하는 솔루션 서버.
  15. 머신러닝 기반 파서를 업데이트하는 솔루션 서버에 있어서,
    인스트럭션들을 저장하는 적어도 하나의 메모리; 및
    상기 인스트럭션들을 실행하기 위해 구성된 적어도 하나의 프로세서를 포함하되,
    상기 프로세서는, 후보 파서들이 소정의 저장부에 등록된 상태에서, 적어도 하나의 에이전트 서버로부터 비정형 데이터들이 획득되면, (1) 상기 비정형 데이터들과 상기 소정의 저장부로부터 획득한 상기 후보 파서들을 각각 매칭한 결과를 참조로 하여, 상기 후보 파서들 중 상기 비정형 데이터들에 매칭되는 적어도 하나의 특정 파서를 결정하는 프로세스, 및 (2) 상기 특정 파서 중 적어도 하나의 파서를 최적 파서로서 상기 에이전트 서버로 전달하는 프로세스를 수행하는 상기 인스트럭션들을 실행하되,
    상기 (1) 프로세스에서,
    상기 비정형 데이터들 각각이 제1 기준에 의해 단위체들로 분할되고, 상기 비정형 데이터들 각각의 상기 단위체들 내에 적어도 하나의 중복 단위체가 존재할 경우, 상기 중복 단위체를 적어도 일부 제외한 상태에서, 상기 비정형 데이터들 각각의 상기 단위체들과 상기 후보 파서들을 각각 매칭하고, 상기 단위체들과 상기 후보 파서들을 각각 매칭한 결과를 참조로 하여, 적어도 하나의 매칭 파서와 적어도 하나의 기타 파서를 포함하는 상기 특정 파서를 결정하는 것을 특징으로 하는 솔루션 서버.
  16. 제15항에 있어서,
    상기 프로세서는,
    상기 비정형 데이터들 각각의 상기 단위체들과 상기 후보 파서들을 각각 매칭한 결과를 참조로 하여, 상기 단위체들 각각에 대응되는 각각의 학습용 파서들을 결정하고 상기 학습용 파서들을 학습하고 이를 결합하여 통합 파서를 생성한 후, (i) 상기 적어도 하나의 비정형 데이터와 상기 통합 파서를 매칭하여 상기 통합 파서 중 제1 임계 범위의 매칭률을 만족하는 파서인 상기 매칭 파서를 결정하고, (ii) 상기 적어도 하나의 비정형 데이터와 상기 통합 파서를 매칭하여 상기 통합 파서 중 제2 임계 범위의 매칭률을 만족하는 파서인 상기 기타 파서를 결정하는 것을 특징으로 하는 솔루션 서버.
  17. 제15항에 있어서,
    상기 프로세서는,
    상기 (2) 프로세스에서,
    상기 매칭 파서 및 상기 기타 파서 중 적어도 하나의 파서를 상기 최적 파서로서 소정의 방식에 의해 암호화하여 상기 에이전트 서버로 전달하는 것을 특징으로 하는 솔루션 서버.
  18. 제17항에 있어서,
    상기 프로세서는,
    상기 최적 파서를 포함하는 통합 데이터를 생성하고, 상기 통합 데이터의 데이터 형식을 소정의 형식으로 변환한 상태에서, 상기 변환된 통합 데이터를 상기 소정의 방식에 의해 암호화하여 상기 에이전트 서버로 전달하는 것을 특징으로 하는 솔루션 서버.
  19. 제18항에 있어서,
    상기 소정의 형식은 json(JavaScript Object Notation) 데이터 형식인 것을 특징으로 하는 솔루션 서버.
  20. 제15항에 있어서,
    상기 제1 기준은 상기 비정형 데이터들 각각의 구분자, 기관, 제품, 타입, 및 버전 중 적어도 하나에 의해 상기 비정형 데이터들을 상기 단위체들로 분할하는 기준인 것을 특징으로 하는 솔루션 서버.
  21. 삭제
  22. 제13항에 있어서,
    상기 프로세서는,
    상기 (1-1) 프로세스에서,
    (i) 상기 특정 파서로 상기 비정형 데이터들을 파싱한 파싱 결과들 중 적어도 하나의 매칭률이 제2 임계 범위의 매칭률을 만족하는 적어도 하나의 기타 파서를 추가적으로 결정하고, (ii) 상기 기타 파서에 대응되는 정보를 상기 에이전트 서버로 추가적으로 전송하여, 상기 에이전트 서버로 하여금 상기 기타 파서 중 적어도 하나를 선택한 제2 파서 선택 정보를 추가적으로 전송하도록 하는 프로세스를 더 수행하고,
    상기 (2) 프로세스에서,
    상기 제2 파서 선택 정보를 추가적으로 참조로 하여, 상기 기타 파서 중 적어도 하나의 파서를 추가적으로 상기 최적 파서로서 상기 에이전트 서버로 전달하는 것을 특징으로 하는 솔루션 서버.
  23. 머신러닝 기반 파서를 업데이트하는 솔루션 서버에 있어서,
    인스트럭션들을 저장하는 적어도 하나의 메모리; 및
    상기 인스트럭션들을 실행하기 위해 구성된 적어도 하나의 프로세서를 포함하되,
    상기 프로세서는, 후보 파서들이 소정의 저장부에 등록된 상태에서, 적어도 하나의 에이전트 서버로부터 비정형 데이터들이 획득되면, (1) 상기 비정형 데이터들과 상기 소정의 저장부로부터 획득한 상기 후보 파서들을 각각 매칭한 결과를 참조로 하여, 상기 후보 파서들 중 상기 비정형 데이터들에 매칭되는 적어도 하나의 특정 파서를 결정하는 프로세스, 및 (2) 상기 특정 파서 중 적어도 하나의 파서를 최적 파서로서 상기 에이전트 서버로 전달하는 프로세스를 수행하는 상기 인스트럭션들을 실행하되,
    상기 (2) 프로세스에서,
    (2-1) 상기 에이전트 서버 각각으로 하여금 상기 에이전트 서버 각각의 전체 쿼리들을 판단하도록 하는 프로세스, (2-2) 상기 에이전트 서버 각각으로 상기 솔루션 서버의 부하 정보를 전달하고, 상기 에이전트 서버 각각으로 하여금 상기 부하 정보를 참조로 하여, 상기 전체 쿼리들을 n회에 걸쳐 분할하여 전송하기 위한 최적 쿼리 개수들을 결정하도록 하고 이에 따라 상기 솔루션 서버로 전송하도록 하는 프로세스 및 (2-3) 상기 전체 쿼리들이 n회에 걸쳐 분할되어 획득되면, 상기 전체 쿼리 중 적어도 일부에 매칭되는 상기 특정 파서 중 적어도 하나의 파서를 상기 최적 파서로서 상기 에이전트 서버로 전달하는 프로세스를 수행하는 것을 특징으로 하는 솔루션 서버.
  24. 제13항에 있어서,
    상기 프로세서는,
    (3) 상기 솔루션 서버가, 상기 에이전트 서버로 하여금 상기 최적 파서들로 상기 비정형 데이터들을 파싱하도록 하는 프로세스;
    를 더 수행하는 상기 인스트럭션들을 실행하는 솔루션 서버.
KR1020180151821A 2018-11-30 2018-11-30 머신러닝 기반 무중단 파서 업데이트 방법 및 이를 이용한 솔루션 서버 KR101966356B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020180151821A KR101966356B1 (ko) 2018-11-30 2018-11-30 머신러닝 기반 무중단 파서 업데이트 방법 및 이를 이용한 솔루션 서버

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020180151821A KR101966356B1 (ko) 2018-11-30 2018-11-30 머신러닝 기반 무중단 파서 업데이트 방법 및 이를 이용한 솔루션 서버

Publications (1)

Publication Number Publication Date
KR101966356B1 true KR101966356B1 (ko) 2019-04-08

Family

ID=66164212

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020180151821A KR101966356B1 (ko) 2018-11-30 2018-11-30 머신러닝 기반 무중단 파서 업데이트 방법 및 이를 이용한 솔루션 서버

Country Status (1)

Country Link
KR (1) KR101966356B1 (ko)

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101012335B1 (ko) * 2010-07-14 2011-02-09 한국항공대학교산학협력단 정규표현식 기반의 요약공간을 이용한 안전한 자료 흐름 분석방법
KR101542235B1 (ko) * 2015-01-23 2015-08-06 주식회사 프로이트 실시간 데이터 마이닝 방법
JP2016062411A (ja) * 2014-09-19 2016-04-25 ヤフー株式会社 情報分析装置、情報分析方法および情報分析プログラム
US20160124722A1 (en) * 2014-10-31 2016-05-05 Oracle International Corporation Json stylesheet language transformation
KR20160097502A (ko) * 2015-02-09 2016-08-18 주식회사 인티게이트 이엠에스 서버 및 이의 로그 데이터 관리 방법
KR101695277B1 (ko) * 2016-04-26 2017-01-11 (주)시큐레이어 비정형 데이터의 정규화를 수행하도록 지원하는 방법 및 이를 이용한 컴퓨팅 장치
KR101890805B1 (ko) * 2018-04-17 2018-08-22 (주)시큐레이어 머신 러닝 기반 실시간 비정형 로그 처리 방법 및 이를 사용한 서버

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101012335B1 (ko) * 2010-07-14 2011-02-09 한국항공대학교산학협력단 정규표현식 기반의 요약공간을 이용한 안전한 자료 흐름 분석방법
JP2016062411A (ja) * 2014-09-19 2016-04-25 ヤフー株式会社 情報分析装置、情報分析方法および情報分析プログラム
US20160124722A1 (en) * 2014-10-31 2016-05-05 Oracle International Corporation Json stylesheet language transformation
KR101542235B1 (ko) * 2015-01-23 2015-08-06 주식회사 프로이트 실시간 데이터 마이닝 방법
KR20160097502A (ko) * 2015-02-09 2016-08-18 주식회사 인티게이트 이엠에스 서버 및 이의 로그 데이터 관리 방법
KR101695277B1 (ko) * 2016-04-26 2017-01-11 (주)시큐레이어 비정형 데이터의 정규화를 수행하도록 지원하는 방법 및 이를 이용한 컴퓨팅 장치
KR101890805B1 (ko) * 2018-04-17 2018-08-22 (주)시큐레이어 머신 러닝 기반 실시간 비정형 로그 처리 방법 및 이를 사용한 서버

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
Introducing JSON, www.json.org *

Similar Documents

Publication Publication Date Title
US10209908B2 (en) Optimization of in-memory data grid placement
WO2019128817A1 (zh) 报文处理的方法和装置
US8521871B2 (en) System and method for merging monitoring data streams from a server and a client of the server
US10089352B2 (en) Offloading projection of fixed and variable length database columns
US11929944B2 (en) Network forwarding element with key-value processing in the data plane
EP2051183A1 (en) Query processing system and method for database with encrypted column by query encryption transformation
US20130128885A1 (en) Data path acceleration using hw virtualization
US20240176760A1 (en) Data stream protocol field decoding by a systolic array
CN108881415B (zh) 分布式实时大数据分析系统
US9363158B2 (en) Reduce size of IPV6 routing tables by using a bypass tunnel
CN103562873A (zh) 用于混合系统的统一的自适应ras
US9086936B2 (en) Method of entropy distribution on a parallel computer
US9647932B2 (en) Network routing modifications for distribution of data
KR101966356B1 (ko) 머신러닝 기반 무중단 파서 업데이트 방법 및 이를 이용한 솔루션 서버
US20190356607A1 (en) Merging read requests in network device architecture
US20150088958A1 (en) Information Processing System and Distributed Processing Method
US20150331917A1 (en) Recording medium having stored therein transmission order determination program, transmission order determination device, and transmission order determination method
US9275168B2 (en) Hardware projection of fixed and variable length columns of database tables
US9736080B2 (en) Determination method, device and storage medium
US20190149483A1 (en) Information processing device, information processing method and non-transitory computer-readable storage medium
US10148585B2 (en) Communication control method, information processing apparatus, and storage medium
US20240118828A1 (en) Data flow control and routing using machine learning
KR101775324B1 (ko) 적어도 하나의 노드를 포함하는 힙에서 특정 노드의 삭제를 취급하는 방법 및 이를 수행하는 컴퓨팅 장치
WO2021106133A1 (ja) シャッフルシステム、シャッフル方法及びプログラム
JP5952239B2 (ja) トラヒック走査方法および装置

Legal Events

Date Code Title Description
E701 Decision to grant or registration of patent right
GRNT Written decision to grant