KR102132877B1 - 분산 데이터베이스 시스템의 대용량 텍스트 로그 데이터 분산 처리 방법 - Google Patents

분산 데이터베이스 시스템의 대용량 텍스트 로그 데이터 분산 처리 방법 Download PDF

Info

Publication number
KR102132877B1
KR102132877B1 KR1020190009979A KR20190009979A KR102132877B1 KR 102132877 B1 KR102132877 B1 KR 102132877B1 KR 1020190009979 A KR1020190009979 A KR 1020190009979A KR 20190009979 A KR20190009979 A KR 20190009979A KR 102132877 B1 KR102132877 B1 KR 102132877B1
Authority
KR
South Korea
Prior art keywords
server
text log
data
query
thread
Prior art date
Application number
KR1020190009979A
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 KR1020190009979A priority Critical patent/KR102132877B1/ko
Application granted granted Critical
Publication of KR102132877B1 publication Critical patent/KR102132877B1/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/24Querying
    • G06F16/245Query processing
    • G06F16/2458Special types of queries, e.g. statistical queries, fuzzy queries or distributed queries
    • G06F16/2471Distributed queries
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3466Performance evaluation by tracing or monitoring
    • G06F11/3476Data logging
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/18File system types
    • G06F16/182Distributed file systems
    • G06F16/1824Distributed file systems implemented using Network-attached Storage [NAS] architecture
    • G06F16/1827Management specifically adapted to NAS

Abstract

본 발명은 대용량 텍스트 로그 데이터를 분할하여 다수의 쓰레드에서 다수의 데이터베이스 서버에 동시에 분산 저장하고, 질의 요청시 각 데이터베이스 서버에서 패턴 매칭을 통해 획득된 텍스트 로그 파일을 해당 질의를 수신한 데이터베이스 서버에서 취합하여 최종 결과를 생성함으로써, 보다 신속하게 텍스트 로그 데이터에 대한 저장 및 검색 처리를 수행할 수 있도록 해 주는 기술에 관한 것이다.
본 발명에 따른 분산 데이터베이스 시스템의 대용량 텍스트 로그 데이터 분산 처리 방법은 데이터 관리 장치와 다수의 DB서버가 상호 연동되게 결합되는 분산 데이터베이스 시스템에 있어서, 데이터 관리 장치는 대용량 텍스트 로그 데이터를 기 설정된 분할 조건에 따라 다수의 텍스트 로그 파일로 분할하는 제1 단계와, 데이터 관리 장치는 분할된 텍스트 로그 파일의 총 개수와 동일 개수의 업로드 처리용 쓰레드를 생성하고, 각 쓰레드에 서로 다른 텍스트 로그 파일을 동시에 할당하는 제2 단계, 각 쓰레드는 자신이 처리할 텍스트 로그 파일을 다수의 DB서버 중 임의 하나의 DB서버를 선택하여 각각 전송하는 제3 단계, DB 서버는 텍스트 로그 파일의 해시값을 근거로 해당 텍스트 로그 파일을 저장할 저장 대상 DB 서버를 결정하고, 결정된 저장 대상 DB서버 정보를 해당 텍스트 로그 파일을 전송한 쓰레드로 제공하는 제4 단계 및, 각 쓰레드는 자신에게 할당된 텍스트 로그 파일을 상기 제4 단계에서 자신이 수신한 저장 대상 DB서버의 데이터 테이블에 각각 업로드하는 제5 단계를 포함하여 구성되는 것을 특징으로 한다.

Description

분산 데이터베이스 시스템의 대용량 텍스트 로그 데이터 분산 처리 방법{ METHOD FOR DISTRIBUTED PROCESSING OF TEXT LOGDATA IN DISTRIBUTED DATABASE SYSTEM}
본 발명은 대용량 텍스트 로그 데이터를 분할하여 다수의 쓰레드에서 다수의 데이터베이스 서버에 동시에 분산 저장하고, 질의 요청시 각 데이터베이스 서버에서 패턴 매칭을 통해 획득된 텍스트 로그 파일을 해당 질의를 수신한 데이터베이스 서버에서 취합하여 최종 결과를 생성함으로써, 보다 신속하게 텍스트 로그 데이터에 대한 저장 및 검색 처리를 수행할 수 있도록 해 주는 기술에 관한 것이다.
인터넷이 발전하면서, 인터넷상에서 사용자의 움직이는 행동양식, 예컨대 웹 사이트상에서 구매 및 거래한 기록 등의 정보들을 통합적으로 관리하여 보다 입체적으로 고객을 이해하고, 그 정보를 실시간으로 정리하는 프로세서의 구축이 필요하게 되었다.
이에, 인터넷을 이용하는 사용자들이 웹 서버를 통해 특정 웹 사이트에 접속하는 경우 이에 대한 텍스트 형태의 로그데이터인 웹 로그(Weblog)를 생성하여 저장하고, 저장된 웹 로그를 검색함으로써 사용자의 행동양식을 분석하는 기술이 발전하게 되었다.
상기한 웹 로그 등의 텍스트 로그데이터는 웹 서버를 통해 이루어지는 사용자의 모든 작업에 대한 기록으로, 사용자의 요구에 의해 수행된 모든 작업에 대응하여 생성된 텍스트 로그데이터는 미리 정해진 데이터 저장소에 저장하여 관리된다.
텍스트 로그데이터의 크기가 방대해지고, 텍스트 로그데이터에 대한 분석을 통한 빅데이터의 활용이 다양화되면서, 텍스트 로그데이터를 저장 관리하기 위한 데이터 저장소에 대한 중요성도 부각되고 있다.
현재, 텍스트 로그 데이터는 데이터의 저장 및 검색이 용이하도록 설계된 하나의 관계형 데이터베이스(relational data base)를 이용하여 저장 및 관리되고 있다.
관계형 데이터베이스는 일반적으로 다수의 컬럼과 로우 구조의 정형화된 테이블로 구성된 데이터 항목들의 집합체로서, 그 데이터들은 데이터베이스 테이블을 재구성하지 않고 인덱스 생성을 통해 다양한 방법으로 접근하거나 조합될 수 있다.
그러나, 대용량 텍스트 로그데이터를 하나의 데이터 베이스에 저장하여 관리하는 경우, 적재하는 용량이 제한됨은 물론, 하나의 머신을 사용하여 데이터 저장 및 관리 처리를 수행하기 때문에 텍스트 로그 데이터의 업로딩 및 질의 처리의 성능 확장이 제한되는 문제가 있다.
따라서, 크기와 양에 있어서 모두 급속도로 그 총량이 늘어나고 있는 대용량 텍스트 로그 데이터에 대해 보다 신속하고 안정적인 관리 기술이 절실하게 필요한 실정이다.
1. 한국등록특허 제10-1827369호 (발명의 명칭 : 데이트 스트림 분산 병렬 처리 서비스 관리 장치 및 방법)
이에, 본 발명은 상기한 사정을 감안하여 창출된 것으로, 대용량 텍스트 로그 데이터를 분할하여 다수의 쓰레드에서 다수의 데이터베이스 서버에 동시에 분산 저장하고, 질의 요청시 각 데이터베이스 서버에서 패턴 매칭을 통해 획득된 검색 데이터를 해당 질의를 수신한 데이터베이스 서버에서 취합하여 최종 결과를 생성함으로써, 보다 신속하고 안정적으로 텍스트 로그데이터에 대한 저장 및 검색 처리를 수행할 수 있도록 해 주는 분산 데이터베이스 시스템의 대용량 텍스트 로그 데이터 분산 처리 방법을 제공함에 그 기술적 목적이 있다.
상기 목적을 달성하기 위한 본 발명의 일측면에 따르면, 데이터 관리 장치와 다수의 DB서버가 상호 연동되게 결합되는 분산 데이터베이스 시스템의 대용량 텍스트 로그 데이터 분산 처리 방법에 있어서, 데이터 관리 장치에서 대용량 텍스트 로그 데이터를 기 설정된 분할 조건에 따라 다수의 텍스트 로그 파일로 분할하는 제1 단계와, 분할된 텍스트 로그 파일의 총 개수와 동일 개수의 업로드 처리용 쓰레드를 생성하고, 각 쓰레드에 서로 다른 텍스트 로그 파일을 동시에 할당하는 제2 단계, 각 쓰레드는 자신이 처리할 텍스트 로그 파일을 다수의 DB서버 중 임의 하나의 DB서버로 각각 전송하되, 각 쓰레드는 서로 다른 DB 서버로 자신의 텍스트 로그 파일을 전송하는 제3 단계, 각 DB 서버는 텍스트 로그 파일의 해시값을 근거로 해당 텍스트 로그 파일을 저장할 저장 대상 DB 서버를 결정하고, 결정된 저장 대상 DB서버 정보를 자신에게 해당 텍스트 로그 파일을 전송한 쓰레드로 제공하되, DB서버는 텍스트 로그 파일에서 해시값을 산출하고, 해시값을 총 DB서버의 개수로 나눈 나머지에 해당하는 DB 서버를 저장 대상 DB서버로 결정하는 제4 단계, 각 쓰레드는 자신에게 할당된 텍스트 로그 파일을 상기 제4 단계에서 자신이 수신한 저장 대상 DB서버의 데이터 테이블에 각각 업로드하는 제5 단계 및, 상기 제5 단계와 같이 대용량 텍스트 로그 데이터가 다수의 DB 서버의 데이터 테이블에 분산 저장된 상태에서, 상기 데이터 관리 장치는 다수의 DB 서버 중 부하량이 최소인 하나의 DB 서버로 질의 요청정보를 전송하고, 질의 요청정보를 수신한 질의 수신 DB 서버로부터 자신 및 타 DB서버에 분산 저장된 검색 데이터를 수집하여 생성된 질의 결과데이터를 제공받아 질의 결과로 반환하는 제6 단계를 포함하여 구성되는 것을 특징으로 하는 분산 데이터베이스 시스템의 대용량 텍스트 로그 데이터 분산 처리 방법이 제공된다.
또한, 상기 제6 단계는 데이터 관리 장치에서 질의 수신 DB 서버로 텍스트 로그 파일을 패턴 매칭하기 위한 구조의 질의 요청정보를 전송하고, 질의 수신 DB 서버는 데이터 관리 장치로부터 수신한 질의 요청정보를 모든 타 DB서버로 전송하며, 질의 수신 DB 서버와 모든 타 DB서버는 자신의 데이터 저장소에서 패턴 매칭을 통해 질의 요청정보에 포함된 검색 대상 키워드를 검색하고, 검색된 키워드를 포함한 일정 크기의 검색 결과 데이터를 획득하는 제7 단계와, 타 DB서버는 자신이 획득한 검색 결과 데이터를 질의 요청정보를 전송한 질의 수신 DB 서버로 전송하는 제8 단계, 질의 수신 DB 서버는 질의 요청에 대응하여 획득된 검색 결과 데이터를 조합하여 질의 결과 데이터를 생성하고, 이를 자신의 질의결과 테이블에 저장하는 제9 단계 및, 데이터 관리 장치는 질의 수신 DB 서버의 질의결과 테이블에서 질의에 대응되는 질의 결과 데이터를 호출하고, 이를 질의 결과로 반환하는 제10 단계를 포함하여 구성되는 것을 특징으로 하는 분산 데이터베이스 시스템의 대용량 텍스트 로그 데이터 분산 처리 방법이 제공된다.
삭제
또한, 상기 제2 단계에서 데이터 관리 장치는 텍스트 로그 파일에 파일 구분자를 포함하는 헤더를 추가로 부가하여 각 쓰레드에 제공하고, 상기 제7 단계에서 각 DB서버는 패턴 매칭을 통해 검색된 키워드의 전후 일정 크기를 갖는 검색 결과 데이터에서 키워드와 가장 근접한 주변 헤더의 파일 구분자를 근거로 해당 키워드를 포함하는 텍스트 로그 파일을 최종 검색 결과 데이터 설정하는 것을 특징으로 하는 분산 데이터베이스 시스템의 텍스트 로그 데이터 분산 처리 방법이 제공된다.
또한, 상기 제6 단계에서 텍스트 로그 파일을 패턴 매칭하기 위한 질의 구조는 SELECT 질의와 SEARCHING_TABLE 질의로 이루어지고, 매개변수로서 검색할 테이블명(table_name)과, 검색할 테이블의 필드명(field_name) 및, 적어도 하나 이상의 키워드(keyword)를 포함하는 SQL 형태로 구성되는 것을 특징으로 하는 분산 데이터베이스 시스템의 대용량 텍스트 로그 데이터 분산 처리 방법이 제공된다.
본 발명은 대용량의 텍스트 로그 데이터를 여러 데이터베이스 서버에 분산화하여 저장하기 때문에 데이터 저장 성능을 향상시킬 수 있음은 물론, 분산화된 텍스트 로그 데이터가 저장된 다수의 데이터베이스 서버에서 동시에 패턴 매칭 질의처리를 수행하여 질의 결과를 획득함으로써 질의처리 성능도 향상시킬 수 있다.
도1은 본 발명이 적용되는 분산 데이터베이스 시스템의 개략적인 구성을 예시한 도면.
도2는 도1에 도시된 데이터 관리 장치(100)의 내부구성을 기능적으로 분리하여 나타낸 블록구성도.
도3은 도2에 도시된 데이터 관리 장치(100)의 저장 처리를 개략적으로 설명하기 위한 도면.
도4는 도1에 도시된 DB서버(200)의 내부구성을 기능적으로 분리하여 나타낸 블록구성도.
도5는 도4에 도시된 패턴 매칭부(240)의 검색 결과 데이터 생성과정을 설명하기 위한 도면.
도6은 도1에 도시된 분산 데이터베이스 시스템의 전체적인 동작을 개략적으로 도시한 도면.
도7은 도6의 대용량 텍스트 로그 데이터에 대한 분산 저장 과정(ST100)을 보다 상세히 설명하기 위한 도면.
도8은 도6의 질의에 대한 검색 조건을 만족하는 질의 처리 과정(ST200)을 보다 상세히 설명하기 위한 도면.
도9는 데이터 관리 장치(100)에서 DB서버(200-1)로 전송하는 패턴 매칭을 위한 질의 구조를 예시한 도면.
본 발명에 기재된 실시예 및 도면에 도시된 구성은 본 발명의 바람직한 실시예에 불과할 뿐이고, 본 발명의 기술적 사상을 모두 표현하는 것은 아니므로, 본 발명의 권리범위는 본문에 설명된 실시예 및 도면에 의하여 제한되는 것으로 해석되어서는 아니 된다. 즉, 실시예는 다양한 변경이 가능하고 여러 가지 형태를 가질 수 있으므로 본 발명의 권리범위는 기술적 사상을 실현할 수 있는 균등물들을 포함하는 것으로 이해되어야 한다. 또한, 본 발명에서 제시된 목적 또는 효과는 특정 실시예가 이를 전부 포함하여야 한다거나 그러한 효과만을 포함하여야 한다는 의미는 아니므로, 본 발명의 권리범위는 이에 의하여 제한되는 것으로 이해되어서는 아니 될 것이다.
여기서 사용되는 모든 용어들은 다르게 정의되지 않는 한, 본 발명이 속하는 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가진다. 일반적으로 사용되는 사전에 정의되어 있는 용어들은 관련 기술의 문맥상 가지는 의미와 일치하는 것으로 해석되어야 하며, 본 발명에서 명백하게 정의하지 않는 이상적이거나 과도하게 형식적인 의미를 지니는 것으로 해석될 수 없다.
도1은 본 발명이 적용되는 분산 데이터베이스 시스템의 개략적인 구성을 예시한 도면이다.
도1을 참조하면, 본 발명이 적용되는 분산 데이터베이스 시스템은 데이터 관리 장치(100)와 다수의 DB서버(200)를 포함하여 구성되고, 데이터 관리 장치(100)와 제1 내지 제M DB서버(DB서버1 ~ DB서버M, M은 자연수) 및, 각 DB 서버들은 상호 연동된다.
이때, 데이터 관리 장치(100)는 클라이언트 단말로서, 대용량 텍스트 로그 데이터를 기 분할조건에 따라 다수의 텍스트 로그 파일로 분할(제1 파일 ~ 제N 파일)하고, 분할된 텍스트 로그 파일 총 개수에 대응되게 업로드 처리용 쓰레드(제1 쓰레드(TH1) ~ 제N 쓰레드(THN))를 생성한다.
즉, 데이터 관리 장치(100)는 다수의 쓰레드를 통해 파일 단위로 분할된 대용량 텍스트 로그 데이터를 병렬처리 방식으로 동시에 다수의 DB서버(200)로 분산시켜 업로드한다.
또한, DB 서버(200)는 텍스트 로그 데이터를 파일 단위로 저장함과 더불어, 질의 요청에 대응하여 분산 저장된 텍스트 로그 파일을 이용하여 생성된 질의 결과 데이터를 저장하는 데이터 저장소를 구비하여 구성된다.
즉, 본 발명에서 대용량 텍스트 로그 데이터는 다수의 DB 서버(200)에 분산 저장되고, 질의요청에 대해서는 질의 요청을 받은 DB서버(200)가 마스터 서버로 동작하여 타 DB서버(200)에 분산 저장된 검색 데이터를 수집한 후 수집된 검색 데이터를 조합함과 더불어, 이를 질의 결과 데이터로서 자신의 데이터 저장소에 저장한다.
도2는 도1에 도시된 데이터 관리 장치(100)의 내부구성을 기능적으로 분리하여 나타낸 블록구성도이다.
도2에 도시된 바와 같이 데이터 관리 장치(100)는 업로드 처리부(110)와 질의 처리부(120)를 포함하고, 업로드 처리부(110)는 쓰레드 관리모듈(111)과 업로드 모듈(112)을 포함한다.
쓰레드 관리모듈(111)은 대용량 텍스트 로그 데이터를 기 설정된 분할조건에 따라 분할하여 다수의 텍스트 로그 파일을 생성하고, 분할된 텍스트 로그 파일 총 개 수정보를 업로드 모듈(112)로 제공하여 업로드 모듈(112)에서 텍스트 로그 파일 개수와 동일한 개수의 업로드 처리용 쓰레드를 생성하도록 한다.
그리고, 쓰레드 관리모듈(111)은 업로드 모듈(112)에 생성된 각 쓰레드에 서로 다른 텍스트 로그 파일을 동시에 전송한다.
이때, 대용량 텍스트 로그 데이터에 대한 분할조건은 관리자에 의해 임의로 설정될 수 있다. 예컨대, 1년 동안의 대용량 텍스트 로그 데이터에 대해 월 단위의 분할 조건에 따라 월별로 분할된 텍스트 로그 파일을 생성할 수 있다.
또한, 쓰레드 관리모듈(111)은 분할된 텍스트 로그 파일에 대해 순번을 부여하여 해당 쓰레드로 전송할 수 있으며, 해당 텍스트 로그 파일을 저장할 테이블 명을 전송할 수 있다.
업로드 모듈(112)에서 생성된 각 쓰레드는 자신에게 할당된 텍스트 로그 파일을 다수의 DB 서버(200) 중 선택된 DB 서버로 전송하고, 이에 대해 해당 DB 서버로부터 텍스트 로그 파일을 저장할 저장 대상 DB서버 정보를 획득한다.
또한, 각 쓰레드(TH1~THN)는 쓰레드 관리 모듈(111)로부터 수신된 텍스트 로그 파일에 헤더를 부가하여 저장 파일을 생성하고, 해당 저장 파일을 자신에게 할당된 저장 대상 DB서버의 데이터 저장소에 저장한다.
이때, 상기 헤더는 파일 구분자(예컨대, '//')와 테이블 명 및, 분할 파일 순번을 포함할 수 있다.
도3에 도시된 바와 같이 제1 내지 제N 쓰레드(TH1~THN)는 자신에게 할당된 제1 내지 제N 텍스트 로그 파일에 헤더를 부가하여 저장 파일을 생성하고, 이를 자신에게 할당된 서로 다른 DB서버(예컨대, 제2 DB 서버, 제5 DB 서버, ..., 제 M-2 DB서버)의 데이터 저장소에 해당 텍스트 로그 파일을 저장할 테이블명에 해당하는 테이블을 생성하여 저장한다.
한편, 도2에서 질의 처리부(120)는 외부로부터 수신된 질의요청정보를 다수의 DB 서버(200) 중 하나의 DB서버를 선택하여 전송하고, 질의요청정보를 수신한 질의 수신 DB서버로부터 해당 질의에 대응되는 질의 결과데이터를 획득하여 외부로 반환한다.
이때, 질의 처리부(120)는 각 DB 서버(200)의 부하량을 확인하여 현재 부하량이 최소인 DB 서버(200)로 질의요청을 수행할 수 있다.
도4는 도1에 도시된 DB서버(200)의 내부구성을 기능적으로 분리하여 나타낸 블록구성도이다.
도4를 참조하면, DB서버(200)는 데이터 저장소(210)와, 분산 관리부(220), 분산질의 처리부(230) 및, 패턴 매칭부(240)를 포함한다.
데이터 저장소(210)는 대용량 텍스트 로그 데이터가 파일 단위로 분산되어 저장되는 데이터 테이블(211)과, 질의요청에 대해 검색된 결과데이터가 저장되는 질의결과 테이블(212)을 포함하여 구성된다.
이때 데이터 테이블(211)과 질의결과 테이블(212)는 CLOB(Character Large Object)테이블로 이루어질 수 있으며, 각 테이블의 필드명은 해당 텍스트 로그 데이터에 존재하는 필드명에 대응되게 설정된다. 그리고, 데이터 테이블(211)은 데이터 관리 장치(100)의 업로드 처리부(110)와 연동되고, 질의결과 테이블(212)은 데이터 관리 장치(100)의 질의 처리부(120)와 연동된다.
분산 관리부(220)는 업로드 처리부(110)의 각 쓰레드로부터 인가되는 텍스트 로그 파일을 근거로 해당 텍스트 로그 파일을 저장할 저장대상 DB서버를 결정한다. 분산 관리부(220)는 해당 텍스트 로그 파일의 해시값을 산출하고, 이 해시값을 전체 DB 서버 개수(M)로 나눈 나머지 번호에 해당하는 DB서버를 해당 저장 파일에 대한 저장 대상 DB서버로 결정한다. 분산 관리부(220)는 해당 파일에 대한 저장 대상 DB서버 정보를 업로드 처리부(110)의 해당 쓰레드로 전송한다.
분산 질의 처리부(230)는 질의 처리부(120)로부터 질의요청에 대해 패턴 매칭부(240) 및 타 DB서버(200)로 해당 질의요청정보를 전송하여 질의에 대응되는 결과 정보를 수집하고, 수집된 결과 정보를 취합하여 질의 결과데이터를 생성한다. 그리고, 질의 결과데이터를 자신의 질의결과 테이블(212)에 저장한다.
이때, 분산 질의 처리부(230)는 질의 결과데이터를 저장함과 더불어, 데이터 관리장치(100)로 질의 결과 완료정보를 전송하여 데이터 관리장치(100)의 질의 처리부(120)에서 해당 DB서버(200)의 질의결과 테이블(212)에서 해당 질의 결과데이터를 호출하도록 한다.
패턴 매칭부(240)는 분산 질의 처리부(230)로부터 인가되는 질의 요청에 대응하여 데이터 테이블(211)에서 해당 질의 조건을 만족하는 키워드를 검색하고, 검색된 키워드를 중심으로 전후 100 byte 일정 크기를 갖는 검색 결과 데이터를 생성한다. 검색 결과 데이터가 다수인 경우, 이들을 조합하여 분산 질의 처리부(230)로 반환한다.
예컨대, 도5에 도시된 바와 같이 패턴 매칭부(240)는 데이터 테이블(211)에 저장된 헤더(H)와 텍스트 로그 파일(F)이 순차로 배치되는 형태의 데이터열(A)에서 질의 조건을 만족하는 키워드(Keyword)를 중심으로 전후 100byte 크기의 검색 결과 데이터(B)를 추출한다. 여기서, 패턴 매칭부(240)는 데이터 크기 기반으로 추출된 검색 결과 데이터(B)에서 키워드(K)를 기준으로 전 후단에 위치하는 헤더를 검색하고, 전단의 헤더를 포함하면서 후단의 헤더 전까지의 하나의 저장 파일 단위의 검색 결과 데이터(C)로 재가공하여 분산 질의 처리부(230)로 반환할 수 있다.
한편, 데이터 관리 장치(100)로부터 질의 요청을 받은 질의 수신 DB서버(200)의 분산 질의 처리부(230)는 해당 DB서버의 패턴 매칭부(240)의 검색 결과 데이터 및 타 DB 서버의 패턴 매칭부에서 검색된 검색 결과 데이터를 수집 및 조합하여 질의 결과 데이터를 생성한다. 이때, 분산 질의 처리부(230)는 검색 결과 데이터의 헤더를 분석하여 파일 분할 순번을 확인함으로써, 질의에 대해 다수의 텍스트 로그 파일을 순차로 배치하여 최종적인 질의 결과 데이터를 생성할 수 있다.
이어, 도1 및 도2에 도시된 분산 데이터베이스 시스템의 동작을 도6 내지 도9를 참조하여 설명한다.
분산 데이터 베이스 시스템은 도6에 도시된 바와 같이 대용량 텍스트 로그 데이터를 다수의 DB서버(200)에 분산 저장하는 과정(ST100)과, 질의에 대응하여 분산 저장된 텍스트 로그 파일을 취합하여 질의에 포함된 검색 조건을 만족하는 질의 결과 데이터를 반환하는 질의 처리 과정(ST200)을 수행한다.
먼저, 도7을 참조하여 상기한 대용량 텍스트 로그 데이터에 대한 분산 저장 과정(ST100)을 보다 상세히 설명한다.
데이터 관리 장치(100)는 분산 저장할 대용량 텍스트 로그 데이터와 분할 조건정보가 수신되면(ST110), 분할 조건에 대응하여 대용량 텍스트 로그 데이터를 다수의 텍스트 로그 파일로 분할 한다(ST120). 예컨대, 대용량 텍스트 로그 데이터는 기 설정된 분할 조건에 따라 10개의 텍스트 로그 파일로 분할될 수 있다.
이어, 데이터 관리 장치(100)는 분할된 텍스트 로그 파일의 수와 동일한 수의 업로드 처리용 쓰레드를 생성하고, 각 각 쓰레드에 서로 다른 텍스트 로그 파일을 할당한다(ST130). 즉, 10개의 텍스트 로그 파일에 대해 10개의 쓰레드가 생성된다.
각 쓰레드는 자신에게 할당된 텍스트 로그 파일에 헤더를 부가하여 업로드할 저장 파일을 생성한다(ST140).
또한, 데이터 관리 장치(100)의 각 쓰레드는 자신이 처리할 텍스트 로그 파일을 임의 DB서버(200)로 전송한다(ST150). 이때, 각 쓰레드는 서로 다른 DB 서버(200)로 자신의 텍스트 로그 파일을 전송할 수 있다. 예컨대 제1 쓰레드는 제3 DB 서버, 제2 쓰레드는 제5 DB 서버, ... 로 자신의 텍스트 로그 파일을 전송할 수 있다.
또한, 데이터 관리 장치(100)는 각 쓰레드에 대해 텍스트 로그 파일을 전송할 DB서버를 순차로 할당할 수 있다. 이때, 데이터 관리 장치(100)는 저장 대상 DB 서버 결정을 위해 선택된 최근 DB 서버 정보를 저장하고, 이후 순번의 DB 서버부터 순차로 텍스트 로그 파일 전송을 수행할 DB 서버를 할당할 수 있다.
한편, DB 서버(200)는 데이터 관리 장치(100)로부터 수신된 텍스트 로그 파일에서 해시값을 산출하고, 해시값을 DB서버의 개수로 나눈 나머지에 해당하는 DB 서버를 저장 대상 DB서버로 결정하고(ST160), 결정된 저장 대상 DB 서버정보를 해당 데이터 관리 장치(100)의 해당 쓰레드로 전송한다(ST170). 즉, 데이터 관리 장치(100)의 각 쓰레드는 자신이 업로드할 텍스트 로그 파일을 기반으로 해당 텍스트 로그 파일을 업로드할 저장 대상 DB 서버정보를 할당받는다.
데이터 관리 장치(100)의 각 쓰레드는 상기 ST140 단계에서 생성한 저장 파일을 상기 ST170 단계에서 수신된 저장 대상 DB서버의 데이터 테이블(211)에 업로드한다(ST180).
즉, 대용량 텍스트 로그 데이터를 분할하여 생성된 텍스트 로그 파일을 다수의 쓰레드에서 병렬처리하여 다수의 DB서버에 동시에 업로드하되, 각 쓰레드는 자신에게 할당된 텍스트 로그 파일을 자신에게 할당된 DB서버에 저장한다.
이어, 도8을 참조하여 도6에 도시된 질의에 대한 검색 조건을 만족하는 질의 처리 과정(ST200)을 보다 상세히 설명한다.
먼저, 도7과 같이 하나의 대용량 텍스트 로그 데이터가 다수의 텍스트 로그 파일로 분할되어 다수의 DB서버(200)에 분산저장된 상태로서, 도8에서는 질의 결과로 반환될 대용량 텍스트 로그 데이터가 3개의 텍스트 로그 파일로 분할되어 제1 내지 제3 쓰레드를 통해 서로 다른 제1 내지 제3 DB서버(200-1,200-2,200-3)에 각각 업로드된 경우를 예시하여 설명한다.
데이터 관리 장치(100)는 외부로부터의 질의에 대해 제1 DB서버(200-1)로 질의 요청정보를 전송한다. 이때, 데이터 관리 장치(100)는 제1 DB서버(200-1)로 패턴 매칭을 위한 질의를 전송한다(ST210).
텍스트 로그 파일을 패턴 매칭하는 질의 구조는 전용 SQL 형태로서, 도9에 도시된 바와 같이, SELECT 질의와 SEARCHING_TABLE 질의가 함께 사용되고, 매개변수로서, 검색할 테이블명(table_name)과, 검색할 테이블의 필드명(field_name) 및, 적어도 하나 이상의 키워드(keyword)가 설정된다.
제1 DB서버(200-1)는 수신된 질의에 자신의 식별코드를 부여한 분산질의 요청정보를 제2 및 제3 DB서버(200-2,200-3)를 포함한 모든 타 DB서버로 전송한다 (ST220).
또한, 제1 DB 서버(200-1)는 수신된 질의에 대응하여 자신의 데이터 테이블(212)에 저장된 저장 파일에서 질의 조건을 만족하는 "키워드"를 검색하고, 검색된 키워드를 기준으로 검색 결과 데이터를 생성한다(ST230).
이때, 해당 질의를 수신한 모든 타 DB서버에서도 제1 DB서버(200-1)와 동일하게 패턴 매칭을 이용하여 질의 조건을 만족하는 검색 결과 데이터를 생성한다(ST230).
타 DB서버 중 해당 키워드를 포함하는 검색 결과 데이터를 생성한 제2 및 제3 DB서버(200-2, 200-3)는 자신이 생성한 검색 결과 데이터를 해당 질의를 전송한 제1 DB서버(200-1)로 전송한다(ST240).
제1 DB서버(200-1)는 제2 및 제3 DB서버(200-2,200-3)를 통해 수신된 검색 결과 데이터와 상기 ST220 단계에서 자신의 데이터 테이블(211)에서 검색된 검색 결과 데이터를 조합하여 해당 질의에 대한 질의 결과 데이터를 생성하고, 이를 자신의 질의결과 테이블(212)에 저장한다(ST250).
또한, 제1 DB서버(200-1)는 데이터 관리 장치(100)로 질의 처리 완료정보를 전송하고, 데이터 관리 장치(100)는 제1 DB서버(200-1)의 질의결과 테이블(202)에서 해당 질의 결과 데이터를 호출한다(ST260,ST270).
그리고, 데이터 관리 장치(100)는 외부로 질의 결과 데이터를 요청된 질의에 대한 결과로 반환한다.
100 : 데이터 관리 장치, 110 : 업로드 처리부,
111 : 쓰레드 관리모듈, 112 : 업로드 모듈,
120 : 질의 처리부, 200 : DB 서버,
210 : 데이터 저장소, 211 : 데이터 테이블,
212 : 질의결과 테이블, 220 : 분산 관리부,
230 : 분산 질의 처리부, 240 : 패턴 매칭부.

Claims (5)

  1. 데이터 관리 장치와 다수의 DB서버가 상호 연동되게 결합되는 분산 데이터베이스 시스템의 대용량 텍스트 로그 데이터 분산 처리 방법에 있어서,
    데이터 관리 장치에서 대용량 텍스트 로그 데이터를 기 설정된 분할 조건에 따라 다수의 텍스트 로그 파일로 분할하는 제1 단계와,
    분할된 텍스트 로그 파일의 총 개수와 동일 개수의 업로드 처리용 쓰레드를 생성하고, 각 쓰레드에 서로 다른 텍스트 로그 파일을 동시에 할당하는 제2 단계,
    각 쓰레드는 자신이 처리할 텍스트 로그 파일을 다수의 DB서버 중 임의 하나의 DB서버로 각각 전송하되, 각 쓰레드는 서로 다른 DB 서버로 자신의 텍스트 로그 파일을 전송하는 제3 단계,
    각 DB 서버는 텍스트 로그 파일의 해시값을 근거로 해당 텍스트 로그 파일을 저장할 저장 대상 DB 서버를 결정하고, 결정된 저장 대상 DB서버 정보를 자신에게 해당 텍스트 로그 파일을 전송한 쓰레드로 제공하되, DB서버는 텍스트 로그 파일에서 해시값을 산출하고, 해시값을 총 DB서버의 개수로 나눈 나머지에 해당하는 DB 서버를 저장 대상 DB서버로 결정하는 제4 단계,
    각 쓰레드는 자신에게 할당된 텍스트 로그 파일을 상기 제4 단계에서 자신이 수신한 저장 대상 DB서버의 데이터 테이블에 각각 업로드하는 제5 단계 및,
    상기 제5 단계와 같이 대용량 텍스트 로그 데이터가 다수의 DB 서버의 데이터 테이블에 분산 저장된 상태에서, 상기 데이터 관리 장치는 다수의 DB 서버 중 부하량이 최소인 하나의 DB 서버로 질의 요청정보를 전송하고, 질의 요청정보를 수신한 질의 수신 DB 서버로부터 자신 및 타 DB서버에 분산 저장된 검색 데이터를 수집하여 생성된 질의 결과데이터를 제공받아 질의 결과로 반환하는 제6 단계를 포함하여 구성되는 것을 특징으로 하는 분산 데이터베이스 시스템의 대용량 텍스트 로그 데이터 분산 처리 방법.
  2. 제1항에 있어서,
    상기 제6 단계는 데이터 관리 장치에서 질의 수신 DB 서버로 텍스트 로그 파일을 패턴 매칭하기 위한 구조의 질의 요청정보를 전송하고, 질의 수신 DB 서버는 데이터 관리 장치로부터 수신한 질의 요청정보를 모든 타 DB서버로 전송하며, 질의 수신 DB 서버와 모든 타 DB서버는 자신의 데이터 저장소에서 패턴 매칭을 통해 질의 요청정보에 포함된 검색 대상 키워드를 검색하고, 검색된 키워드를 포함한 일정 크기의 검색 결과 데이터를 획득하는 제7 단계와,
    타 DB서버는 자신이 획득한 검색 결과 데이터를 질의 요청정보를 전송한 질의 수신 DB 서버로 전송하는 제8 단계,
    질의 수신 DB 서버는 질의 요청에 대응하여 획득된 검색 결과 데이터를 조합하여 질의 결과 데이터를 생성하고, 이를 자신의 질의결과 테이블에 저장하는 제9 단계 및,
    데이터 관리 장치는 질의 수신 DB 서버의 질의결과 테이블에서 질의에 대응되는 질의 결과 데이터를 호출하고, 이를 질의 결과로 반환하는 제10 단계를 포함하여 구성되는 것을 특징으로 하는 분산 데이터베이스 시스템의 대용량 텍스트 로그 데이터 분산 처리 방법.
  3. 삭제
  4. 제2항에 있어서,
    상기 제2 단계에서 데이터 관리 장치는 텍스트 로그 파일에 파일 구분자를 포함하는 헤더를 추가로 부가하여 각 쓰레드에 제공하고,
    상기 제7 단계에서 각 DB서버는 패턴 매칭을 통해 검색된 키워드의 전후 일정 크기를 갖는 검색 결과 데이터에서 키워드와 가장 근접한 주변 헤더의 파일 구분자를 근거로 해당 키워드를 포함하는 텍스트 로그 파일을 최종 검색 결과 데이터 설정하는 것을 특징으로 하는 분산 데이터베이스 시스템의 대용량 텍스트 로그 데이터 분산 처리 방법.
  5. 제2항에 있어서,
    상기 제6 단계에서 텍스트 로그 파일을 패턴 매칭하기 위한 질의 구조는 SELECT 질의와 SEARCHING_TABLE 질의로 이루어지고, 매개변수로서 검색할 테이블명(table_name)과, 검색할 테이블의 필드명(field_name) 및, 적어도 하나 이상의 키워드(keyword)를 포함하는 SQL 형태로 구성되는 것을 특징으로 하는 대용량 분산 데이터베이스 시스템의 텍스트 로그 데이터 분산 처리 방법.
KR1020190009979A 2019-01-25 2019-01-25 분산 데이터베이스 시스템의 대용량 텍스트 로그 데이터 분산 처리 방법 KR102132877B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020190009979A KR102132877B1 (ko) 2019-01-25 2019-01-25 분산 데이터베이스 시스템의 대용량 텍스트 로그 데이터 분산 처리 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020190009979A KR102132877B1 (ko) 2019-01-25 2019-01-25 분산 데이터베이스 시스템의 대용량 텍스트 로그 데이터 분산 처리 방법

Publications (1)

Publication Number Publication Date
KR102132877B1 true KR102132877B1 (ko) 2020-07-10

Family

ID=71604103

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020190009979A KR102132877B1 (ko) 2019-01-25 2019-01-25 분산 데이터베이스 시스템의 대용량 텍스트 로그 데이터 분산 처리 방법

Country Status (1)

Country Link
KR (1) KR102132877B1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113609134A (zh) * 2021-08-23 2021-11-05 广州品唯软件有限公司 一种获取唯一随机码的方法及装置

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20070081206A (ko) * 2006-02-10 2007-08-16 주식회사 플레이오토 분산처리를 이용한 데이터 업로딩 방법 및 시스템, 그리고그 방법이 기록된 기록매체
KR20100107857A (ko) * 2009-03-27 2010-10-06 충북대학교 산학협력단 Pc 클러스터 기반 blast 고속 검색을 위한 파티셔닝방법
KR20160038496A (ko) * 2014-09-30 2016-04-07 아주대학교산학협력단 파일 시스템을 이용한 저장공간 통합 방법 및 시스템
KR101827369B1 (ko) 2012-02-21 2018-02-09 한국전자통신연구원 데이터 스트림 분산 병렬 처리 서비스 관리 장치 및 방법
KR101892067B1 (ko) * 2017-03-28 2018-08-27 주식회사 리얼타임테크 관계형 데이터베이스 기반의 텍스트 로그데이터 저장 및 검색 방법

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20070081206A (ko) * 2006-02-10 2007-08-16 주식회사 플레이오토 분산처리를 이용한 데이터 업로딩 방법 및 시스템, 그리고그 방법이 기록된 기록매체
KR20100107857A (ko) * 2009-03-27 2010-10-06 충북대학교 산학협력단 Pc 클러스터 기반 blast 고속 검색을 위한 파티셔닝방법
KR101827369B1 (ko) 2012-02-21 2018-02-09 한국전자통신연구원 데이터 스트림 분산 병렬 처리 서비스 관리 장치 및 방법
KR20160038496A (ko) * 2014-09-30 2016-04-07 아주대학교산학협력단 파일 시스템을 이용한 저장공간 통합 방법 및 시스템
KR101892067B1 (ko) * 2017-03-28 2018-08-27 주식회사 리얼타임테크 관계형 데이터베이스 기반의 텍스트 로그데이터 저장 및 검색 방법

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113609134A (zh) * 2021-08-23 2021-11-05 广州品唯软件有限公司 一种获取唯一随机码的方法及装置

Similar Documents

Publication Publication Date Title
US11120022B2 (en) Processing a database query using a shared metadata store
US10558672B1 (en) System and method for executing queries on multi-graphics processing unit systems
CN108304444B (zh) 信息查询方法及装置
CN106484877B (zh) 一种基于hdfs的文件检索系统
CN107291928B (zh) 一种日志存储系统和方法
KR101892067B1 (ko) 관계형 데이터베이스 기반의 텍스트 로그데이터 저장 및 검색 방법
KR102102313B1 (ko) 인메모리 데이터베이스 기반의 시계열 데이터 관리시스템
US20040205044A1 (en) Method for storing inverted index, method for on-line updating the same and inverted index mechanism
US20220083618A1 (en) Method And System For Scalable Search Using MicroService And Cloud Based Search With Records Indexes
AU2016369586B2 (en) Method and device for correlating multiple tables in a database environment
US8880463B2 (en) Standardized framework for reporting archived legacy system data
CN100458784C (zh) 在数字图书馆中所采用的检索系统和检索方法
US20110307470A1 (en) Distributed database management system and distributed database management method
CN110704453A (zh) 一种数据查询方法、装置、存储介质及电子设备
US20150120652A1 (en) Replicated data storage system and methods
CN111324604A (zh) 数据库表的处理方法、装置、电子设备及存储介质
EP3825863A1 (en) Distributed computer system for delivering data
KR102132877B1 (ko) 분산 데이터베이스 시스템의 대용량 텍스트 로그 데이터 분산 처리 방법
Baranowski et al. A study of data representation in Hadoop to optimize data storage and search performance for the ATLAS EventIndex
WO2014034383A1 (ja) 情報処理装置、レコード位置情報特定方法および情報処理プログラム
JP3367140B2 (ja) データベース管理方法
US11567969B2 (en) Unbalanced partitioning of database for application data
US9558221B2 (en) Multi-pass, parallel merge for partitioned intermediate pages
CN117171161A (zh) 数据查询方法及装置
CN112805695A (zh) 共同分片和随机化共同分片

Legal Events

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