KR102425595B1 - 실시간으로 데이터를 처리하는 인메모리 컴퓨팅을 기반으로 검색 및 분석을 수행하는 시스템, 분석 방법, 및 컴퓨터 프로그램 - Google Patents

실시간으로 데이터를 처리하는 인메모리 컴퓨팅을 기반으로 검색 및 분석을 수행하는 시스템, 분석 방법, 및 컴퓨터 프로그램 Download PDF

Info

Publication number
KR102425595B1
KR102425595B1 KR1020200185862A KR20200185862A KR102425595B1 KR 102425595 B1 KR102425595 B1 KR 102425595B1 KR 1020200185862 A KR1020200185862 A KR 1020200185862A KR 20200185862 A KR20200185862 A KR 20200185862A KR 102425595 B1 KR102425595 B1 KR 102425595B1
Authority
KR
South Korea
Prior art keywords
content
analysis
search
memory
data
Prior art date
Application number
KR1020200185862A
Other languages
English (en)
Other versions
KR20220094551A (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 KR1020200185862A priority Critical patent/KR102425595B1/ko
Publication of KR20220094551A publication Critical patent/KR20220094551A/ko
Priority to KR1020220090065A priority patent/KR102465391B1/ko
Application granted granted Critical
Publication of KR102425595B1 publication Critical patent/KR102425595B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/903Querying
    • G06F16/90335Query processing
    • G06F16/90339Query processing by using parallel associative memories or content-addressable memories
    • 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/24532Query optimisation of parallel queries
    • 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/2465Query processing support for facilitating data mining operations in structured databases
    • 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/2477Temporal data queries
    • 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/27Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
    • 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/28Databases characterised by their database models, e.g. relational or object models
    • G06F16/284Relational databases
    • G06F16/285Clustering or classification

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Computational Linguistics (AREA)
  • Fuzzy Systems (AREA)
  • Mathematical Physics (AREA)
  • Probability & Statistics with Applications (AREA)
  • Software Systems (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Computing Systems (AREA)

Abstract

인메모리 컴퓨팅 기반 시스템의 분석 방법이 개시된다. 본 분석 방법은, 실시간으로 획득되는 데이터를 시간에 따른 복수의 콘텐츠 그룹으로 구분하여 메모리에 저장하는 단계, 복수의 콘텐츠 그룹 각각을 적어도 하나의 인덱스 키워드에 따라 전처리하여 복수의 분석 콘텐츠를 획득하는 단계, 적어도 하나의 검색어 및 조건이 입력되면, 복수의 코어가 복수의 콘텐츠 그룹에 대하여 병렬 처리 방식으로 검색을 수행하여 적어도 하나의 콘텐츠를 식별하는 단계, 식별된 콘텐츠에 매칭되는 적어도 하나의 분석 콘텐츠를 이용하여 분석을 수행하는 단계를 포함한다.

Description

실시간으로 데이터를 처리하는 인메모리 컴퓨팅을 기반으로 검색 및 분석을 수행하는 시스템, 분석 방법, 및 컴퓨터 프로그램 { SYSTEM FOR PERFORMING SEARCHING AND ANALYSIS BASED ON IN-MEMORY COMPUTING FOR REAL-TIME DATA PROCESSING, ANALYSIS METHOD, AND COMPUTER PROGRAM }
본 개시는 인메모리 컴퓨팅을 기반으로 동작하는 시스템에 관한 것으로, 보다 상세하게는, 인메모리 컴퓨팅에 따라 실시간으로 데이터를 구축하여 분석 속도를 향상시키는 시스템에 관한 것이다.
실시간 및/또는 대용량의 빅데이터를 처리함에 있어 인메모리 컴퓨팅 방식이 고안된 바 있다.
인메모리 컴퓨팅 방식은, 대부분의 데이터가 하드 디스크에 저장되어 이용된 결과 데이터의 입출력에 많은 시간이 소모되었던 기존의 방식을 탈피하여, 램으로 구성된 메모리 내에 데이터를 직접 저장하여 코어가 해당 데이터를 빠르게 처리/가공하도록 하는 방식이다.
인메모리 컴퓨팅 방식의 경우, 복수의 코어가 로드를 효율적으로 나누어 메모리 내 데이터를 병렬 처리함으로써 처리 속도가 빨라질 수 있다.
공개특허공보 제10-2019-0005578호(2019.01.16)
본 개시는 인메모리 컴퓨팅을 기반으로 메모리 내 데이터를 사전에 분류 및 전처리하여 검색 및 분석 동작의 속도를 향상시키는 시스템 및 분석 방법을 제공한다.
본 개시의 목적들은 이상에서 언급한 목적으로 제한되지 않으며, 언급되지 않은 본 개시의 다른 목적 및 장점들은 하기의 설명에 의해서 이해될 수 있고, 본 개시의 실시 예에 의해 보다 분명하게 이해될 것이다. 또한, 본 개시의 목적 및 장점들은 특허 청구 범위에 나타낸 수단 및 그 조합에 의해 실현될 수 있음을 쉽게 알 수 있을 것이다.
본 개시의 일 실시 예에 따른 인메모리 컴퓨팅 기반 시스템의 분석 방법은, 실시간으로 획득되는 데이터를 시간에 따른 복수의 콘텐츠 그룹으로 구분하여 메모리에 저장하는 단계, 상기 복수의 콘텐츠 그룹 각각을 적어도 하나의 인덱스 키워드에 따라 전처리하여 복수의 분석 콘텐츠를 획득하는 단계, 적어도 하나의 검색어 및 조건이 입력되면, 복수의 코어가 상기 복수의 콘텐츠 그룹에 대하여 병렬 처리 방식으로 검색을 수행하여 적어도 하나의 콘텐츠를 식별하는 단계, 상기 식별된 콘텐츠에 매칭되는 적어도 하나의 분석 콘텐츠를 이용하여 분석을 수행하는 단계를 포함한다.
상기 복수의 분석 콘텐츠를 획득하는 단계는, 상기 인덱스 키워드의 출현 빈도, 상기 인덱스 키워드의 출현 순서, 상기 인덱스 키워드에 따른 분류 정보, 및 상기 인덱스 키워드에 기초한 패턴 정보 중 적어도 하나를 기반으로, 상기 복수의 콘텐츠 그룹 각각을 전처리할 수 있다.
그리고, 상기 적어도 하나의 콘텐츠를 식별하는 단계는, 상기 복수의 콘텐츠 그룹 중 적어도 하나의 콘텐츠 그룹의 데이터 사이즈가 상기 복수의 코어 각각의 검색 성능에 따라 기설정된 데이터 사이즈보다 큰 경우, 상기 콘텐츠 그룹을 분할하여 병렬 처리 방식으로 검색을 수행할 수 있다.
한편, 상기 시스템의 분석 방법은, 일 코어를 통해 수행된 검색에 따라 복수의 콘텐츠가 식별된 경우, 상기 복수의 콘텐츠를 기설정된 개수 단위로 분할하여 복수의 콘텐츠 리스트를 생성하는 단계를 더 포함할 수 있다. 이 경우, 상기 분석을 수행하는 단계는, 복수의 코어가, 상기 생성된 복수의 콘텐츠 리스트를 병렬 처리 방식으로 분석할 수 있다.
이 경우, 상기 시스템의 분석 방법은, 상기 복수의 콘텐츠 리스트 각각에 대한 분석 결과를 병합하는 단계를 더 포함할 수도 있다.
한편, 상기 시스템의 분석 방법은, 상기 복수의 콘텐츠 그룹 및 상기 복수의 분석 콘텐츠에 대한 백업 정보를 적어도 하나의 스토리지에 저장하는 단계, 상기 시스템이 부팅되는 경우, 상기 백업 정보를 기반으로 상기 복수의 콘텐츠 그룹 및 상기 복수의 분석 콘텐츠를 상기 메모리로 로드하는 단계를 더 포함할 수 있다.
상기 복수의 분석 콘텐츠를 획득하는 단계는, 상기 실시간으로 획득되는 데이터의 증가 속도, 상기 시스템에 포함된 코어의 수, 및 각 코어의 성능에 따라 설정된 주기를 기반으로, 상기 데이터가 구분된 복수의 콘텐츠 그룹 각각을 적어도 하나의 인덱스 키워드에 따라 전처리하여 복수의 분석 콘텐츠를 획득할 수 있다.
한편, 상기 시스템의 분석 방법은, 검색어 및 조건이 입력되어 상기 시스템을 통해 검색이 수행되는 적어도 하나의 시간 구간을 식별하는 단계, 상기 식별된 시간 구간을 기반으로, 검색이 수행되는 시간 구간에 대한 패턴을 생성하는 단계, 상기 생성된 패턴을 기반으로, 검색이 수행될 가능성이 가장 낮은 적어도 하나의 시간 구간을 선택하는 단계를 더 포함할 수 있다. 이 경우, 상기 복수의 분석 콘텐츠를 획득하는 단계는, 상기 선택된 시간 구간 동안, 상기 데이터가 구분된 복수의 콘텐츠 그룹 각각을 적어도 하나의 인덱스 키워드에 따라 전처리하여 복수의 분석 콘텐츠를 획득할 수 있다.
본 개시의 일 실시 예에 따른 인메모리 컴퓨팅 기반 시스템은, 적어도 하나의 메모리, 상기 적어도 하나의 메모리와 연결된 적어도 하나의 프로세서를 포함한다. 상기 프로세서는, 실시간으로 획득되는 데이터를 시간에 따른 복수의 콘텐츠 그룹으로 구분하여 상기 메모리에 저장하고, 상기 복수의 콘텐츠 그룹 각각을 적어도 하나의 인덱스 키워드에 따라 전처리하여 복수의 분석 콘텐츠를 획득하고, 적어도 하나의 검색어 및 조건이 입력되면, 복수의 코어를 통해 상기 복수의 콘텐츠 그룹에 대하여 병렬 처리 방식으로 검색을 수행하여 적어도 하나의 콘텐츠를 식별하고, 상기 식별된 콘텐츠에 매칭되는 적어도 하나의 분석 콘텐츠를 이용하여 분석을 수행한다.
본 개시에 따른 인메모리 컴퓨팅 기반 시스템 및 분석 방법은, 실시간으로 획득되는 데이터를 병렬 처리 방식에 맞도록 분류 및 전처리하여 메모리 내에 저장함으로써, 병렬 처리 방식의 검색 및 분석 과정이 빨라질 수 있다는 효과가 있다.
도 1은 본 개시의 일 실시 예에 따른 시스템의 동작을 개략적으로 설명하기 위한 도면,
도 2는 본 개시의 일 실시 예에 따른 시스템의 구성을 설명하기 위한 블록도,
도 3은 본 개시의 일 실시 예에 따른 시스템의 동작을 설명하기 위한 알고리즘,
도 4는 본 개시의 일 실시 예에 따른 시스템이 데이터를 분류 및 전처리하는 동작을 설명하기 위한 도면,
도 5는 본 개시의 일 실시 예에 따른 시스템이 복수의 코어를 통해 병렬 처리 방식으로 검색을 수행하는 동작을 설명하기 위한 도면,
도 6은 본 개시의 일 실시 예에 따른 시스템이 복수의 코어를 통해 병렬 처리 방식으로 분석을 수행하는 동작을 설명하기 위한 도면, 그리고
도 7은 본 개시의 일 실시 예에 따른 시스템의 기능적 구성을 설명하기 위한 블록도이다.
본 개시에 대하여 구체적으로 설명하기에 앞서, 본 명세서 및 도면의 기재 방법에 대하여 설명한다.
먼저, 본 명세서 및 청구범위에서 사용되는 용어는 본 개시의 다양한 실시 예들에서의 기능을 고려하여 일반적인 용어들을 선택하였다. 하지만, 이러한 용어들은 당해 기술 분야에 종사하는 기술자의 의도나 법률적 또는 기술적 해석 및 새로운 기술의 출현 등에 따라 달라질 수 있다. 또한, 일부 용어는 출원인이 임의로 선정한 용어도 있다. 이러한 용어에 대해서는 본 명세서에서 정의된 의미로 해석될 수 있으며, 구체적인 용어 정의가 없으면 본 명세서의 전반적인 내용 및 당해 기술 분야의 통상적인 기술 상식을 토대로 해석될 수도 있다.
또한, 본 명세서에 첨부된 각 도면에 기재된 동일한 참조번호 또는 부호는 실질적으로 동일한 기능을 수행하는 부품 또는 구성요소를 나타낸다. 설명 및 이해의 편의를 위해서 서로 다른 실시 예들에서도 동일한 참조번호 또는 부호를 사용하여 설명한다. 즉, 복수의 도면에서 동일한 참조 번호를 가지는 구성요소를 모두 도시되어 있다고 하더라도, 복수의 도면들이 하나의 실시 예를 의미하는 것은 아니다.
또한, 본 명세서 및 청구범위에서는 구성요소들 간의 구별을 위하여 "제1", "제2" 등과 같이 서수를 포함하는 용어가 사용될 수 있다. 이러한 서수는 동일 또는 유사한 구성요소들을 서로 구별하기 위하여 사용하는 것이며 이러한 서수 사용으로 인하여 용어의 의미가 한정 해석되어서는 안 된다. 일 예로, 이러한 서수와 결합된 구성요소는 그 숫자에 의해 사용 순서나 배치 순서 등이 제한되어서는 안 된다. 필요에 따라서는, 각 서수들은 서로 교체되어 사용될 수도 있다.
본 명세서에서 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 출원에서, "포함하다" 또는 "구성되다" 등의 용어는 명세서상에 기재된 특징, 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.
본 개시의 실시 예에서 "모듈", "유닛", "부(part)" 등과 같은 용어는 적어도 하나의 기능이나 동작을 수행하는 구성요소를 지칭하기 위한 용어이며, 이러한 구성요소는 하드웨어 또는 소프트웨어로 구현되거나 하드웨어 및 소프트웨어의 결합으로 구현될 수 있다. 또한, 복수의 "모듈", "유닛", "부(part)" 등은 각각이 개별적인 특정한 하드웨어로 구현될 필요가 있는 경우를 제외하고는, 적어도 하나의 모듈이나 칩으로 일체화되어 적어도 하나의 프로세서로 구현될 수 있다.
또한, 본 개시의 실시 예에서, 어떤 부분이 다른 부분과 연결되어 있다고 할 때, 이는 직접적인 연결뿐 아니라, 다른 매체를 통한 간접적인 연결의 경우도 포함한다. 또한, 어떤 부분이 어떤 구성요소를 포함한다는 의미는, 특별히 반대되는 기재가 없는 한 다른 구성요소를 제외하는 것이 아니라 다른 구성요소를 더 포함할 수 있는 것을 의미한다.
도 1은 본 개시의 일 실시 예에 따른 시스템의 동작을 개략적으로 설명하기 위한 도면이다.
도 1을 참조하면, 본 개시에 따른 시스템은, 다양한 외부 데이터(External Data)를 획득할 수 있다.
구체적으로, 시스템은 다양한 방식의 유/무선 네트워크를 통해 SNS 콘텐츠, 뉴스 콘텐츠, 공공 데이터, 기타 텍스트 등 다양한 데이터를 획득할 수 있다.
또한, 시스템은 해당 데이터를 실시간으로 수집하여 실시간으로 확장되는 대용량의 빅데이터를 구축할 수 있다.
그리고, 시스템은 메모리 상에 데이터를 저장하는 한편, 메모리를 이용하여 해당 데이터를 전처리하고, 구분하고, 인덱싱하는 등 다양한 처리를 수행할 수 있다. 데이터가 실시간으로 획득됨에 따라 해당 처리 역시 실시간으로(또는 특정 주기/조건에 따라) 수행될 수 있다.
여기서, 시스템은 전처리, 구분 또는 인덱싱 등의 처리가 수행된 데이터를 메모리에 저장할 수 있다.
그리고, 시스템은 해당 데이터를 병렬 처리 방식으로 취급하여 검색을 수행할 수 있다. 구체적으로, 시스템은 데이터가 구분된 복수의 서브 데이터 각각에 대하여 각 코어를 이용한 검색을 수행할 수 있다.
이 경우, 시스템은 키워드 기반 검색, 분류 기반 검색, 패턴 기반 검색 등 다양한 검색 기술을 이용할 수 있다.
또한, 시스템은 검색 결과 획득된 콘텐츠에 대하여 다양한 분석을 수행할 수도 있다. 이를 위해, 시스템은 다양한 기능/서비스를 제공하는 모듈들을 이용할 수 있다.
이때, 모듈들 각각을 실행하는 코어들이 해당 콘텐츠를 병렬 처리 방식으로 분석할 수 있으며, 검색 또는 분석의 결과가 모듈들 간에 서로 공유\될 수도 있다. 이 경우, 분석 결과가 시스템의 메모리 내에 저장될 수 있다.
그리고, 시스템은 검색 결과 및/또는 분석 결과를 제공할 수 있다. 이때, 시스템에 연결된 출력 장치를 통해 검색 결과 및/또는 분석 결과가 제공될 수도 있고, 시스템이 접속된 네트워크에 포함된 적어도 하나의 사용자 단말을 통해 검색 결과 및/또는 분석 결과가 제공될 수도 있다.
이하 도면들을 통해, 본 개시에 따른 시스템의 구성 및 동작에 대해 보다 구체적으로 설명한다.
도 2는 본 개시의 일 실시 예에 따른 시스템의 구성을 설명하기 위한 블록도이다.
도 2를 참조하면, 시스템(100)은 적어도 하나의 메모리(110) 및 적어도 하나의 프로세서(120)를 포함한다.
시스템(100)은 하나 이상의 전자 장치 내지는 컴퓨터를 포함할 수 있으며, 일 예로, 검색이나 분석 기능(Application, Program 등)을 제공하는 복수의 서버 장치로 구현될 수 있으나 이에 한정되지 않는다.
메모리(110)는 다양한 데이터를 저장하기 위한 구성이다. 인메모리 컴퓨팅 방식을 사용하는 본 개시의 시스템(100) 내에서, 메모리(110)는 하나 이상의 RAM(Random Access Memory)으로 구성될 수 있다.
구체적으로, 메모리(110)는 DRAM(Dynamic RAM), SRAM(static RAM) 등의 휘발성 메모리로 구현될 수 있다. 다만, 메모리(110)는 MRAM(Dynamic RAM), PRAM(Phase-change RAM), RRAM(Resistive RAM), FRAM(Ferroelectric RAM), 기타 플래시 메모리 등을 포함할 수도 있다.
프로세서(120)는 시스템(100)의 전반적인 동작을 제어하기 위한 구성으로, 메모리(110)와 연결되어 다양한 기능을 수행할 수 있다.
구체적으로, 프로세서(120)는 메모리(110)에 저장된 적어도 하나의 인스트럭션을 실행함으로써 후술할 검색 및 분석 방법을 수행할 수 있다.
프로세서(120)는 CPU, AP, DSP(Digital Signal Processor) 등과 같은 범용 프로세서, GPU, VPU(Vision Processing Unit) 등과 같은 그래픽 전용 프로세서 또는 NPU와 같은 인공지능 전용 프로세서 등을 포함할 수 있다. 또한, 프로세서(120)는 SRAM을 포함할 수 있다.
프로세서(120)는 복수의 코어를 포함할 수 있다. 각 코어는 동일한 기능을 병렬적으로 수행할 수도 있고, 또는 서로 다른 기능을 수행할 수도 있다.
구체적으로, 프로세서(120)는 복수의 코어를 이용하여 메모리(110)에 저장된 다양한 형태의 데이터를 분류, 전처리할 수 있으며, 분류, 전처리된 데이터를 이용하여 다양한 기능(ex. 검색, 분석 등)을 수행할 수 있다.
도 3은 본 개시의 일 실시 예에 따른 시스템의 동작을 설명하기 위한 알고리즘이다.
도 3을 참조하면, 시스템(100)은 실시간으로 획득되는 데이터를 시간에 따른 복수의 콘텐츠 그룹으로 구분하여 메모리(110)에 저장할 수 있다(S310).
구체적으로, 시스템(100)은 메모리(110)에 저장된 데이터(다양한 콘텐츠 포함)를 날짜, Media ID 등의 항목을 기준으로 분류하여 복수의 콘텐츠 그룹을 정의할 수 있다.
특히, 외부로부터 실시간으로 다양한 (콘텐츠) 데이터가 수신되는 경우, 시스템(100)은 수신되는 데이터가 날짜 별로 구분된 복수의 콘텐츠 그룹을 메모리(110)에 저장할 수 있다. 이때, 날짜 별로 구분된 콘텐츠 데이터는 queue 형태로 메모리(110)에 저장될 수 있으나, 이 밖에 stack, linked list, array, tree 등 다양한 형태가 가능하다.
그 결과, 콘텐츠 데이터는 향후 검색에 용이한 형태인 복수의 콘텐츠 그룹의 구조로 메모리(110) 내에 구축될 수 있다.
그리고, 시스템(100)은 복수의 콘텐츠 그룹 각각을 적어도 하나의 인덱스 키워드에 따라 전처리하여 복수의 분석 콘텐츠를 획득할 수 있다(S320).
인덱스 키워드는, 각 콘텐츠 그룹을 인덱싱하기 위한 기준이 될 수 있다.
구체적인 예로, 시스템(100)은 인덱스 키워드의 출현 빈도, 하나 이상의 인덱스 키워드의 출현 순서, 인덱스 키워드에 따른 분류 정보, 및 인덱스 키워드에 기초한 패턴 정보 중 적어도 하나를 기반으로, 복수의 콘텐츠 그룹 각각을 전처리할 수 있다. 또한, 시스템(100)은 인덱스 키워드에 매칭되는 아이디 또는 대상을 기준으로 각 콘텐츠 그룹을 전처리할 수도 있다.
그 결과, 각 콘텐츠 그룹에 포함되는 복수의 분석 콘텐츠가 정의되어 메모리(110)에 저장될 수 있다.
분석 콘텐츠는, 특정한 인덱스 키워드를 포함하는 콘텐츠, 특정한 인덱스 키워드들을 특정한 순서로 포함하는 콘텐츠, 특정한 기준으로 분류된 인덱스 키워드들에 따라 구분된 콘텐츠, 특정한 인덱스 키워드들을 기설정된 패턴으로 포함하는 콘텐츠, 특정한 인덱스 키워드에 매칭되는 아이디 또는 사용자에 의해 생성된 콘텐츠 등 다양하게 정의될 수 있다.
또한, 분석 콘텐츠는, 특정한 인덱스 키워드를 기준으로 특정한 콘텐츠 그룹에 대하여 산출된 통계 분석 관련 데이터(수치, 지표, 분류 등)를 포함할 수도 있다.
이렇듯, 콘텐츠 데이터는 통계 등 다양한 분석에 용이한 분석 콘텐츠들의 형태로 메모리(110) 내에 구축될 수 있다.
도 4는 본 개시의 일 실시 예에 따른 시스템이 데이터를 분류 및 전처리하는 동작을 설명하기 위한 도면이다.
도 4를 참조하면, 시스템(100)은 데이터를 날짜 및 Media ID를 기반으로 분류하여 복수의 콘텐츠 그룹(410, 420, 430, …)을 식별하고, 식별된 복수의 콘텐츠 그룹에 대한 정보를 메모리(110)에 저장할 수 있다.
또한, 시스템(100)은 각 콘텐츠 그룹(410, 420, 430, …)에 대하여 전처리를 수행할 수 있다.
구체적으로, 도 4를 참조하면, 시스템(100)은 콘텐츠 그룹(410)에 대하여 다양한 인덱스 키워드들(환경, 코로나, 펀드, 기업은행 등)을 기반으로 전처리/분류를 수행함으로써 복수의 분석 콘텐츠(411, 412, 413, 414, …)를 획득할 수 있다.
예를 들어, “환경” 키워드에 따른 분석 콘텐츠(411)의 경우, 콘텐츠 그룹(410) 내 “환경”의 출현 빈도에 대한 정보, “환경”의 출현 빈도에 따라 순서대로 나열된 콘텐츠 그룹(410) 내 복수의 콘텐츠에 대한 정보, 콘텐츠 그룹(410) 내 키워드 “환경”의 출현 패턴에 대한 정보, 콘텐츠 그룹(410) 내 “환경”이라는 단어를 높은 빈도로 사용한 아이디/사용자에 대한 정보 등을 포함할 수 있으나, 이에 한정되지 않는다.
상술한 실시 예들에 따라 메모리(110) 내 데이터가 검색 및 분석에 용이하도록 구축된 상태에서, 시스템(100)은 구축된 데이터를 기반으로 검색 및 분석을 수행할 수 있다.
구체적으로, 도 3을 참조하면, 적어도 하나의 검색어 및 조건이 입력되면, 시스템(100) 내 복수의 코어가 복수의 콘텐츠 그룹(ex. 410, 420, 430, …)에 대하여 병렬 처리 방식으로 검색을 수행하여 적어도 하나의 콘텐츠를 식별할 수 있다(S330).
여기서, 검색어와 함께 입력되는 조건은, 적어도 하나의 키워드를 포함하거나 포함하지 않을 조건, 검색 대상 시기(기간), 불용어, 검색어가 복합어인 경우 복합어에 포함된 단어들이 서로 일정 단어 수 이하의 거리로 인접해 있는 조건 등 다양한 조건에 해당할 수 있다.
그리고, 일 실시 예로, 시스템(100) 내 복수의 코어 각각은, 복수의 콘텐츠 그룹 각각에 대하여 검색을 수행할 수 있다(병렬 처리).
만약, 시스템(100) 내 복수의 프로세서 및/또는 복수의 서버가 포함된 경우, 복수의 프로세서/서버에 포함된 코어들이 복수의 콘텐츠 그룹 각각에 대하여 병렬 처리 방식으로 검색을 수행할 수 있다.
이렇듯 병렬 처리 방식을 통해 복수의 콘텐츠 그룹에 대한 검색이 수행된 결과, 검색 속도가 빨라질 수 있고, 코어 사용 효율이 높아질 수 있다. 또한, 데이터가 뭉쳐 있거나 중복되면 동시 접근이 불가능한 반면, 구분된 복수의 콘텐츠 그룹 각각에 대한 검색이 수행됨으로써, 동기화 구간이 최소화되어 병렬 처리의 효율이 보장될 수 있다.
다만, 복수의 콘텐츠 그룹 중 적어도 하나의 콘텐츠 그룹의 데이터 사이즈가 복수의 코어 각각의 검색 성능에 따라 기설정된 데이터 사이즈보다 큰 경우, 시스템(100)은 적어도 하나의 콘텐츠 그룹을 분할하여 병렬 처리 방식으로 검색을 수행할 수도 있다. 이 경우, 코어들의 병렬 처리 성능이 이상 없이 유지될 수 있다.
도 5는 본 개시의 일 실시 예에 따른 시스템이 복수의 코어를 통해 병렬 처리 방식으로 검색을 수행하는 동작을 설명하기 위한 도면이다.
도 5를 참조하면, 각 코어(thread)가 콘텐츠 그룹(shard contents group) 하나씩 검색을 수행할 수 있다.
여기서, 각 콘텐츠 그룹은, 앞서 구분된 복수의 콘텐츠 그룹(ex. 410, 420, 430, …) 중 하나일 수도 있고, (콘텐츠 그룹의 사이즈가 큰 경우) 복수의 콘텐츠 그룹 중 하나가 분할된 일부 콘텐츠 그룹일 수도 있다.
도 5를 참조하면, 각 코어는 하나의 콘텐츠 그룹(shard contents group)에 대한 검색이 끝나면 다른 콘텐츠 그룹(shard contents group)에 대하여 검색을 수행하는데, 이러한 과정이 모든 콘텐츠 그룹(shard contents group)에 대하여 수행될 때까지 반복될 수 있다.
각 코어는, 검색을 수행함에 따라 적어도 하나의 콘텐츠를 식별할 수 있다. 여기서, 각 코어는, 중복된 결과를 제거할 수 있다.
일 코어를 통해 수행된 검색에 따라 복수의 콘텐츠가 식별된 경우, 코어는 복수의 콘텐츠를 기설정된 개수 단위로 분할하여 복수의 콘텐츠 리스트를 생성할 수 있다.
구체적인 예로, 각 코어는, List<Contents[]>의 형태로 검색 결과를 생성할 수 있다. 이 경우, 생성되는 검색 결과의 크기가 일정 개수의 콘텐츠 이하로 설정될 수 있다.
분석 과정에서 List<Contents[]>로부터 Contents[]를 가져오는 경우 동기화가 발생하게 되는데, 이 구간을 최소화하기 위해 배열 형태로 콘텐츠를 로드하는 것이다(하나씩 가져오게 되면 가져오는 구간마다 동기화 구간이 발생하여 속도에 영향이 크다).
이렇듯, 검색 결과가 Queue가 아닌 List의 형태로 생성된 결과, 추후 분석 과정(S340)에서, 복수의 코어는 복수의 콘텐츠 리스트를 병렬 처리 방식으로 분석할 수 있다.
그리고, 상술한 실시 예와 같이 검색이 수행되면, 시스템(100)은 (검색에 따라) 식별된 콘텐츠에 매칭되는 적어도 하나의 분석 콘텐츠를 이용하여 분석을 수행할 수 있다(S340).
일 실시 예로, 시스템(100) 내 각 코어는, 검색 결과인 복수의 콘텐츠 리스트 각각에 대한 분석을 수행할 수 있다.
구체적으로, 각 코어는, 복수의 콘텐츠 리스트 각각에 매칭되는 상술한 분석 콘텐츠(: 전처리된 데이터)를 이용하여, 복수의 콘텐츠 리스트 각각을 병렬 처리 방식으로 분석할 수 있다.
이렇듯 메모리(110) 내에 미리 전처리된 데이터 구조(분석 콘텐츠)가 프로세서(120) 및 메모리(110) 간의 작업만으로 처리되므로 메모리 데이터 교환 및 데이터 변환 (ex. JSON-> Memory Object) 등의 과정이 수행될 필요가 없게 되어, 종래와 달리 분석 과정의 처리 속도가 빨라질 수 있다.
도 6은 본 개시의 일 실시 예에 따른 시스템이 복수의 코어를 통해 병렬 처리 방식으로 분석을 수행하는 동작을 설명하기 위한 도면이다.
도 6을 참조하면, 각 코어(thread)는 전처리된 콘텐츠(preprocessing contents)를 이용하여 분석(ex. 통계 분석)을 빠르게 병렬적으로 처리할 수 있다.
여기서, 전처리된 콘텐츠는, 검색 결과 식별된 콘텐츠 리스트에 매칭되는 분석 콘텐츠의 적어도 일부일 수 있다.
이렇듯, 데이터가 미리 분류되고 전처리되어 메모리(110) 내에 구축되어 유지 내지는 업데이트됨으로써, 시스템(100) 내 복수의 코어가 데이터에 대한 검색 및 분석을 병렬 처리 방식으로 빠르게 수행할 수 있는 최적의 환경이 보장될 수 있다.
한편, 각 코어의 분석 내용은, 서로 동일한 기능/모듈에 따른 분석일 수도 있고, 서로 다른 기능/모듈에 따른 분석일 수도 있다.
일 실시 예로, 복수의 코어가 동일한 모듈/기능에 따른 분석을 수행하는 경우, 시스템(100)은 복수의 콘텐츠 리스트 각각에 대한 복수의 코어의 분석 결과를 병합할 수도 있다.
일 예로, 제1 내지 제4 코어 각각을 통해 수행된 분석에 따라 제1 내지 제4 통계 데이터가 산출된 경우를 가정한다.
이 경우, 프로세서(120)는, 제1 통계 데이터 및 제2 통계 데이터를 병합하여 제1 병합 통계 데이터를 획득하고, 제3 통계 데이터 및 제4 통계 데이터를 병합하여 제2 병합 통계 데이터를 획득할 수 있다.
그리고, 프로세서(120)는 제1 병합 통계 데이터 및 제2 병합 통계 데이터를 병합하여 최종 통계 데이터를 산출할 수 있다.
한편, 일 실시 예에 따르면, 시스템(100)은, 일정 주기에 따라 상술한 S310 내지 S320 과정을 수행할 수 있다.
즉, 시스템(100)은 외부 데이터가 실시간으로 추가됨에 따라, 해당 데이터에 대한 분류 내지 전처리를 주기적으로 수행하여 메모리(110) 내 데이터 환경을 구축할 수 있다.
구체적인 예로, 시스템(100)은 실시간으로 획득되는 데이터의 증가 속도, 시스템(100)에 포함된 코어의 수, 및 각 코어의 성능에 따라 설정된 주기를 기반으로, 데이터가 구분된 복수의 콘텐츠 그룹 각각을 적어도 하나의 인덱스 키워드에 따라 전처리하여 복수의 분석 콘텐츠를 획득할 수 있다.
일 예로, 시스템(100)이 실시간 추가되는 데이터를 검색 및 분석에 적합하게 분류/전처리하는(S310~S320) 속도는, 실시간으로 추가되는 데이터의 증가 속도보다 빨라야 한다. 이 경우, 각 코어의 데이터 처리 속도에 코어의 수를 곱한 값을 주기로 나눈 결과는, 실시간으로 획득되는 데이터의 증가 속도보다 빠를 수 있다.
또한, 일 실시 예로, 시스템(100)은, 후술할 검색(S330) 및 분석(S340)이 수행되지 않을 것으로 예측되는 시간 구간 동안 상술한 분류 및 전처리(S310~S320) 과정을 수행할 수도 있다.
구체적인 예로, 시스템(100)은 검색어 및 조건이 입력되어 시스템(100)을 통해 검색이 수행되었던 적어도 하나의 시간 구간을 식별할 수 있다. 그리고, 식별된 시간 구간을 기반으로, 시스템(100)은 검색이 수행되는 시간 구간에 대한 패턴(ex. 시간 구간의 평균 시작/종료 시간)을 생성할 수 있다.
이 경우, 생성된 패턴을 기반으로, 시스템(100)은 검색이 수행될 가능성이 가장 낮은 적어도 하나의 시간 구간을 선택할 수 있다.
그리고, 시스템(100)은 선택된 시간 구간 동안, 추가/업데이트 된 데이터에 대하여 S310 내지 S320 과정을 수행할 수 있다. 구체적으로, 시스템(100)은 데이터가 구분된 복수의 콘텐츠 그룹 각각을 적어도 하나의 인덱스 키워드에 따라 전처리하여 복수의 분석 콘텐츠를 획득할 수 있다.
예를 들어, 서버 관리자 또는 사용자의 요청에 따른 검색 및 분석이 주로 오전 8시에서 오후 7시 사이에 수행되는 경우, 시스템(100)은 상술한 S310 내지 S320 과정을 오후 11시에서 다음날 오전 2시까지 수행할 수 있다.
이 경우, 매일 추가적으로 획득/수집되는 외부 데이터(ex. 콘텐츠 그룹)에 대하여 전처리가 수행되어 메모리(110) 상에 구축될 수 있고, 그 결과, 매일 수행되는 검색 및 분석의 속도가 보장될 수 있다.
한편, 일 실시 예에 따르면, 시스템(100)은 S310 내지 S320 과정을 통해 획득된 복수의 콘텐츠 그룹 및 복수의 분석 콘텐츠에 대한 백업 정보를 적어도 하나의 스토리지에 저장할 수 있다.
스토리지는, HDD(Hard Disk Drive), SSD(Solid State Drive), 플래시 메모리 등 다양한 구성을 포함할 수 있으나, 이에 한정되지 않는다.
그리고, 시스템(100)이 부팅(ex. 종료 후 재부팅)되는 경우, 시스템(100)은 백업 정보를 기반으로 복수의 콘텐츠 그룹 및 복수의 분석 콘텐츠를 메모리(110)에 로드할 수 있다. 이때, 시스템(100)은 복수의 코어를 통한 병렬 처리 방식으로 복수의 콘텐츠 그룹 및 복수의 분석 콘텐츠를 로드할 수 있다.
한편, 시스템(100)은 백업 정보를 메모리(110)에 포함된 적어도 하나의 비휘발성 메모리 상에 저장해둘 수도 있다. 이 경우, 재부팅된 시스템(100)은, 비휘발성 메모리에 저장된 백업 정보를 이용하여, 복수의 콘텐츠 그룹 및 복수의 분석 콘텐츠를 메모리(110)의 휘발성 메모리 상에 로드할 수 있다.
한편, 일 실시 예로, 시스템(100)은 S330 단계의 검색에 이용된 검색어에 대한 데이터(ex. 검색어 별 빈도, 검색 빈도에 따른 검색어 나열)를 이용하여, 추후 수행되는 메모리 구축 과정(S320)을 수행할 수 있다.
구체적인 예로, 시스템(100)은 입력 빈도에 따라 각 검색어를 순차적인 인덱스 키워드로 설정하고, 설정된 각 인덱스 키워드를 이용하여 S320 단계의 전처리를 수행하여 복수의 분석 콘텐츠를 획득할 수 있다.
또한, 일 실시 예로, 시스템(100)은 S330 단계의 검색에 이용된 (입력된) 적어도 하나의 조건을, 추후 인덱스 키워드에 따른 전처리 과정(S320)에 이용할 수도 있다.
한편, 도 7은 본 개시의 일 실시 예에 따른 시스템의 기능적 구성을 설명하기 위한 블록도이다.
도 7을 참조하면, 시스템(100)은 다양한 형태/기능의 분석을 수행하기 위한 각종 모듈들(Analysis Modules)을 포함할 수 있다. 한 번 검색된 결과는, 여러 모듈에서 공유해서 사용될 수 있다.
구체적으로, 시스템(100)은 다양한 분류 관련 처리를 수행하기 위한 Classify TF(Task Force), 단어와 관련된 분석을 수행하는 Word TF, Word TFIDF(Term Frequency-Inverse Document Frequency) 등을 포함할 수 있다. 또한, 시스템(100)은 미디어의 생성/처리와 관련된 Media TF도 포함할 수 있다. 또한, 시스템(100)은 다양한 문서에 대하여 단어 감지, 어절 패턴 감지 등 주제를 발견하기 위한 언어 처리를 수행하기 위한 Topic Modeling 모듈(ex. LDA: Latent Dirichlet Allocation)을 포함할 수 있다. 또한, 시스템(100)은 다양한 외부 데이터를 획득하기 위한 SNA(Social Network Analysis) 모듈을 포함할 수도 있다.
상술한 모듈들 각각은 소프트웨어 및/또는 하드웨어를 통해 구현될 수 있으며, 프로세서(120)에 포함되는 적어도 하나의 코어를 통해 실행될 수 있다.
또한, 도 7을 참조하면, 시스템(100)은 자연어 처리를 위한 NLP(Natural Language Processing) 모듈 및 그 밖에 다양한 실시간 데이터 처리를 수행하기 위한 모듈들을 포함할 수 있다.
구체적으로, 시스템(100)은 실시간으로 외부로부터 미디어 콘텐츠를 수집하기 위한 적어도 하나의 모듈, 수집된 콘텐츠를 이용하여 실시간으로 메모리(110) 내 데이터 구성을 변경/추가/삭제하는 모듈, 추가/변경된 인덱스 키워드를 이용하여 실시간으로 인덱싱(전처리)를 수행하는 모듈 등을 포함할 수 있다.
일 예로, 시스템(100)은 불용어 제거, 다양한 방식의 단어 관리, 신조어 학습 등을 기반으로 인덱스 키워드를 실시간으로 추가/변경할 수 있다.
그리고, 시스템(100)은 추가/변경된 인덱스 키워드를 이용하여 복수의 콘텐츠 그룹 각각에 대한 전처리를 수행할 수 있다. 그 결과, 메모리(110) 내에 구축되는 복수의 분석 콘텐츠가 시대 및 언어의 변화에 맞게 실시간으로 업데이트될 수 있다.
한편, 이하 표 1은 본 개시에 따른 일 실시 예의 효과를 설명하기 위한 검색 및 분석 시간의 비교표이다.
기준 검색결과
비율
인메모리
미적용
Elastic Search + Spark Spark RDD + Spark SQL 본 개시에 따른 검색 및 분석
소요시간
(초)
5% 72.2 4.76 2.5+α 0.65
11% 258 6.5 3.5+α 1.2
15% 314 8.1 5.5+α 1.45
20% 404 9.3 6.5+α 1.8
표 1은 동일한 170만 건의 데이터에 대한 각 실시 예의 검색 및 분석 시간을 계산한 것이다. 특히, SparkRdd + SQL은 SQL의 질의 시간이 계산되지 않은 값으로 실제로는 더 큰 시간이 소요된다고 볼 수 있다.표 1을 참조하면, 인메모리 검색 엔진과 일반적인 검색 엔진 간에 분석에 필요한 모든 데이터를 찾아서 분석에 전달하는 시간까지는 10 ~ 100배 이상의 성능 차이를 보인다.
그리고, 본 개시의 일 실시 예에 따른 검색 및 분석은, 검색 엔진(ex. Elastic Search)을 통해 데이터를 전달받은 Spark와 비교하여 4배 이상의 성능 차이를 보인다.
한편, 이상에서 설명된 다양한 실시 예들은 소프트웨어(software), 하드웨어(hardware) 또는 이들의 조합된 것을 이용하여 컴퓨터(computer) 또는 이와 유사한 장치로 읽을 수 있는 기록 매체 내에서 구현될 수 있다.
하드웨어적인 구현에 의하면, 본 개시에서 설명되는 실시 예들은 ASICs(Application Specific Integrated Circuits), DSPs(digital signal processors), DSPDs(digital signal processing devices), PLDs(programmable logic devices), FPGAs(field programmable gate arrays), 프로세서(processors), 제어기(controllers), 마이크로 컨트롤러(micro-controllers), 마이크로 프로세서(microprocessors), 기타 기능 수행을 위한 전기적인 유닛(unit) 중 적어도 하나를 이용하여 구현될 수 있다.
일부의 경우에 본 명세서에서 설명되는 실시 예들이 프로세서 자체로 구현될 수 있다. 소프트웨어적인 구현에 의하면, 본 명세서에서 설명되는 절차 및 기능과 같은 실시 예들은 별도의 소프트웨어 모듈들로 구현될 수 있다. 상술한 소프트웨어 모듈들 각각은 본 명세서에서 설명되는 하나 이상의 기능 및 작동을 수행할 수 있다.
한편, 상술한 본 개시의 다양한 실시 예들에 따른 시스템(100) 내 적어도 하나의 전자 장치에서의 처리동작을 수행하기 위한 컴퓨터 명령어(computer instructions) 또는 컴퓨터 프로그램은 비일시적 컴퓨터 판독 가능 매체(non-transitory computer-readable medium)에 저장될 수 있다. 이러한 비일시적 컴퓨터 판독 가능 매체에 저장된 컴퓨터 명령어 또는 컴퓨터 프로그램은 특정 기기의 프로세서에 의해 실행되었을 때 상술한 다양한 실시 예에 따른 시스템(100)에서의 처리 동작을 상술한 특정 기기가 수행하도록 한다.
비일시적 컴퓨터 판독 가능 매체란 레지스터, 캐쉬, 메모리 등과 같이 짧은 순간 동안 데이터를 저장하는 매체가 아니라 반영구적으로 데이터를 저장하며, 기기에 의해 판독(reading)이 가능한 매체를 의미한다. 비일시적 컴퓨터 판독 가능 매체의 구체적인 예로는, CD, DVD, 하드 디스크, 블루레이 디스크, USB, 메모리카드, ROM 등이 있을 수 있다.
이상에서는 본 개시의 바람직한 실시 예에 대하여 도시하고 설명하였지만, 본 개시는 상술한 특정의 실시 예에 한정되지 아니하며, 청구범위에서 청구하는 본 개시의 요지를 벗어남이 없이 당해 개시에 속하는 기술분야에서 통상의 지식을 가진 자에 의해 다양한 변형실시가 가능한 것은 물론이고, 이러한 변형실시들은 본 개시의 기술적 사상이나 전망으로부터 개별적으로 이해되어서는 안될 것이다.
100: 시스템 110: 메모리
120: 프로세서

Claims (10)

  1. 인메모리 컴퓨팅 기반 시스템의 분석 방법에 있어서,
    실시간으로 획득되는 데이터를, 획득된 날짜에 따라 구분된 복수의 콘텐츠 그룹으로 메모리에 저장하는 단계;
    상기 복수의 콘텐츠 그룹 각각을 적어도 하나의 인덱스 키워드에 따라 전처리하여 복수의 분석 콘텐츠를 획득하는 단계;
    적어도 하나의 검색어 및 조건이 입력되면, 복수의 코어가 상기 복수의 콘텐츠 그룹에 대하여 병렬 처리 방식으로 검색을 수행하여 적어도 하나의 콘텐츠를 식별하는 단계; 및
    상기 식별된 콘텐츠에 매칭되는 적어도 하나의 분석 콘텐츠를 이용하여 상기 식별된 콘텐츠에 대한 통계 분석을 수행하는 단계;를 포함하고,
    상기 복수의 분석 콘텐츠를 획득하는 단계는,
    상기 인덱스 키워드의 출현 빈도, 상기 인덱스 키워드의 출현 순서, 상기 인덱스 키워드에 따른 분류 정보, 및 상기 인덱스 키워드에 기초한 패턴 정보 중 적어도 하나를 기반으로, 상기 복수의 콘텐츠 그룹 각각을 전처리하는, 시스템의 분석 방법.
  2. 삭제
  3. 제1항에 있어서,
    상기 적어도 하나의 콘텐츠를 식별하는 단계는,
    상기 복수의 콘텐츠 그룹 중 적어도 하나의 콘텐츠 그룹의 데이터 사이즈가 상기 복수의 코어 각각의 검색 성능에 따라 기설정된 데이터 사이즈보다 큰 경우, 상기 콘텐츠 그룹을 분할하여 병렬 처리 방식으로 검색을 수행하는, 시스템의 분석 방법.
  4. 제1항에 있어서,
    상기 시스템의 분석 방법은,
    일 코어를 통해 수행된 검색에 따라 복수의 콘텐츠가 식별된 경우, 상기 복수의 콘텐츠를 기설정된 개수 단위로 분할하여 복수의 콘텐츠 리스트를 생성하는 단계;를 더 포함하고,
    상기 분석을 수행하는 단계는,
    복수의 코어가, 상기 생성된 복수의 콘텐츠 리스트를 병렬 처리 방식으로 분석하는, 시스템의 분석 방법.
  5. 제4항에 있어서,
    상기 시스템의 분석 방법은,
    상기 복수의 콘텐츠 리스트 각각에 대한 분석 결과를 병합하는 단계;를 더 포함하는, 시스템의 분석 방법.
  6. 제1항에 있어서,
    상기 시스템의 분석 방법은,
    상기 복수의 콘텐츠 그룹 및 상기 복수의 분석 콘텐츠에 대한 백업 정보를 적어도 하나의 스토리지에 저장하는 단계; 및
    상기 시스템이 부팅되는 경우, 상기 백업 정보를 기반으로 상기 복수의 콘텐츠 그룹 및 상기 복수의 분석 콘텐츠를 상기 메모리로 로드하는 단계;를 더 포함하는, 시스템의 분석 방법.
  7. ◈청구항 7은(는) 설정등록료 납부시 포기되었습니다.◈
    제1항에 있어서,
    상기 복수의 분석 콘텐츠를 획득하는 단계는,
    상기 실시간으로 획득되는 데이터의 증가 속도, 상기 시스템에 포함된 코어의 수, 및 각 코어의 성능에 따라 설정된 주기를 기반으로, 상기 데이터가 구분된 복수의 콘텐츠 그룹 각각을 적어도 하나의 인덱스 키워드에 따라 전처리하여 복수의 분석 콘텐츠를 획득하는, 시스템의 분석 방법.
  8. 제1항에 있어서,
    상기 시스템의 분석 방법은,
    검색어 및 조건이 입력되어 상기 시스템을 통해 검색이 수행되는 적어도 하나의 시간 구간을 식별하는 단계;
    상기 식별된 시간 구간을 기반으로, 검색이 수행되는 시간 구간에 대한 패턴을 생성하는 단계; 및
    상기 생성된 패턴을 기반으로, 검색이 수행될 가능성이 가장 낮은 적어도 하나의 시간 구간을 선택하는 단계;를 더 포함하고,
    상기 복수의 분석 콘텐츠를 획득하는 단계는,
    상기 선택된 시간 구간 동안, 상기 데이터가 구분된 복수의 콘텐츠 그룹 각각을 적어도 하나의 인덱스 키워드에 따라 전처리하여 복수의 분석 콘텐츠를 획득하는, 시스템의 분석 방법.
  9. 인메모리 컴퓨팅 기반 시스템에 있어서,
    적어도 하나의 메모리; 및
    상기 적어도 하나의 메모리와 연결된 적어도 하나의 프로세서;를 포함하고,
    상기 프로세서는,
    실시간으로 획득되는 데이터를, 획득된 날짜에 따라 구분된 복수의 콘텐츠 그룹으로 상기 메모리에 저장하고,
    상기 복수의 콘텐츠 그룹 각각을 적어도 하나의 인덱스 키워드에 따라, 상기 인덱스 키워드의 출현 빈도, 상기 인덱스 키워드의 출현 순서, 상기 인덱스 키워드에 따른 분류 정보, 및 상기 인덱스 키워드에 기초한 패턴 정보 중 적어도 하나를 기반으로, 상기 복수의 콘텐츠 그룹 각각을 전처리하여 복수의 분석 콘텐츠를 획득하고,
    적어도 하나의 검색어 및 조건이 입력되면, 복수의 코어를 통해 상기 복수의 콘텐츠 그룹에 대하여 병렬 처리 방식으로 검색을 수행하여 적어도 하나의 콘텐츠를 식별하고,
    상기 식별된 콘텐츠에 매칭되는 적어도 하나의 분석 콘텐츠를 이용하여 상기 식별된 콘텐츠에 대한 통계 분석을 수행하는, 시스템.
  10. 컴퓨터 판독 가능 매체에 저장된 컴퓨터 프로그램에 있어서,
    적어도 하나의 전자 장치의 프로세서에 의해 실행되어, 상기 전자 장치로 하여금 제1항의 분석 방법을 수행하도록 하는, 컴퓨터 프로그램.
KR1020200185862A 2020-12-29 2020-12-29 실시간으로 데이터를 처리하는 인메모리 컴퓨팅을 기반으로 검색 및 분석을 수행하는 시스템, 분석 방법, 및 컴퓨터 프로그램 KR102425595B1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020200185862A KR102425595B1 (ko) 2020-12-29 2020-12-29 실시간으로 데이터를 처리하는 인메모리 컴퓨팅을 기반으로 검색 및 분석을 수행하는 시스템, 분석 방법, 및 컴퓨터 프로그램
KR1020220090065A KR102465391B1 (ko) 2020-12-29 2022-07-21 실시간으로 데이터의 증가 속도에 따라 데이터 처리 주기를 설정하는 시스템의 분석 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020200185862A KR102425595B1 (ko) 2020-12-29 2020-12-29 실시간으로 데이터를 처리하는 인메모리 컴퓨팅을 기반으로 검색 및 분석을 수행하는 시스템, 분석 방법, 및 컴퓨터 프로그램

Related Child Applications (1)

Application Number Title Priority Date Filing Date
KR1020220090065A Division KR102465391B1 (ko) 2020-12-29 2022-07-21 실시간으로 데이터의 증가 속도에 따라 데이터 처리 주기를 설정하는 시스템의 분석 방법

Publications (2)

Publication Number Publication Date
KR20220094551A KR20220094551A (ko) 2022-07-06
KR102425595B1 true KR102425595B1 (ko) 2022-07-29

Family

ID=82399828

Family Applications (2)

Application Number Title Priority Date Filing Date
KR1020200185862A KR102425595B1 (ko) 2020-12-29 2020-12-29 실시간으로 데이터를 처리하는 인메모리 컴퓨팅을 기반으로 검색 및 분석을 수행하는 시스템, 분석 방법, 및 컴퓨터 프로그램
KR1020220090065A KR102465391B1 (ko) 2020-12-29 2022-07-21 실시간으로 데이터의 증가 속도에 따라 데이터 처리 주기를 설정하는 시스템의 분석 방법

Family Applications After (1)

Application Number Title Priority Date Filing Date
KR1020220090065A KR102465391B1 (ko) 2020-12-29 2022-07-21 실시간으로 데이터의 증가 속도에 따라 데이터 처리 주기를 설정하는 시스템의 분석 방법

Country Status (1)

Country Link
KR (2) KR102425595B1 (ko)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102571783B1 (ko) * 2022-12-16 2023-08-29 스트라토 주식회사 대용량 검색 처리를 수행하는 검색 처리 시스템 및 그 제어방법
CN117194041B (zh) * 2023-09-26 2024-03-19 北京强云创新科技有限公司 一种用于高性能计算机的并行优化方法及系统

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2019043848A1 (ja) * 2017-08-30 2019-03-07 楽天株式会社 サーバ装置、サービス方法、プログラム、ならびに、非一時的なコンピュータ読取可能な情報記録媒体

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20190005578A (ko) 2017-07-07 2019-01-16 (주)넥스트위드 인메모리 기반의 분산 데이터베이스 관리 방법 및 시스템

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2019043848A1 (ja) * 2017-08-30 2019-03-07 楽天株式会社 サーバ装置、サービス方法、プログラム、ならびに、非一時的なコンピュータ読取可能な情報記録媒体

Also Published As

Publication number Publication date
KR20220094551A (ko) 2022-07-06
KR102465391B1 (ko) 2022-11-10
KR20220111219A (ko) 2022-08-09

Similar Documents

Publication Publication Date Title
Chen et al. Xgboost: A scalable tree boosting system
KR102465391B1 (ko) 실시간으로 데이터의 증가 속도에 따라 데이터 처리 주기를 설정하는 시스템의 분석 방법
US10579661B2 (en) System and method for machine learning and classifying data
US9256665B2 (en) Creation of inverted index system, and data processing method and apparatus
Fuad et al. Processing performance on apache pig, apache hive and MySQL cluster
WO2017096454A1 (en) Clustering documents based on textual content
US20120254173A1 (en) Grouping data
US9305076B1 (en) Flattening a cluster hierarchy tree to filter documents
US20140006369A1 (en) Processing structured and unstructured data
US20160188643A1 (en) Method and apparatus for scalable sorting of a data set
CN112487161A (zh) 一种面向企业需求的专家推荐方法、装置、介质及设备
CN106909554A (zh) 一种数据库文本表数据的加载方法及装置
US8024341B1 (en) Query expansion
Prasad et al. uCLUST-a new algorithm for clustering unstructured data
Lim et al. An analysis of image storage systems for scalable training of deep neural networks
JP6733366B2 (ja) 課題推定装置、課題推定方法および課題推定プログラム
Kolb et al. Parallel sorted neighborhood blocking with mapreduce
JP2017537398A (ja) 一組の構造化データタームからの非構造化検索クエリの生成
Yin et al. Content‐Based Image Retrial Based on Hadoop
US9026540B1 (en) Systems and methods for information match scoring
von Wyl et al. A parallel cross-modal search engine over large-scale multimedia collections with interactive relevance feedback
US20160371331A1 (en) Computer-implemented method of performing a search using signatures
Lai et al. Nimbus: tuning filters service on Tweet streams
RU2409849C2 (ru) Способ поиска информации в политематических массивах неструктурированных текстов
US11169964B2 (en) Hash suppression

Legal Events

Date Code Title Description
E701 Decision to grant or registration of patent right
N231 Notification of change of applicant