KR102346289B1 - 오픈 소스 빅데이터 시스템에서 구조화된 언어로 통계 및 원본 데이터를 검색하는 방법 및 시스템 - Google Patents

오픈 소스 빅데이터 시스템에서 구조화된 언어로 통계 및 원본 데이터를 검색하는 방법 및 시스템 Download PDF

Info

Publication number
KR102346289B1
KR102346289B1 KR1020200020484A KR20200020484A KR102346289B1 KR 102346289 B1 KR102346289 B1 KR 102346289B1 KR 1020200020484 A KR1020200020484 A KR 1020200020484A KR 20200020484 A KR20200020484 A KR 20200020484A KR 102346289 B1 KR102346289 B1 KR 102346289B1
Authority
KR
South Korea
Prior art keywords
query
data
big data
conversion
structured language
Prior art date
Application number
KR1020200020484A
Other languages
English (en)
Other versions
KR20210105699A (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 KR1020200020484A priority Critical patent/KR102346289B1/ko
Publication of KR20210105699A publication Critical patent/KR20210105699A/ko
Application granted granted Critical
Publication of KR102346289B1 publication Critical patent/KR102346289B1/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/2453Query optimisation
    • G06F16/24534Query rewriting; Transformation
    • 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/2455Query execution

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computational Linguistics (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

오픈 소스 빅데이터 시스템에서 구조화된 언어로 통계 및 원본 데이터를 검색하는 방법 및 시스템이 개시된다. 본 발명의 일측면에 따른 검색 시스템에서 수행되는 오픈소스 빅데이터 시스템에서 통계 및 원본 데이터를 검색하는 방법은, 구조화된 언어로 작성된 쿼리를 입력받는 단계; 쿼리를 빅데이터 분석 시스템에서 사용되는 형식으로 변환하는 단계; 변환된 쿼리로 빅데이터 분석 시스템에서 검색을 수행하는 단계; 검색된 통계 및 원본 데이터를 CSV 포맷으로 변환하는 단계; 및 CSV 포맷의 데이터를 쿼리에 대한 응답으로 제공하는 단계를 포함한다.

Description

오픈 소스 빅데이터 시스템에서 구조화된 언어로 통계 및 원본 데이터를 검색하는 방법 및 시스템{Method and system for retrieving statistics and original data in structured language from open source big data system}
본 발명은 데이터 처리에 관한 것으로, 보다 상세하게는 오픈소스 빅데이터 분석 시스템에서 통계 및 원본 데이터를 구조화 된 언어로 검색하는 방법 및 시스템에 관한것이다.
최근 국내 암호화폐 거래소인 업비트에서 580억원 규모의 암호화폐 탈취 사고가 발생했다. 이로 인한 금전적 피해도 매우 큰 것으로 보고 되었다. 이런 유형의 공격은 특정 조직을 대상으로 장기간에 걸쳐 조직적으로 중요 정보를 탈취하기 때문에 공격 노출 시 피해 규모가 매우 크며, 악성코드뿐만 아니라 사회공학적 해킹(social engineering hacking) 등 활용 가능한 모든 수단을 동원하기 때문에 사전 탐지가 어려운 것이 특징이다.
최근 몇 년에 걸쳐 국내·외에서 많은 사례가 발견되고 있으며, 2010년 7월 이란 원자력 발전시설을 해킹한 스턱스넷(Stuxnet)의 경우 원자력 발전 시설의 원심분리기 중 20%가 가동 중단되었으며, 2011년 7월 네이트 3,500만 명 개인정보 유출 등의 공격은 피해 규모가 클 뿐만 아니라 공격 탐지가 짧게는 2개월, 길게는 몇 년이 소 요된다. 이와 같이 사이버 테러의 위험성은 우리가 생각하는 것보다 훨씬 더 심각하며, 최근에는 조직적인 해커 그 룹이특정 표적을 치하게 계획적으로 해킹함으로써 주요정보 유출, 제어 시스템 공격, 사이버 무기화 등을 통해 사회적 혼란을 야기하고, 나아가서는 국가 안보를 위협하는 수준에까지 이르고 있다.
이에 대한 대응을 위해서는 지능형 보안 기술로서 빅데이터 분석 기술의 통합을 시도하고 있다. IT 기술의 진화로 빅데이터와 같은 대용량 데이터를 처리할 수 있는 컴퓨팅 파워 등이 마련되어 공격 로그 이벤트 및 내부 상황정보 등을 수집하고 상관관계를 분석함으로써 공격자의 의도를 파악해 공격의 최종 목표 달성을 막아 내는 기술로 발전 하고 있다.
이를 위해서 일반적으로 오픈소스 빅데이터 분석 시스템을 많이 사용하고 있다. 에이전트를 사용해 데이터를 수집하고 수집된 데이터를 한 곳에 모아서 여러 보안 시나리오로 보안관련 이벤트를 분석하고 있다.
예를 들면 회사의 보안 장비에서 차단된 공격이지만 내부 PC에서 공격자 IP로 접근 시도를 했다면, 잠재적인 문제가 있다고 볼 수 있다. 이렇게 분석하기 위해서는 단일 보안장비에서는 분석할 수 없고 SIEM(security information and event management) 제품군에서 이런 분석을 할 수 있다. 또한 보안 데이터의 크기가 최소 수 TB이고 대형 사이트의 경우 하루 1PB이상의 데이터를 분석해야 한다. 특히 ElasticStack의 경우 무료이면서 높은 성능과 유연한 구조를 가지고 있어서 보안 빅데이터 분석시 많이 사 용하고 있다.
하지만 오픈소스 빅데이터 분석 시스템의 경우 복잡한 쿼리를 사용하고 표준화된 쿼리가 없기 때문에 보안 분석 시 많은 어려움이 있는 문제가 있다.
대한민국 등록특허 제10-1544560 (등록일자 2015년08월07일) 대용량 데이터를 처리하기 위하여 SQL 파싱에 의한 2단계 쿼리 및 결과 캐싱을 이용한 온라인 분석 프로세싱 방법
따라서, 본 발명은 상술한 문제점을 해결하기 위해 안출된 것으로서, 보안 분석 시간을 대폭 감소시키고 관리 및 유지보수가 편리하도록 하는 오픈 소스 빅데이터 시스템에서 구조화된 언어로 통계 및 원본 데이터를 검색하는 방법 및 시스템을 제공하기 위한 것이다.
본 발명의 다른 목적들은 이하에 서술되는 바람직한 실시예를 통하여 보다 명확해질 것이다.
본 발명의 일 측면에 따르면, 검색 시스템에서 수행되는 오픈소스 빅데이터 시스템에서 통계 및 원본 데이터를 검색하는 방법에 있어서, 구조화된 언어로 작성된 쿼리를 입력받는 단계; 상기 쿼리를 빅데이터 분석 시스템에서 사용되는 형식으로 변환하는 단계; 변환된 쿼리로 상기 빅데이터 분석 시스템에서 검색을 수행하는 단계; 검색된 통계 및 원본 데이터를 CSV 포맷으로 변환하는 단계; 및 상기 CSV 포맷의 데이터를 상기 쿼리에 대한 응답으로 제공하는 단계를 포함하는, 구조화된 언어로 오픈소스 빅데이터 시스템에서 통계 및 원본 데이터를 검색하는 방법 및 그 방법을 실행하는 프로그램이 기록된 기록매체가 제공된다.
여기서, 상기 쿼리를 변환하는 단계는, 구조화된 언어를 분석하여 상기 쿼리를 단위모듈로 구분하는 단계; 및 구분된 단위모듈별로 변환DB를 참조하여 미리 정의된 기준에 의해 각각 변환하는 단계를 포함할 수 있다.
또한, 변환할 단위모듈에 상응하는 변환모듈이 상기 변환DB에 복수개가 존재하는 경우, 등록일자 또는 텍스트수를 이용하여 어느 하나의 변환모듈을 선택하여 변환할 수 있다.
또한, 변환할 단위모듈에 상응하는 변환모듈이 상기 변환DB에 존재하지 않는 경우, 설정된 하나 이상의 관리자 단말로는 해당하는 단위 모듈에 대한 정보를 실시간 전송하고, 최초 수신되는 변환모듈을 이용하여 변환을 수행할 수 있다.
또한, 상기 빅데이터 분석 시스템에서 검색을 수행할 때, 데이터를 그룹으로 나누어 받을 수 있도록 상기 변환된 쿼리에 검색조건을 추가할 수 있다.
또한, 상기 그룹의 수는 일정시간동안 입력되는 쿼리의 수를 이용하여 결정할 수 있다.
또한, 상기 빅데이터 분석 시스템으로부터 그룹화된 데이터가 수신되는 경우, 수신된 데이터에 상응하는 CSV 포맷의 데이터를 순번에 대한 정보와 함께 상기 쿼리에 대한 응답으로 제공할 수 있다.
본 발명의 다른 측면에 따르면, 구조화된 언어로 작성된 쿼리를 빅데이터 분석 시스템에서 사용되는 형식의 쿼리로 변환하는 쿼리변환부; 변환된 쿼리로 상기 빅데이터 분석 시스템에서 검색을 수행하는 검색부; 검색된 통계 및 원본 데이터를 CSV 포맷으로 변환하는 포맷변환부; 및 상기 CSV 포맷의 데이터를 상기 쿼리에 대한 응답으로 제공하는 인터페이스부를 포함하는, 구조화된 언어로 오픈소스 빅데이터 시스템에서 통계 및 원본 데이터를 검색하는 시스템이 제공된다.
여기서, 단위모듈에 대응되는 변환쿼리에 대한 정보를 저장하는 변환DB를 더 포함하되, 상기 쿼리변환부는 구조화된 언어를 분석하여 상기 쿼리를 단위모듈로 구분하고, 구분된 단위모듈별로 상기 변환DB를 참조하여 미리 정의된 기준에 의해 각각 변환할 수 있다.
또한, 상기 검색부는 데이터를 그룹별로 나누어 받을 수 있도록 상기 변환된 쿼리에 검색조건을 추가할 수 있다.
또한, 상기 그룹의 수는 일정시간동안 입력되는 쿼리의 수를 이용하여 결정할 수 있다.
본 발명에 따르면, 보안 데이터를 오픈소스 빅데이터 분석 시스템에 수집 및 저장하고 보안 분석 시스템에서 구조화된 언어를 통해서 쉽게 보안 데이터를 분석할 수 있게 함으로써, 보안 장비에서 매일 대량으로 쏟아지는 데이터를 보안 분석가가 쉽게 보안 룰을 작성해서 보안 업무 처리시간을 단축할 수 있고 보안 사고를 예방할 수 있으며, 상용 빅데이터 분석 시스템에 의존하지 않고 오픈소스 빅데이터 시스템을 사용해 보안 분석 시스템을 구성할 수 있기 때문에 전체적인 보안 관리 비용을 절약할 수 있는 효과가 있다.
도 1은 본 발명의 일 실시예에 따른 오픈 소스 빅데이터 시스템에서 구조화된 언어로 통계 및 원본 데이터를 검색하여 제공하는 전체 시스템을 개략적으로 도시한 구성도.
도 2는 본 발명의 일 실시예에 따른 검색 시스템의 구성을 도시한 기능블록도.
도 3은 본 발명의 일 실시예에 따른 검색 서비스 제공 과정을 도시한 흐름도.
도 4 및 도 5는 본 발명의 각 실시예에 따른 쿼리변환 과정을 도시한 흐름도들.
도 6 및 도 7은 본 발명의 일 실시예에 따른 데이터 분할수신을 위한 처리 과정을 도시한 흐름도 및 예시도.
도 8은 본 발명의 일 실시예에 따른 변환DB에 저장되는 변환정보를 예시한 테이블.
본 발명은 다양한 변경을 가할 수 있고 여러 가지 실시예를 가질 수 있는 바, 특정 실시예들을 도면에 예시하고 상세한 설명에 상세하게 설명하고자 한다. 그러나 이는 본 발명을 특정한 실시 형태에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다.
어떤 구성요소가 다른 구성요소에 "연결되어" 있다거나 "접속되어" 있다고 언급된 때에는, 그 다른 구성요소에 직접적으로 연결되어 있거나 또는 접속되어 있을 수도 있지만, 중간에 다른 구성요소가 존재할 수도 있다고 이해되어야 할 것이다. 반면에, 어떤 구성요소가 다른 구성요소에 "직접 연결되어" 있다거나 "직접 접속되어" 있다고 언급된 때에는, 중간에 다른 구성요소가 존재하지 않는 것으로 이해되어야 할 것이다.
제1, 제2 등의 용어는 다양한 구성요소들을 설명하는데 사용될 수 있지만, 상기 구성요소들은 상기 용어들에 의해 한정되어서는 안 된다. 상기 용어들은 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로만 사용된다. 예를 들어, 후술될 제1 임계값, 제2 임계값 등의 용어는 실질적으로는 각각 상이하거나 일부는 동일한 값인 임계값들로 미리 지정될 수 있으나, 임계값이라는 동일한 단어로 표현될 때 혼동의 여지가 있으므로 구분의 편의상 제1, 제2 등의 용어를 병기하기로 한다.
본 명세서에서 사용한 용어는 단지 특정한 실시예를 설명하기 위해 사용된 것으로, 본 발명을 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 명세서에서, "포함하다" 또는 "가지다" 등의 용어는 명세서상에 기재된 특징, 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.
또한, 각 도면을 참조하여 설명하는 실시예의 구성 요소가 해당 실시예에만 제한적으로 적용되는 것은 아니며, 본 발명의 기술적 사상이 유지되는 범위 내에서 다른 실시예에 포함되도록 구현될 수 있으며, 또한 별도의 설명이 생략될지라도 복수의 실시예가 통합된 하나의 실시예로 다시 구현될 수도 있음은 당연하다.
또한, 첨부 도면을 참조하여 설명함에 있어, 도면 부호에 관계없이 동일한 구성 요소는 동일하거나 관련된 참조부호를 부여하고 이에 대한 중복되는 설명은 생략하기로 한다. 본 발명을 설명함에 있어서 관련된 공지 기술에 대한 구체적인 설명이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우 그 상세한 설명을 생략한다.
도 1은 본 발명의 일 실시예에 따른 오픈 소스 빅데이터 시스템에서 구조화된 언어로 통계 및 원본 데이터를 검색하여 제공하는 전체 시스템을 개략적으로 도시한 구성도이다.
도 1을 참조하면, 전체 시스템은 빅데이터 분석 시스템(10), 검색 시스템(20) 및 고객 시스템(30)을 포함한다.
검색 시스템(20)은 고객 시스템(30)이 빅데이터 분석 시스템(10)으로의 검색을 수행함에 있어, 중개기능을 제공하는데, 특히 고객 시스템(30)에서 보다 쉬운 방식으로 검색조건(쿼리)을 입력하여 검색을 수행할 수 있도록 하는 서비스를 제공한다.
예를 들어, 고객 시스템(30)이 보안데이터를 분석하는 보안분석 시스템인 경우, 고객 시스템(30)은 보안데이터를 오픈소스인 빅데이터 분석 시스템(10)에 수집하여 저장하고, 차후 검색 시스템(20)을 통해 구조화된 언어를 이용하여 쉽게 보안 데이터를 검색하여 분석할 수 있게 된다.
다시 말해, 검색 시스템(20)은 고객 시스템(30)으로부터 구조화된 언어의 쿼리를 입력받으며, 해당 쿼리를 빅데이터 분석 시스템(10)에서 사용되는 형태로 변환하여 검색을 수행한다.
이러한 구조화된 언어는 입력의 편의성을 제공하게 되는데, 입력되는 쿼리의 종류에 따라 데이터 조회하는 부분, 데이터의 종류를 지정하는 부분, 데이터 범위를 지정하는 부분, 통계 데이터의 기준 키가 되는 부분으로 나누어지는데, 각 부분으로 구성된 구조화된 언어를 사용해서 고객은 간단한 언어로 쿼리를 입력할 수 있어 검색의 편의성을 제공할 수 있다.
빅데이터 분석 시스템(10)은 오픈소스로서 빅데이터 분석을 수행하는 시스템으로, 예를 들어 Elasticsearch가 있다. 해당 빅데이터 분석 시스템은 Lucene을 기반으로 하는 검색엔진으로서 방대한 양의 데이터를 신속하게, 거의 실시간( NRT, Near Real Time )으로 저장, 검색, 분석할 수 있다. 따라서, Elasticsearch는 보안 분석 시에 많이 사용하고 있다. Elasticsearch는 클러스터링을 기본으로 지원하기 때문에 Scale Out이 가능하고 Replica를 사용해서 고가용성을 확보했다. 그리고 Json 데이터를 지원하기 때문에 어떠한 데이터도 수집 및 분석이 가능하다. 그외 Restful API를 지원해서 다른 시스템에서 간단한 방법으로 접근해서 데이터를 입력 업데이트 검색 삭제가 가능하다.
이는 당업자에게는 자명할 것이므로, 더욱 상세한 설명은 생략한다.
상술한 바와 같이, 고객 시스템(30)은 빅데이터 분석 시스템(10)에 데이터를 저장관리하며, 검색 시스템(20)을 이용하여 검색을 수행하는 고객의 시스템을 말하는 것이다.
도 2는 본 발명의 일 실시예에 따른 검색 시스템(20)의 구성을 도시한 기능블록도이고, 도 8은 본 발명의 일 실시예에 따른 변환DB에 저장되는 변환정보를 예시한 테이블이다.
도 2를 참조하면, 검색 시스템(20)은 인터페이스부(210), 쿼리변환부(220), 변환DB(230), 검색부(240) 및 포맷변환부(250)를 포함한다.
인터페이스부(210)는 고객 시스템(30)으로 사용 인터페이스를 제공하기 위한 것으로, 예를 들어 쿼리의 입력 및 그에 따른 검색결과의 확인을 위한 인터페이스 화면(UI)을 제공한다.
쿼리변환부(220)는 구조화된 언어로 작성된 쿼리를 빅데이터 분석 시스템(10)에서 사용되는 형식의 쿼리로 변환한다.
일례에 따르면, 쿼리를 최소단위의 단위모듈로 구분하고, 그에 상응하는 변환모듈로 변환한다.
이해의 편의를 위해 하나의 예를 들면, 입력 쿼리가 [estats avg(rcvdbyte), sum(rcvdbyte) c from fw by srcip]라 가정한다. 단위모듈은 예약어로 구분될 수 있는데, 예를 들어 위 쿼리에서는 예약어는 [estats, from, by]이다.
그리고, 구분자(“,”) 기준으로 분리한 후, 후에 변환 시 공백으로 분리한다.
다음으로, 도 8을 함께 참조하면, 예약어를 사용해서 각 단위모듈에 대한 변환 특성을 정의하는데, [estats는 aggreagtion function 사용], [from은 index 이름 추출 후 오픈소스 빅데이터 분석 시스템(10)에 검색 요청 시 사용], [by : aggregation key 지정]으로 처리한다.
단위모듈의 특성에 따른 변환모듈을 선택하여 변환 이후, 이를 조합하여 새로운 쿼리(즉 변환된 쿼리)를 생성하는 것이다.
상술한 쿼리에 대한 변환된 쿼리는 다음과 같이 생성된다.
{'query': 'aggs': {'comp': {'composite': {'sources': [{'srcip': {'terms': {'field': 'srcip', 'missing_bucket': True}}}]}, 'aggs': {'avg(rcvdbyte)': {'avg': {'field': 'rcvdbyte'}}, 'sum(rcvdbyte) c': {'sum': {'field': 'rcvdbyte'}}}}}}
변환DB(230)에는 쿼리변환부(220)가 쿼리를 변환하기 위한 데이터(도 8과 같은 정보)가 저장된다.
검색부(240)는 변환된 쿼리를 이용하여 빅데이터 분석 시스템(10)에서 자료를 검색하는 기능을 수행하며, 포맷변환부(250)는 빅데이터 분석 시스템(10)으로부터 수신된 쿼리에 대한 검색된 통계 및 원본데이터를 고객 시스템(30)에 맞게 변환한다.
포맷변환부(250)는 검색된 데이터(통계 및 원본 데이터)를 CSV포맷으로 변환한다.
통상 검색을 통해서 획득한 데이터는 Json 또는 XML 형태의 데이터로 존재하기 때문에 데이터 포맷을 표준화시키기 위해 CSV 형태의 데이터로 변환하는 것이다. Json 또는 XML 데이터를 CSV로 변환할 때 구조화된 언어 작성 된 쿼리의 필드 선택부분에서 지정된 필드만 Json 또는 XML 데이터에서 추출하여 CSV포맷으로 변환한다. Json 또는 XML 포맷은 트리 구조이기 때문에 고객 시스템(30)에서 바로 사용할 수 없으므로, 바로 사용할 수 있는 CSV 형태로 변경하는 것이다.
CSV에 대해 간략히 설명하자면, CSV(영어: comma-separated values)는 몇 가지 필드를 쉼표(,)로 구분한 텍스트 데이터 및 텍스트 파일이다. 확장자는 .csv이며 MIME 형식은 text/csv이다. comma-separated variables라고도 한다.
도 3은 본 발명의 일 실시예에 따른 검색 서비스 제공 과정을 도시한 흐름도이고, 도 4 및 도 5는 본 발명의 각 실시예에 따른 쿼리변환 과정을 도시한 흐름도들이다.
검색 시스템(20)에서의 처리 과정을 도시한 도 3을 함께 참조하면, 검색 시스템(20)은 구조화된 언어로 작성된 쿼리를 입력받으면(S310), 입력된 쿼리를 빅데이터 분석 시스템(10)에서 사용되는 형식으로 변환한다(S320).
변환된 쿼리로 빅데이터 분석 시스템(10)에서 검색을 수행하며(S330), 검색된 통계 및 원본 데이터를 CSV 포맷으로 변환한다(S340).
그리고, CSV 포맷의 데이터를 쿼리에 대한 응답으로 고객 시스템(30)으로 제공한다(S350).
여기서, 상술한 바와 같이 쿼리의 변환 과정은, 쿼리를 단위모듈로 분할하고, 그에 대응되는 변환모듈로 변환한 이후 조합함으로써 수행할 수 있다.
일례에 따른 S320에서의 상세 처리 과정을 도시한 도 4를 참조하면, 쿼리를 단위모듈로 분할한다(S321). 전술하였으나 입력된 쿼리를 분석하여 예약어를 확인하고, 예약어 및/또는 구분자(콤마(,) 등)를 기반으로 단위모듈을 구분한다.
그리고, 단위모듈 각각에 대해 대응되는 변환모듈을 탐색 및 선택하고, 선택된 변환모듈을 조합하여 변환쿼리를 생성한다(S322).
즉, 각 예약어에 상응하는 변환 특성에 따른 변환모듈을 이용하여 단위모듈별로 변환하며, 변환된 것들을 조합하여 변환쿼리를 생성하는 것이다.
각 단위모듈에 상응하는 하나의 변환모듈이 존재하는 경우엔 해당 변환모듈로 변환하면 되나, 만일 복수개의 변환모듈이 존재하거나 전혀 존재하지 않는 경우가 발생할 수도 있다.
이러한 경우의 처리 과정을 도시한 도 5를 참조하면, 검색 시스템(20)은 쿼리를 단위모듈로 구분하고(S510), 각각의 단위모듈에 대응되는 변환모듈을 변환DB에서 검색한다(S520).
단위모듈 각각의 검색 결과, 검색된 변환모듈이 복수개인지 여부를 판단한다(S530).
복수개인 경우, 변환DB로의 등록일자 또는 텍스트 개수를 이용하여 어느 하나를 선택하여 변환한다(S540). 예를 들어, 가장 최근에 등록된 것 또는 텍스트 개수가 가장 적은 변환모듈이 선택될 수 있다.
이와 달리 복수개가 아닌 경우로서, 하나의 변환모듈이 존재하는 경우 해당 변환모듈로 변환하며, 0개(즉 존재하지 않는 경우)인 경우엔 미리 설정된 하나 이상의 관리자 단말로 해당 정보(해당하는 단위모듈에 대한 정보, 또는 전체 입력 쿼리에 대한 정보)를 실시간으로 전송한다(S550). 관리자는 검색 시스템(20)으로부터 변환되지 못하는 단위모듈에 대한 정보가 수신되는 경우, 실시간으로 이를 확인하고 변환정보를 제공함으로써, 검색 시스템(20)이 최대한 빠른 시간내로 모든 단위모듈을 변환할 수 있도록 한다.
도 6 및 도 7은 본 발명의 일 실시예에 따른 데이터 분할수신을 위한 처리 과정을 도시한 흐름도 및 예시도이다.
본 실시예에서는 빅데이터 분석 시스템(10)이 많은 양의 데이터를 처리함으로 인해 부하가 발생될 수 있으며, 고객 시스템(30)에서는 최대한 빠른 시간내로 응답을 받아볼 수 있도록 하기 위해, 데이터를 분할하여 제공하는 방안을 제안한다.
도 7과 같이, 쿼리에 따른 응답 데이터를 3번에 나누어서 제공함으로써, 고객 시스템(30)은 보다 빠른 시간에 먼저 데이터의 일부를 받아서 처리할 수 있게 된다.
즉, 검색 시스템(20)은 빅데이터 분석 시스템(10)으로부터 그룹화된 데이터(즉, 데이터를 그룹화하여 나누어서 전송)가 수신되는 경우, 수신된 데이터에 상응하는 CSV 포맷의 데이터를 순번에 대한 정보와 함께 쿼리에 대한 응답으로 고객 시스템(30)으로 제공하는 것이다.
이에 대한 처리 과정을 도시한 도 6을 참조하면, 검색 시스템(20)은 일정 시간동안 입력된 쿼리의 개수를 이용하여 그룹의 수를 결정한다(S331). 이해의 편의를 위해 예를 들면, 지난 1시간동안 1,000개의 쿼리가 입력된 경우 그룹의 수를 3으로, 1시간동안 2000개 이상이 입력된 경우엔 그룹의 수를 4로 설정한다. 동일한 시간동안 입력된 쿼리의 수가 많다는 것은 빅데이터 분석 시스템(10)에서의 처리량이 많다는 것을 의미하므로, 이때에는 쿼리에 따른 응답이 늦을 수 있으므로 응답 데이터를 많이 나누어 보내도록 하는 것이다.
검색 시스템(20)은 결정된 그룹의 수로 데이터를 나누어받을 수 있도록, 변환쿼리에 검색조건을 더 추가하여(S332), 검색을 수행한다(S333).
일례에 따르면, 추가되는 검색 조건으로 LIMIT를 사용할 수 있다. 쿼리 마지막에 “LIMIT 1, 30” 을 지정하면 전체 데이터 셋에서 1부터 시작해서 30개만 가져올 수 있다. 또한, LIMIT 30, 30을 지정하면 30번째 부터 30개를 가져올 수 있다. 이러한 LIMIT를 이용하여, 받고자 하는 데이터 셋의 총 개수를 알면, 그룹수에 따라 각 그룹에서 받을 데이터 셋의 개수를 결정하여 검색 조건을 추가한다.
상기에서는 본 발명의 바람직한 실시예를 참조하여 설명하였지만, 해당 기술 분야에서 통상의 지식을 가진 자라면 하기의 특허 청구의 범위에 기재된 본 발명의 사상 및 영역으로부터 벗어나지 않는 범위 내에서 본 발명을 다양하게 수정 및 변경시킬 수 있음을 이해할 수 있을 것이다.
10 : 빅데이터 분석 시스템
20 : 검색 시스템
30 : 고객 시스템

Claims (12)

  1. 검색 시스템에서 수행되는 오픈소스 빅데이터 시스템에서 통계 및 원본 데이터를 검색하는 방법에 있어서,
    구조화된 언어로 작성된 쿼리를 입력받는 단계;
    상기 쿼리를 빅데이터 분석 시스템에서 사용되는 형식으로 변환하는 단계;
    변환된 쿼리로 상기 빅데이터 분석 시스템에서 검색을 수행하되, 데이터를 그룹으로 나누어 받을 수 있도록 상기 변환된 쿼리에 검색조건을 추가하는 단계;
    검색된 통계 및 원본 데이터를 CSV 포맷으로 변환하는 단계; 및
    상기 CSV 포맷의 데이터를 상기 쿼리에 대한 응답으로 제공하는 단계를 포함하되,
    상기 빅데이터 분석 시스템으로부터 그룹화된 데이터가 수신되는 경우, 수신된 데이터에 상응하는 CSV 포맷의 데이터를 순번에 대한 정보와 함께 상기 쿼리에 대한 응답으로 제공하는, 구조화된 언어로 오픈소스 빅데이터 시스템에서 통계 및 원본 데이터를 검색하는 방법.
  2. 청구항 1에 있어서,
    상기 쿼리를 변환하는 단계는,
    구조화된 언어를 분석하여 상기 쿼리를 단위모듈로 구분하는 단계; 및
    구분된 단위모듈별로 변환DB를 참조하여 미리 정의된 기준에 의해 각각 변환하는 단계를 포함하는, 구조화된 언어로 오픈소스 빅데이터 시스템에서 통계 및 원본 데이터를 검색하는 방법.
  3. 청구항 2에 있어서,
    변환할 단위모듈에 상응하는 변환모듈이 상기 변환DB에 복수개가 존재하는 경우, 등록일자 또는 텍스트수를 이용하여 어느 하나의 변환모듈을 선택하여 변환하는, 구조화된 언어로 오픈소스 빅데이터 시스템에서 통계 및 원본 데이터를 검색하는 방법.
  4. 청구항 3에 있어서,
    변환할 단위모듈에 상응하는 변환모듈이 상기 변환DB에 존재하지 않는 경우, 설정된 하나 이상의 관리자 단말로는 해당하는 단위 모듈에 대한 정보를 실시간 전송하고, 최초 수신되는 변환모듈을 이용하여 변환을 수행하는, 구조화된 언어로 오픈소스 빅데이터 시스템에서 통계 및 원본 데이터를 검색하는 방법.
  5. 삭제
  6. 청구항 1에 있어서,
    상기 그룹의 수는 일정시간동안 입력되는 쿼리의 수를 이용하여 결정하는, 구조화된 언어로 오픈소스 빅데이터 시스템에서 통계 및 원본 데이터를 검색하는 방법.
  7. 삭제
  8. 제 1항의 방법을 수행하기 위한 컴퓨터에 의해 실행되는 애플리케이션이나 프로그램 모듈과 같은 컴퓨터에 의해 실행 가능한 명령어를 포함하는 기록 매체.
  9. 구조화된 언어로 작성된 쿼리를 빅데이터 분석 시스템에서 사용되는 형식의 쿼리로 변환하는 쿼리변환부;
    변환된 쿼리로 상기 빅데이터 분석 시스템에서 검색을 수행하되, 데이터를 그룹으로 나누어 받을 수 있도록 상기 변환된 쿼리에 검색조건을 추가하는 검색부;
    검색된 통계 및 원본 데이터를 CSV 포맷으로 변환하는 포맷변환부; 및
    상기 CSV 포맷의 데이터를 상기 쿼리에 대한 응답으로 제공하는 인터페이스부를 포함하되,
    상기 빅데이터 분석 시스템으로부터 그룹화된 데이터가 수신되는 경우, 수신된 데이터에 상응하는 CSV 포맷의 데이터가 순번에 대한 정보와 함께 상기 쿼리에 대한 응답으로 제공되는, 구조화된 언어로 오픈소스 빅데이터 시스템에서 통계 및 원본 데이터를 검색하는 시스템.
  10. 청구항 9에 있어서,
    단위모듈에 대응되는 변환쿼리에 대한 정보를 저장하는 변환DB를 더 포함하되,
    상기 쿼리변환부는 구조화된 언어를 분석하여 상기 쿼리를 단위모듈로 구분하고, 구분된 단위모듈별로 상기 변환DB를 참조하여 미리 정의된 기준에 의해 각각 변환하는, 구조화된 언어로 오픈소스 빅데이터 시스템에서 통계 및 원본 데이터를 검색하는 시스템.
  11. 삭제
  12. 청구항 9에 있어서,
    상기 그룹의 수는 일정시간동안 입력되는 쿼리의 수를 이용하여 결정하는, 구조화된 언어로 오픈소스 빅데이터 시스템에서 통계 및 원본 데이터를 검색하는 시스템.
KR1020200020484A 2020-02-19 2020-02-19 오픈 소스 빅데이터 시스템에서 구조화된 언어로 통계 및 원본 데이터를 검색하는 방법 및 시스템 KR102346289B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020200020484A KR102346289B1 (ko) 2020-02-19 2020-02-19 오픈 소스 빅데이터 시스템에서 구조화된 언어로 통계 및 원본 데이터를 검색하는 방법 및 시스템

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020200020484A KR102346289B1 (ko) 2020-02-19 2020-02-19 오픈 소스 빅데이터 시스템에서 구조화된 언어로 통계 및 원본 데이터를 검색하는 방법 및 시스템

Publications (2)

Publication Number Publication Date
KR20210105699A KR20210105699A (ko) 2021-08-27
KR102346289B1 true KR102346289B1 (ko) 2022-01-03

Family

ID=77504645

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020200020484A KR102346289B1 (ko) 2020-02-19 2020-02-19 오픈 소스 빅데이터 시스템에서 구조화된 언어로 통계 및 원본 데이터를 검색하는 방법 및 시스템

Country Status (1)

Country Link
KR (1) KR102346289B1 (ko)

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101977107B1 (ko) * 2018-11-26 2019-05-10 (주)시큐레이어 Lucene 데이터베이스에 대한 쿼리를 분석하여 계층형 구조의 UI로 표현하는 방법 및 장치
KR102067032B1 (ko) * 2019-08-28 2020-01-15 주식회사 엣지온 하이브리드 빅데이터 시스템 기반 데이터 처리 방법 및 시스템

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101119179B1 (ko) * 2010-06-24 2012-06-12 (주)미디어포스 데이터베이스에 접근하기 위한 구조화 질의어를 정형화 포맷에 적용하는 시스템
KR101544560B1 (ko) 2014-04-02 2015-08-17 (주)비아이매트릭스 대용량 데이터를 처리하기 위하여 sql 파싱에 의한 2단계 쿼리 및 결과 캐싱을 이용한 온라인 분석 프로세싱 방법
KR20170053013A (ko) * 2015-11-05 2017-05-15 주식회사 나눔기술 빅데이터 분석을 위한 데이터 가상화 시스템

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101977107B1 (ko) * 2018-11-26 2019-05-10 (주)시큐레이어 Lucene 데이터베이스에 대한 쿼리를 분석하여 계층형 구조의 UI로 표현하는 방법 및 장치
KR102067032B1 (ko) * 2019-08-28 2020-01-15 주식회사 엣지온 하이브리드 빅데이터 시스템 기반 데이터 처리 방법 및 시스템

Also Published As

Publication number Publication date
KR20210105699A (ko) 2021-08-27

Similar Documents

Publication Publication Date Title
US10367827B2 (en) Using network locations obtained from multiple threat lists to evaluate network data or machine data
US11228595B2 (en) Evaluating security of data access statements
CN102918534B (zh) 查询管道
CN106778253A (zh) 基于大数据的威胁情景感知信息安全主动防御模型
US20180285596A1 (en) System and method for managing sensitive data
CN105556552A (zh) 欺诈探测和分析
US20140136515A1 (en) Method and system for managing database
CN112052138A (zh) 业务数据质量检测方法、装置、计算机设备及存储介质
WO2012041657A1 (en) Generating candidate entities using over frequent keys
KR20150009798A (ko) 개인 정보 상시 감시 시스템 및 그 상시 감시 방법
US8965879B2 (en) Unique join data caching method
CN108287901A (zh) 用于生成信息的方法和装置
CN111488594A (zh) 一种基于云服务器的权限检查方法、装置、存储介质及终端
Fehling-Kaschek et al. A systematic tabular approach for risk and resilience assessment and Improvement in the telecommunication industry
CN107341274A (zh) 一种全文搜索引擎及数据检索方法
KR102346289B1 (ko) 오픈 소스 빅데이터 시스템에서 구조화된 언어로 통계 및 원본 데이터를 검색하는 방법 및 시스템
CN113626865A (zh) 一种防止泄露敏感信息的数据共享开放方法及系统
US20230017839A1 (en) Risk analysis result display apparatus, method, and computer readable media
KR101161648B1 (ko) 데이터베이스 서버의 조작이력 생성 시스템 및 방법
US20120330923A1 (en) Value-based positioning for outer join queries
KR102025813B1 (ko) 사건 흐름 정보를 제공하기 위한 연대순 정보 기반 큐레이션 장치 및 그것의 제어방법
Masouleh et al. Optimization of ETL process in data warehouse through a combination of parallelization and shared cache memory
CN104216986B (zh) 以数据更新周期进行预操作提高数据查询效率的装置及方法
US11580251B1 (en) Query-based database redaction
KR20180071699A (ko) 개인 정보 온라인 감시 시스템 및 방법

Legal Events

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