KR20230053809A - 분산 노드를 이용한 빅데이터 전처리 방법 및 장치 - Google Patents

분산 노드를 이용한 빅데이터 전처리 방법 및 장치 Download PDF

Info

Publication number
KR20230053809A
KR20230053809A KR1020210137027A KR20210137027A KR20230053809A KR 20230053809 A KR20230053809 A KR 20230053809A KR 1020210137027 A KR1020210137027 A KR 1020210137027A KR 20210137027 A KR20210137027 A KR 20210137027A KR 20230053809 A KR20230053809 A KR 20230053809A
Authority
KR
South Korea
Prior art keywords
distributed
processing
nodes
job
files
Prior art date
Application number
KR1020210137027A
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 KR1020210137027A priority Critical patent/KR20230053809A/ko
Publication of KR20230053809A publication Critical patent/KR20230053809A/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/25Integrating or interfacing systems involving database management systems
    • G06F16/258Data format conversion from or to a database
    • 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/11File system administration, e.g. details of archiving or snapshots
    • G06F16/116Details of conversion of file system types or formats
    • 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/17Details of further file system functions
    • G06F16/172Caching, prefetching or hoarding of files
    • 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/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/4881Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L61/00Network arrangements, protocols or services for addressing or naming
    • H04L61/50Address allocation
    • H04L61/5007Internet protocol [IP] addresses
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1097Protocols in which an application is distributed across nodes in the network for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/56Provisioning of proxy services
    • H04L67/568Storing data temporarily at an intermediate stage, e.g. caching

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Software Systems (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

분산 노드를 이용한 빅데이터 전처리 방법 및 장치가 제공된다. 본 발명의 일실시예에 따른, 분산 노드를 이용한 빅데이터 전처리 방법은 캐시 서버에 분산 노드들에 대한 접속 정보를 저장하는 단계, 상기 접속 정보를 이용하여 상기 분산 노드들 각각의 분산 처리 수행 가능 여부를 확인하는 단계, 상기 캐시 서버에 전체 처리 대상 파일들 중 기준 노드 및 상기 분산 노드들을 포함하는 전체 노드들 각각에 분배된 처리 대상 파일들을 지시하는 처리 대상 파일 목록을 저장하는 단계, 상기 분산 노드들에 대해 제1잡(job)의 수행을 지시하는 단계 및 상기 기준 노드의 처리 대상 파일 목록에 포함된 파일들에 대해 레시피(recipe) 기반 전처리를 수행하는 단계를 포함한다.

Description

분산 노드를 이용한 빅데이터 전처리 방법 및 장치 {BIG DATA PREPROCESSING METHOD AND APPARATUS USING DISTRIBUTED NODES}
본 발명은 분산 노드를 이용한 빅데이터 전처리 방법 및 장치에 관한 것으로, 보다 자세하게는 다량의 데이터를 복수의 노드에 분배하여 전처리하는 방법 및 장치에 관한 것이다.
최근 기술의 발전에 따라 다양한 전자 장치에서 생성되는 데이터들이 폭발적으로 증가하고 있다. 특히, 스마트폰과 태블릿 PC의 보급화는 정보의 생산, 유통, 보유량의 증가로 이어지고 데이터의 기하급수적인 증가를 이끌고 있다. 하지만 데이터의 증가에 비해 가치 있는 데이터는 소수에 불과하다. 따라서 대용량 데이터를 처리하고, 의미 있는 데이터를 발굴하는 기술이 필요하다.
데이터 전처리(Data Preprocessing)는 데이터를 추가 분석 및 처리에 적합한 형식으로 조작하는 것을 의미하며 다른 많은 업무를 포함하고 완전히 자동화될 수 없는 과정이다. 이러한 데이터 준비 활동은 일상적으로 지루하고 많은 시간이 소요된다. 그러나 데이터 준비 작업은 데이터 마이닝 프로젝트에 소요되는 전체 시간의 60%~80%를 차지하는 것으로 추산된다. 품질이 낮은 데이터는 일반적으로 부정확하고 신뢰할 수 없는 데이터 마이닝 결과를 초래하기 때문에 성공적인 데이터 마이닝을 위해서는 데이터의 전처리가 필수적이다. 그러나 대용량 데이터를 사람이 정제 및 정형을 하기에는 그 방대한 양 때문에 한계가 있는 문제점이 있었다.
한편, 빅데이터를 처리하기 위한 데이터의 전처리 작업에서는 대상 데이터의 건수가 수만 건을 상회하는 경우가 빈번하나 이러한 대용량 데이터를 한 번에 처리할 수 있는 건수에는 제한이 있으므로 전처리 작업이 지연되는 문제점이 있었다.
또한, 하나의 노드만으로 다량의 데이터를 전처리하는 경우, 전처리 작업에 긴 시간이 소요되는 문제점이 있었다.
KR 등록특허공보 10-2099157
본 발명은 상기와 같은 문제점을 해결하기 위해 안출된 것으로서, 다량의 데이터를 복수의 노드에 분배함으로써, 보다 신속하게 전처리 작업이 수행되도록 하는 빅데이터 전처리 장치 및 방법을 제공하는데 그 목적이 있다.
또한, 본 발명은 빅데이터 기반의 데이터 전처리를 손쉽게 하기 위한 데이터 분할 처리 기능을 포함하는 빅데이터 전처리 장치 및 방법을 제공하는데 그 목적이 있다.
또한, 본 발명은 빅데이터에 활용될 데이터의 전처리 작업의 일괄 처리를 위한 스케줄러 잡(Scheduler Job)이 적용된 빅데이터 전처리 장치 및 방법을 제공하는데 그 목적이 있다.
또한, 본 발명은 전체 워크로드에서 스케줄러 간 작업 연관성 유지를 위한 별도의 메타 데이터 공유 기능이 구현된 빅데이터 전처리 장치 및 방법을 제공하는데 그 목적이 있다.
또한, 본 발명은 원본 데이터 및 전처리한 데이터를 타 서비스와의 연계/공유할 수 있도록 외부 저장장치 기반의 데이터 입출력 기능이 구현된 빅데이터 전처리 장치 및 방법을 제공하는데 그 목적이 있다.
본 발명이 해결하고자 하는 과제들은 이상에서 언급된 과제로 제한되지 않으며, 언급되지 않은 또 다른 과제들은 아래의 기재로부터 통상의 기술자에게 명확하게 이해될 수 있을 것이다.
본 발명의 일실시예에 따른, 분산 노드를 이용한 빅데이터 전처리 방법은 캐시 서버에 분산 노드들에 대한 접속 정보를 저장하는 단계, 상기 접속 정보를 이용하여 상기 분산 노드들 각각의 분산 처리 수행 가능 여부를 확인하는 단계, 상기 캐시 서버에 전체 처리 대상 파일들 중 기준 노드 및 상기 분산 노드들을 포함하는 전체 노드들 각각에 분배된 처리 대상 파일들을 지시하는 처리 대상 파일 목록을 저장하는 단계, 상기 분산 노드들에 대해 제1잡(job)의 수행을 지시하는 단계 및 상기 기준 노드의 처리 대상 파일 목록에 포함된 파일들에 대해 레시피(recipe) 기반 전처리를 수행하는 단계를 포함할 수 있다.
상기 레시피 기반 전처리를 수행하는 단계는 상기 처리 대상 파일 목록에 포함된 파일들을 분석하여 데이터셋을 생성하는 단계, 상기 데이터셋의 메타 정보에 기초하여 상기 캐시 서버에 기 저장된 레시피를 복제하는 단계 및 복제한 레시피에 기초하여 상기 데이터셋의 전처리를 수행하는 단계를 포함할 수 있다.
상기 레시피 기반 전처리를 수행하는 단계는 상기 데이터셋의 전처리 수행 결과의 시각화 데이터를 출력하는 단계를 더 포함할 수 있다.
상기 분산 노드들 중 어느 하나의 분산 노드에 의해 수행되는 잡들은 상기 분산 노드가 상기 분산 노드의 처리 대상 파일 목록에 포함된 파일들을 분석하여 데이터셋을 생성하는 제1잡, 상기 분산 노드가 상기 데이터셋의 메타 정보에 기초하여 상기 캐시 서버에 기 저장된 레시피를 복제하는 제2잡, 및 상기 분산 노드가 복제한 레시피에 기초하여 상기 데이터셋의 전처리를 수행하는 제3잡을 포함하고, 상기 잡들은 제1잡, 제2잡 및 제3잡 순으로 순서를 갖고, 상기 제1잡의 수행을 지시하는 단계는 상기 분산 노드들에 대해 상기 제1잡의 실행을 지시하는 API(Application Programming Interface)를 호출하는 단계를 포함하고, 상기 분산 노드들 각각은 상기 API의 호출에 대한 응답으로 상기 제1잡을 완료한 뒤에 상기 제2잡을 실행하고, 상기 제2잡을 완료한 뒤에 상기 제3잡을 실행할 수 있다.
상기 분산 노드는 상기 API의 호출에 대한 응답으로 상기 캐시 서버로부터 상기 분산 노드의 처리 대상 파일 목록을 획득한 뒤에 상기 분산 노드의 처리 대상 파일 목록에 포함된 파일들을 분석하여 데이터셋을 생성할 수 있다.
상기 API는 레스트풀(RESTful) API일 수 있다.
상기 접속 정보를 저장하는 단계는 상기 기준 노드와 내부망으로 연결된 제1 분산 노드들의 내부 아이피(Internet Protocol, IP) 및 상기 기준 노드와 외부망으로 연결된 제2 분산 노드들의 공인 아이피를 상기 접속 정보로서 획득할 수 있다.
상기 분산 처리 수행 가능 여부를 확인하는 단계는 소켓(socket) 통신을 이용하여 상기 분산 노드들 각각의 분산 처리 수행 가능 여부를 확인할 수 있다.
상기 처리 대상 파일 목록을 저장하는 단계는 데이터 소스로부터 상기 전체 처리 대상 파일들을 수집할 수 있다.
본 발명의 다른 일실시예에 따른, 분산 노드를 이용한 빅데이터 전처리 장치는 적어도 하나의 프로그램이 기록된 메모리 및 상기 프로그램을 실행하는 프로세서를 포함하고, 상기 프로그램은 캐시 서버에 분산 노드들에 대한 접속 정보를 저장하는 단계, 상기 접속 정보를 이용하여 상기 분산 노드들 각각의 분산 처리 수행 가능 여부를 확인하는 단계, 상기 캐시 서버에 전체 처리 대상 파일들 중 기준 노드 및 상기 분산 노드들을 포함하는 전체 노드들 각각에 분배된 처리 대상 파일들을 지시하는 처리 대상 파일 목록을 저장하는 단계, 상기 분산 노드들에 대해 제1잡(job)의 수행을 지시하는 단계 및 상기 기준 노드의 처리 대상 파일 목록에 포함된 파일들에 대해 레시피(recipe) 기반 전처리를 수행하는 단계를 수행하기 위한 명령어들을 포함할 수 있다.
상기와 같은 본 발명에 따르면, 아래와 같은 다양한 효과들을 가진다.
또한, 본 발명에 따르면, 다량의 데이터를 복수의 노드에 분배함으로써, 보다 신속하게 전처리 작업이 수행되도록 할 수 있다.
또한, 본 발명에 따르면, 한 번에 처리 가능한 건수 기준으로 파일을 분할처리함으로써 레코드 제한 없이 데이터를 처리할 수 있다.
또한, 본 발명에 따르면, 네트워크를 통한 외부 공유 저장 장치로부터 데이터를 입/출력 할 수 있도록 함으로서 전처리 전/후 데이터의 공유 편의성이 향상될 수 있다.
또한, 본 발명에 따르면, In-Memory 기반의 캐시 서버를 이용해 메타 데이터를 저장하고 데이터의 분할, 전처리, 통합을 위한 개별 Scheduler Job이 해당 메타 데이터를 토대로 연속적으로 작업을 수행할 수 있도록 하여 빅데이터 전처리 워크로드를 개선할 수 있다.
본 발명의 효과들은 이상에서 언급된 효과로 제한되지 않으며, 언급되지 않은 또 다른 효과들은 아래의 기재로부터 통상의 기술자에게 명확하게 이해될 수 있을 것이다.
도 1은 본 발명의 일 실시예에 따른 빅데이터 전처리 장치 및 시스템을 나타낸 블록도이다.
도 2는 본 발명의 일 실시예에 따른 빅데이터 전처리 장치의 구성을 나타낸 블록도이다.
도 3는 본 발명의 일 실시예에 따른 빅데이터 전처리 방법을 나타낸 동작 흐름도이다.
도 4는 본 발명의 일 실시예에 따른 처리 대상 파일의 전처리 방법을 나타낸 동작 흐름도이다.
도 5는 본 발명의 일 실시예에 따른 네이밍 룰을 설명하기 위한 도면이다.
도 6은 본 발명의 일 실시예에 따른 데이터 분할 방법을 나타낸 동작 흐름도이다.
도 7은 본 발명의 일 실시예에 따른 레시피 복제 방법을 나타낸 동작 흐름도이다.
도 8은 본 발명의 일 실시예에 따른 컴퓨터 시스템을 나타낸 도면이다.
본 발명의 이점 및 특징, 그리고 그것들을 달성하는 방법은 첨부되는 도면과 함께 상세하게 후술되어 있는 실시예들을 참조하면 명확해질 것이다. 그러나, 본 발명은 이하에서 개시되는 실시예들에 제한되는 것이 아니라 서로 다른 다양한 형태로 구현될 수 있으며, 단지 본 실시예들은 본 발명의 개시가 완전하도록 하고, 본 발명이 속하는 기술 분야의 통상의 기술자에게 본 발명의 범주를 완전하게 알려주기 위해 제공되는 것이며, 본 발명은 청구항의 범주에 의해 정의될 뿐이다.
본 명세서에서 사용된 용어는 실시예들을 설명하기 위한 것이며 본 발명을 제한하고자 하는 것은 아니다. 본 명세서에서, 단수형은 문구에서 특별히 언급하지 않는 한 복수형도 포함한다. 명세서에서 사용되는 "포함한다(comprises)" 및/또는 "포함하는(comprising)"은 언급된 구성요소 외에 하나 이상의 다른 구성요소의 존재 또는 추가를 배제하지 않는다. 명세서 전체에 걸쳐 동일한 도면 부호는 동일한 구성 요소를 지칭하며, "및/또는"은 언급된 구성요소들의 각각 및 하나 이상의 모든 조합을 포함한다. 비록 "제1", "제2" 등이 다양한 구성요소들을 서술하기 위해서 사용되나, 이들 구성요소들은 이들 용어에 의해 제한되지 않음은 물론이다. 이들 용어들은 단지 하나의 구성요소를 다른 구성요소와 구별하기 위하여 사용하는 것이다. 따라서, 이하에서 언급되는 제1 구성요소는 본 발명의 기술적 사상 내에서 제2 구성요소일 수도 있음은 물론이다.
다른 정의가 없다면, 본 명세서에서 사용되는 모든 용어(기술 및 과학적 용어를 포함)는 본 발명이 속하는 기술분야의 통상의 기술자에게 공통적으로 이해될 수 있는 의미로 사용될 수 있을 것이다. 또한, 일반적으로 사용되는 사전에 정의되어 있는 용어들은 명백하게 특별히 정의되어 있지 않는 한 이상적으로 또는 과도하게 해석되지 않는다.
공간적으로 상대적인 용어인 "아래(below)", "아래(beneath)", "하부(lower)", "위(above)", "상부(upper)" 등은 도면에 도시되어 있는 바와 같이 하나의 구성요소와 다른 구성요소들과의 상관관계를 용이하게 기술하기 위해 사용될 수 있다. 공간적으로 상대적인 용어는 도면에 도시되어 있는 방향에 더하여 사용시 또는 동작시 구성요소들의 서로 다른 방향을 포함하는 용어로 이해되어야 한다. 예를 들어, 도면에 도시되어 있는 구성요소를 뒤집을 경우, 다른 구성요소의 "아래(below)"또는 "아래(beneath)"로 기술된 구성요소는 다른 구성요소의 "위(above)"에 놓여질 수 있다. 따라서, 예시적인 용어인 "아래"는 아래와 위의 방향을 모두 포함할 수 있다. 구성요소는 다른 방향으로도 배향될 수 있으며, 이에 따라 공간적으로 상대적인 용어들은 배향에 따라 해석될 수 있다.
이하, 첨부된 도면을 참조하여 본 발명의 실시예를 상세하게 설명한다.
도 1은 본 발명의 일 실시예에 따른 빅데이터 전처리 장치 및 시스템을 나타낸 블록도이다.
도 1을 참조하면, 본 발명의 일 실시예에 따른 빅데이터 전처리 장치(100)는 외부 파일 저장소(200) 및 캐시 서버(400)와 네트워크를 통해 서로 통신 연결될 수 있다. 여기서 네트워크는 무선 네트워크 및 유선 네트워크를 포함할 수 있다. 예를 들어, 상기 네트워크는 근거리 통신 네트워크(예: 블루투스, WiFi direct 또는 IrDA(infrared data association)) 또는 원거리 통신 네트워크(예: 셀룰러 네트워크, 인터넷, 또는 컴퓨터 네트워크(예: LAN 또는 WAN))일 수 있다.
일 실시예에서, 빅데이터 전처리 장치(100)는 데이터 전처리 작업을 수행할 수 있는 어플리케이션 프로그램이 저장된 서버일 수 있고, 웹 서비스(예: 스마트폰의 앱 어플리케이션, 인터넷의 웹 페이지)를 통해 데이터 전처리가 수행되는 어플리케이션 프로그램을 제공할 수 있다.
분산 노드들(101, 102 및 103) 또한 빅데이터 전처리 장치(100)처럼 데이터 전처리 작업을 수행할 수 있는 어플리케이션 프로그램이 저장된 서버일 수 있고, 웹 서비스를 통해 데이터 전처리가 수행되는 어플리케이션 프로그램을 제공할 수 있다.
빅데이터 전처리 장치(100) 및 분산 노드들(101, 102 및 103)은 후술하는 빅데이터 전처리를 위한 복수의 스케줄러 잡(Scheduler Job)들을 수행할 수 있으며, 특히, 빅데이터 전처리 장치(100)는 다른 분산 노드들 대표하여 파일 목록 확인 잡 또는 Read Job을 더 수행하며, 기준 노드의 역할을 수행하는 노드일 수 있다. 스케줄러 잡에 대한 구체적인 내용은 후술한다.
도 2는 본 발명의 일 실시예에 따른 빅데이터 전처리 장치의 구성을 나타낸 블록도이다.
일 실시예에서, 빅데이터 전처리 장치(100)는 마이크로 서비스 아키텍쳐(Microservice architecture) 기반으로 구성된 장치일 수 있다. 여기서 마이크로 서비스 아키텍쳐란 하나의 큰 서비스를 독립적인 역할을 수행하는 작은 단위의 서비스로 분산하여 설계하는 패턴을 의미할 수 있다. 여기서 독립적인 역할이란, 예를 들어, 본 발명의 모듈에 해당하는 스케줄러(110), API 관리부(120), 데이터 생성부(130), 데이터 전처리부(140) 및 데이터 변환부(150)에서 각각 제공하는 기능을 의미할 수 있다.
예를 들어, 빅데이터 전처리 장치(100)에서 마이크로 서비스 아키텍쳐가 적용되므로, 스케줄러(110), API 관리부(120), 데이터 생성부(130), 데이터 전처리부(140), 데이터 변환부(150)는 각각 개별적으로 독립적인 단위의 어플리케이션일 수 있다. 따라서, 빅데이터 전처리 장치(100)는 제공하고자 하는 서비스를 추가 또는 변경하기 위해 전체 프로그램 구조를 변경할 필요가 없고, 각각의 모듈에 해당하는 스케줄러(110), API 관리부(120), 데이터 생성부(130), 데이터 전처리부(140), 데이터 변환부(150) 중 일부를 변경하거나 더 추가할 수 있다.
예를 들어, 빅데이터 전처리 장치(100)는 데이터 전처리 기능 중 일부를 교체하거나 추가할 경우, 전체 시스템 구조를 변경할 필요 없이 데이터 전처리부(140)와 동일한 구조를 가지면서 기능이 추가된 모듈을 데이터 전처리부(140)에 연결함으로써 손쉽게 기능 중 일부를 교체하거나 추가할 수 있다.
또한, 예를 들어, 빅데이터 전처리 장치(100)는 제공하고자 하는 기능 중 일부가 과부하(예: 과도한 데이터 전처리 또는 데이터 변환)가 걸린 경우, 전체 시스템 구조를 확장할 필요 없이 과부하가 걸린 모듈, 예컨대 데이터 전처리부(140) 또는 데이터 변환부(150)와 동일한 기능을 갖는 모듈을 병렬로 연결함으로써 처리 용량을 손쉽게 확장할 수 있다.
일 실시예에서, 빅데이터 전처리 장치(100)는 새로운 네이밍 룰을 적용하여 분할된 데이터를 손쉽게 확인할 수 있고, 외부 파일 저장소(200)를 통해 전처리 데이터를 손쉽게 공유하면서 분산 저장할 수 있고, 작업 대상 데이터를 읽어 분할하여 전처리 후 출력하는 4개의 스케줄러 잡(Scheduler Job)을 구비할 수 있고, 분리된 작업을 이어주며 작업 간 메타 데이터를 저장하는 외부의 캐시 서버(400)와 연결될 수 있다. 네이밍 룰에 대한 구체적인 내용은 후술한다.
일 실시예에서, 4개의 스케줄러 잡은 Read Job, Create Job, Single Export Job 및 Split Export Job을 포함할 수 있다. 예를 들어, Read Job은 파일의 목록 수집 및 작업 대상 파일을 확정하는 역할일 수 있고, Create Job은 파일 타입의 확인, 분할 및 데이터셋을 생성하는 역할일 수 있고, Single Export Job은 대상 파일의 메타를 확인하고 복제 대상 레시피를 확인, 단일 파일의 전처리 및 외부 저장소로 파일 출력하는 역할일 수 있고, Split Export Job은 분할 파일의 전처리 및 외부 저장소로 통합, 파일 출력하는 역할일 수 있다. 이에 대한 자세한 내용은 후술한다.
일 실시예에서, 빅데이터 전처리 장치(100)는 외부 파일 저장소(200)로부터 전처리 대상 파일 목록을 확인할 수 있고, 파일의 타입 확인, 전체 레코드 수를 확인/분할하여 전처리 대상 레코드를 생성할 수 있고, 분할된 레코드를 분석하여 데이터셋을 생성할 수 있고, 생성된 데이터셋의 메타 정보를 참조하여 복제 대상 레시피 확인/선별할 수 있고, 복제된 레시피로 전처리를 수행할 수 있고, 데이터셋에 포함된 분할 파일은 전처리 후 데이터 무결성이 보장될 수 있도록 원본과 동일한 순서로 통합하여 저장할 수 있고, 전체 사이클 종료 시 작업 연계를 위한 공유 메타 데이터를 초기화할 수 있다.
또한, 빅데이터 전처리 장치(100)는 전체 워크로드에서의 스케줄러간 작업 연관성 유지를 위한 별도의 메타 데이터를 외부 파일 저장소(200) 또는 캐시 서버(400)를 통해 공유할 수 있다. 예를 들어, 빅데이터 전처리 장치(100)는 각 잡(Job)의 실행 상태 확인을 통한 단계별 순차 실행의 원활한 처리를 위해 각 파일이 가지는 고유 정보(예: 생성 데이터셋 아이디, 메타 정보, 분할 정보 등) 저장 및 정보 확장을 통한 개별 작업 정보의 연계를 외부 파일 저장소(200) 또는 캐시 서버(400)를 통해 수행할 수 있다. 예컨대, 원본 파일 정보, 파일 타입 정보, 분할 정보, 메타 정보, 레시피 정보, 작업간 진행 상태 정보 등이 확장성을 고려하여 외부의 캐시 서버(400)를 통해 공유될 수 있다. 이를 통해 빠른 데이터 조회 및 처리가 가능한 In-Memory 기반의 데이터 저장소가 구비될 수 있다.
따라서, 본 발명의 빅데이터 전처리 장치(100)는 외부 파일 저장소(200) 또는 캐시 서버(400)를 통해 원본 데이터 및 전처리한 데이터를 타 서비스와의 연계/공유할 수 있도록 외부 저장소 기반의 데이터 입출력 기능을 구현할 수 있고, 네트워크를 통한 데이터의 In/Out, 원본 및 전처리 데이터의 분산 저장 및 공유, 별도의 외부 클러스터를 통한 안정적인 데이터 관리를 할 수 있다.
일 실시예에서, 빅데이터 전처리 장치(100)는 스케줄러(110), API 관리부(120), 데이터 생성부(130), 데이터 전처리부(140), 데이터 변환부(150)를 포함할 수 있다. 예를 들어, 빅데이터 전처리 장치(100)는 외부 파일 저장소(200)로부터 데이터 소스(예: CSV 파일, EXCEL 파일)를 수신할 수 있고, 데이터 소스에서 작업 대상 파일을 확인할 수 있다.
구체적으로, 일 실시예에서, API 관리부(120)는 스케줄러(110), 데이터 생성부(130), 데이터 전처리부(140), 데이터 변환부(150)와 연결되어 각각의 구성을 전반적으로 제어할 수 있다. 빅데이터 전처리 장치(100)는 API 관리부(160)를 통해 각 모듈(스케줄러(110), 데이터 생성부(130), 데이터 전처리부(140), 데이터 변환부(150))의 추가, 변경, 확장 등을 수행할 수 있다.
또한, API 관리부(160)는 Netflix에서 만든 Hystrix라는 오픈소스를 활용하여 서비스를 관리할 수 있고, 데이터는 In-memory data grid를 제공하는 오픈소스인 hazelcast를 통해 공유 및 처리될 수 있고, 모듈간의 통신은 REST 서비스로 송수신할 수 있다.
일 실시예에서, 스케줄러(110)는 4개의 스케줄러 잡(Read Job, Create Job, Single Export Job 및 Split Export Job)을 수행할 수 있다. 구체적인 내용은 후술한다.
일 실시예에서, 데이터 생성부(130)는 스케줄러(110)의 요청에 따라 분할된 데이터 레코드에 기반하여 데이터셋을 생성할 수 있다. 여기서, 데이터셋은 작업 대상 파일이 여러 개로 분할된 복수의 분할 파일을 포함할 수 있으며, 데이터 레코드는 분할 파일 자체 또는 분할 파일의 일부가 될 수 있다.
일 실시예에서, 데이터 전처리부(140)는 스케줄러(110)의 전처리 요청에 응답하여 데이터셋을 전처리할 수 있다.
일 실시예에서, 데이터 변환부(150)는 스케줄러(110)의 요청에 따라 전처리된 데이터셋을 다시 하나의 파일로 통합할 수 있다.
일 실시예에서, 빅데이터 전처리 장치(100)는 로컬 저장 장치(미도시)를 더 포함할 수 있다. 로컬 저장 장치는 원본 파일 정보(예: 데이터 소스), 파일 타입 정보, 분할 정보, 메타 정보, 레시피 정보, 작업간 진행 상태 정보 등을 저장할 수 있다. 또한, 로컬 저장 장치는 기존 데이터 전처리 정보 및 레시피 정보 등을 데이터베이스화하여 저장할 수 있다. 예를 들어, 빅데이터 전처리 장치(100)는 그동안 수행한 모든 데이터 전처리 내용 등을 빅데이터화할 수 있고, 빅데이터를 로컬 저장 장치에 저장할 수 있다.
도 3은 본 발명의 일 실시예에 따른 빅데이터 전처리 방법을 나타낸 동작 흐름도이다. 도 3의 동작들은 빅데이터 전처리 장치(100)에 의해 수행될 수 있다.
도 3을 참조하면, 일 실시예에서, 빅데이터 전처리 장치(100)는 동작 11에서 캐시 서버에 분산 노드들에 대한 접속 정보를 저장할 수 있다.
동작 11에서 빅데이터 전처리 장치(100)는 기준 노드와 내부망으로 연결된 제1 분산 노드들의 내부 아이피(Internet Protocol, IP) 및 기준 노드와 외부망으로 연결된 제2 분산 노드들의 공인 아이피를 접속 정보로서 획득할 수 있다.
일 실시예로서, 접속 정보는 아이피와 포트(Port)가 결합된 접속 주소를 포함할 수 있다.
다음으로, 빅데이터 전처리 장치(100)는 동작 12에서 접속 정보를 이용하여 분산 노드들 각각의 분산 처리 수행 가능 여부를 확인할 수 있다.
동작 12에서 빅데이터 전처리 장치(100)는 소켓(socket) 통신을 이용하여 분산 노드들 각각의 분산 처리 수행 가능 여부를 확인할 수 있다.
일 실시예에서, 빅데이터 전처리 장치(100)는 처리 대상 파일이 복수 개인 경우에 한하여 분산 노드들 각각의 분산 처리 수행 가능 여부를 확인하고, 처리 대상 파일이 1개인 경우에는 해당 처리 대상 파일에 대해 직접 전처리를 수행할 수 있다.
다음으로, 빅데이터 전처리 장치(100)는 동작 13에서 캐시 서버에 전체 처리 대상 파일들 중 기준 노드 및 분산 노드들을 포함하는 전체 노드들 각각에 분배된 처리 대상 파일들을 지시하는 처리 대상 파일 목록을 저장할 수 있다.
일 실시예로서, 빅데이터 전처리 장치(100)는 동작 13에서 전체 처리 대상 파일의 수를 분산 처리 수행이 가능한 노드 수로 나누어 분배할 수 있다.
일 실시예로서, 빅데이터 전처리 장치(100)는 동작 13에서 분산 처리 수행이 가능한 노드의 리소스를 고려하여 리소스가 더 많은 분산 노드에 더 많은 처리 대상 파일이 분배되도록 할 수 있다.
분산 노드들 각각은 캐시 서버로부터 분산 노드 각각에 대응하는 처리 대상 파일 목록 및 처리 대상 파일 목록이 지시하는 처리 대상 파일들을 분배 받을 수 있다.
다음으로, 빅데이터 전처리 장치(100)는 동작 14에서 분산 노드들에 대해 제1잡(Job)의 수행을 지시할 수 있다.
분산 노드들이 수행하는 잡들은 분산 노드가 분산 노드의 처리 대상 파일 목록에 포함된 파일들을 분석하여 데이터셋을 생성하는 제1잡, 분산 노드가 데이터셋의 메타 정보에 기초하여 캐시 서버에 기 저장된 레시피를 복제하는 제2잡 및 분산 노드가 복제한 레시피에 기초하여 데이터셋의 전처리를 수행하는 제3잡을 포함하고, 상기 잡들은 제1잡, 제2잡 및 제3잡 순으로 순서를 가질 수 있다.
일 실시예로서, 제1잡은 파일 타입의 확인, 분할 및 데이터셋을 생성하는 Create Job을 포함할 수 있다.
일 실시예로서, 제2잡은 대상 파일의 메타를 확인하고 복제 대상 레시피를 확인하는 Single Export Job을 포함할 수 있다.
일 실시예로서, 제3잡은 분할 파일의 전처리 및 외부 저장소로 통합, 파일 출력하는 Split Export Job을 포함할 수 있다.
동작 14에서 빅데이터 전처리 장치(100)는 분산 노드들에 대해 제1잡의 실행을 지시하는 API(Application Programming Interface)를 호출하고, 분산 노드들은 API 호출에 대한 응답으로 제1잡을 완료한 뒤에 제2잡을 실행하고, 제2잡을 완료한 뒤에 제3잡을 실행할 수 있다. 여기서, API는 레스트풀(RESTful) API일 수 있다.
이를 통해, 분산 노드들에서는 하나의 잡(예컨대, 제1잡)이 끝나면 다음 잡(예컨대, 제2잡)을 실행하게 됨으로써, 기준 노드로 하여금 다른 노드들의 상태 체크 로직을 가질 필요가 없게 하고, 분산 노드들로 하여금 한 번에 한 개의 잡만이 실행되어 리소스를 절약하는 효과를 가질 수 있다.
일 실시예로서, 동작 14에서 분산 노드들은 API 호출에 대한 응답으로 캐시 서버로부터 분산 노드의 처리 대상 파일 목록을 획득한 뒤에 분산 노드의 처리 대상 파일 목록에 포함된 파일들을 분석하여 데이터셋을 생성할 수 있다.
다음으로, 빅데이터 전처리 장치(100)는 동작 15에서 기준 노드의 처리 대상 파일 목록에 포함된 파일들에 대해 레시피(recipe) 기반 전처리를 수행할 수 있다.
동작 15에서 빅데이터 전처리 장치(100)는 처리 대상 파일 목록에 포함된 파일들을 분석하여 데이터셋을 생성하고, 데이터셋의 메타 정보에 기초하여 캐시 서버에 기 저장된 레시피를 복제하고, 복제한 레시피에 기초하여 데이터셋의 전처리를 수행할 수 있다.
일 실시예로서, 동작 15에서 빅데이터 전처리 장치(100)는 데이터 소스로부터 전체 처리 대상 파일들을 수집한 뒤, 데이터 셋을 생성할 수 있다.
일 실시예로서, 동작 15에서 빅데이터 전처리 장치(100)는 데이터셋의 전처리를 수행한 뒤, 데이터셋의 전처리 수행 결과의 시각화 데이터를 출력할 수 있다.
도 4는 본 발명의 일 실시예에 따른 처리 대상 파일의 전처리 방법을 개략적으로 나타낸 동작 흐름도이다. 도 4의 동작들은 빅데이터 전처리 장치(100)에 의해 수행될 수 있다.
도 4를 참조하면, 일 실시예에서, 스케줄러(110)는 동작 21에서, 데이터 소스에서 파일의 목록을 수집하여 전처리 작업이 필요한 파일을 결정할 수 있다. 예를 들어, 스케줄러(110)는 외부 파일 저장소(200)로부터 데이터 소스를 획득할 수 있다. 여기서, 파일은 CSV 파일, EXCEL 파일 등 텍스트 기반 파일일 수 있다. 전처리 작업이 필요한 지 여부는 미리 설정한 기준(예: 데이터 결측값 또는 이상값이 많은 파일)에 따라 결정될 수 있다.
일 실시예에서, 스케줄러(110)는 동작 22에서, 결정한 파일의 타입 및 결정한 파일에 포함된 데이터 레코드 수를 확인할 수 있다. 데이터 레코드는 한 행 이상으로 묶인 데이터의 집합(예: 텍스트 문단 등)을 의미할 수 있다. 따라서, 데이터 레코드 수는 해당 파일의 데이터 양을 의미할 수 있다.
일 실시예에서, 스케줄러(110)는 동작 23에서, 확인한 파일의 타입 및 데이터 레코드 수에 기반하여 결정한 파일이 분할 대상인지 판단할 수 있다. 예를 들어, 확인한 파일의 타입이 텍스트 기반 파일이고, 데이터 레코드 수가 미리 설정한 기준(예: 3만 건) 이상일 경우에 결정한 파일을 분할 대상으로 판단할 수 있다.
일 실시예에서, 스케줄러(110)는 판단 결과, 결정한 파일이 분할 대상인 경우 동작 24로 진행하여 결정한 파일을 복수의 데이터 레코드로 분할하고 복수의 데이터 레코드를 분석하여 데이터셋을 생성할 수 있다. 여기서, 복수의 데이터 레코드로 분할하는 기준은 빅데이터 전처리 장치(100)가 한 번에 처리할 수 있는 데이터 건수(예: 3만건)일 수 있다. 데이터셋은 파일이 여러 개로 나뉜 복수 개의 분할 파일을 포함할 수 있으며, 여기서 분할 파일은 복수의 데이터 레코드를 포함할 수 있다.
일 실시예에서, 스케줄러(110)는 동작 25에서 데이터셋을 생성하는 요청을 데이터 생성부(130)에 전송할 수 있다. 예를 들어, 스케줄러(110)는 API 관리부(120)에게 데이터셋 생성 API를 요청할 수 있다.
구체적으로, 결정한 파일이 분할 대상인 경우, 스케줄러(110)는 분할한 파일에 대응하는 복수의 데이터셋을 생성하는 요청을 데이터 생성부(130)에 전송할 수 있다.
또한, 동작 23 판단 결과, 결정한 파일이 분할 대상이 아닌 경우, 스케줄러(110)는 결정한 파일에 대응하는 단일 데이터셋을 생성하는 요청을 데이터 생성부(130)에 전송할 수 있다.
한편, 데이터셋의 관리의 편의성을 위해 스케줄러(110)는 미리 설정한 네이밍 룰에 기초하여 데이터셋의 명칭을 설정할 수 있다. 여기서 명칭의 대상은 데이터셋 자체이거나 분할 파일들일 수 있다. 즉, 데이터셋 생성 시 네이밍 규칙을 적용하여 데이터 분할, 개별 데이터 처리 및 데이터 통합에 필요한 데이터 추적을 용이하게 할 수 있다.
예를 들어, 도 5에 도시된 바와 같이, 구분자 ‘-‘ 로 구분하여 네이밍 룰이 정의될 수 있다. 순서대로, 1번 항목은 년월일 8자리(도 5 (a)의 YYYYMMDD), 2번 항목은 사용자 형태(사용자 UI를 통해 분할된 파일일 경우 “user”, 스케줄러를 통한 분할일 경우 “sJob”), 3번 항목은 분할 주체 노드(0000, 0001, …, 000N), 4번 항목은 실행 회차(0000, 0001, …, 000N), 5번 항목에서 앞 3자리는 전체 분할 수에서의 해당 인덱스, 중간 3자리는 전체 분할수, 나머지는 당일 처리한 누적 파일 수일 수 있다. 이에 따라 도 5의 (b)의 적색 사각형에 도시된 것과 같이 분할 파일들의 명칭이 네이밍될 수 있고, 단일 파일의 명칭이 네이밍될 수 있다.
일 실시예에서, 스케줄러(110)는 동작 26에서, 기 생성된 레시피 정보 및 데이터셋의 메타 정보를 비교할 수 있다. 여기서, 레시피 정보는 복수의 레시피를 포함할 수 있고, 레시피는 미리 정의되어 데이터를 전처리하는 특정 방법일 수 있다. 예를 들어, 엑셀 파일의 특정 행에서 결측값이 있을 경우, 해당 결측값을 0으로 대체하는 것이 데이터 전처리 중 하나의 방법이 될 수 있으며 이를 레시피로 명명할 수 있다. 또한, 예를 들어, 레시피는 특정 열의 무효값을 가진 칸이 있는 행을 삭제하는 전처리 방법, 특정 열의 빈 칸이 있는 행을 삭제하는 전처리 방법, 특정 열의 무효 값을 가진 칸이 있는 행을 삭제하는 전처리 방법 등일 수 있다.
일 실시예에서, 스케줄러(110)는 동작 27에서, 비교 결과에 기반하여 메타 정보에 대응하는 레시피가 기 생성된 레시피 정보에 존재하는 지 확인할 수 있다. 기 생성된 레시피 정보는 복수의 레시피를 포함할 뿐 아니라 해당 레시피가 적용된 파일의 메타 정보(예: 텍스트 파일의 컬럼의 길이, 타입)도 포함할 수 있다. 따라서, 새로 생성된 데이터셋의 메타 정보와 동일한 메타 정보를 가진 파일에 적용된 레시피는 새로 생성된 데이터셋에서도 활용될 가능성이 매우 높으므로 이를 확인할 수 있다.
일 실시예에서, 스케줄러(110)는 메타 정보에 대응하는 레시피가 기 생성된 레시피 정보에 존재할 경우, 동작 28로 진행하여 메타 정보에 대응하는 레시피를 복제할 수 있다. 예를 들어, 새로 생성된 데이터셋과 동일한 메타정보를 가진 파일에 수행된 레시피를 복제할 수 있다.
일 실시예에서, 스케줄러(110)는 동작 29에서, 복제한 레시피에 기반한 데이터셋의 전처리를 결정할 수 있다. 예를 들어, 스케줄러(110)는 전처리를 결정하고 데이터 전처리부(140)에 복제한 레시피 기반 데이터셋의 전처리를 요청할 수 있다.
한편, 파일 관리 및 공유의 편의성을 위해 스케줄러(110)는 결정한 파일에 결합된 순서대로 전처리된 데이터셋을 결합하여 전처리 파일을 생성할 수 있으며, 생성한 전처리 파일을 외부 파일 저장소(200)로 전송할 수 있다.
또한, 스케줄러(110)는 데이터 소스, 결정한 파일, 기 생성된 레시피 정보, 메타 정보, 복제한 레시피, 복수의 데이터셋 및 전처리 결과 중 적어도 하나를 캐시 서버(400)에 읽기 및 쓰기를 수행할 수 있다.
도 6은 본 발명의 일 실시예에 따른 데이터 분할 방법을 나타낸 동작 흐름도이다. 도 6의 동작들은 빅데이터 전처리 장치(100)에 의해 수행될 수 있다.
도 6을 참조하면, 일 실시예에서, 스케줄러(110)는 동작 41에서, 확인한 파일의 타입 및 데이터 건수에 기초하여 결정한 파일의 전체 행수를 확인할 수 있다. 예를 들어, 텍스트 기반 파일에서 전체 행수를 확인할 수 있다. 스케줄러(110)는 데이터 레코드를 분할할 때 분할하는 양의 기준을 행 수로 할 수 있으므로 전체 행수를 확인할 수 있다.
일 실시예에서, 스케줄러(110)는 동작 42에서, 전체 행수가 미리 설정한 기준 건수를 초과하는 지 확인할 수 있다. 여기서 미리 설정한 기준 건수는 빅데이터 전처리 장치(100)에서 한 번에 처리할 수 있는 데이터 건수일 수 있다.
일 실시예에서, 스케줄러(110)는 동작 43에서, 전체 행수가 미리 설정한 기준 건수를 초과할 경우, 결정한 파일을 행 단위로 분할할 수 있다.
일 실시예에서, 스케줄러(110)는 동작 44에서, 행 단위로 분할한 결과에 기초하여 복수의 데이터 레코드를 생성할 수 있다. 따라서, 여기서 복수의 데이터 레코드는 행수 단위로 분할된 데이터들일 수 있다.
도 7은 본 발명의 일 실시예에 따른 레시피 복제 방법을 개략적으로 나타낸 흐름도이다. 도 7의 동작들은 빅데이터 전처리 장치(100)에 의해 수행될 수 있다.
도 7을 참조하면, 일 실시예에서, 스케줄러(110)는 동작 51에서, 메타 정보에 대응하는 레시피가 기 생성된 레시피 정보에 존재할 경우, 메타 정보에 대응하는 적어도 하나의 레시피를 확인할 수 있다. 즉, 새로 생성된 데이터셋의 메타정보와 동일한 메타정보를 가진 파일에 이미 적용된 적어도 하나의 레시피를 확인할 수 있다.
일 실시예에서, 스케줄러(110)는 동작 52에서, 확인한 적어도 하나의 레시피가 변경된 이력이 존재하는 지 확인할 수 있다. 여기서 변경 이력이란 레시피가 실제로 파일에 적용되어 수행된 이력을 의미할 수 있다.
일 실시예에서, 스케줄러(110)는 동작 53에서, 확인한 적어도 하나의 레시피가 변경된 이력이 존재할 경우, 변경된 이력이 존재하는 적어도 하나의 레시피 중 가장 최근에 변경된 레시피를 복제할 수 있다. 시간 상으로 가장 최근에 변경된 레시피가 가장 활용 가능성이 높은 레시피가 되므로 이를 활용하여 전처리를 수행하기 위해 가장 최근에 변경된 레시피를 복제할 수 있다.
본 발명의 일 면에 따른 데이터 분할 기반 빅데이터 전처리 장치는 데이터 소스에서 확인한 파일의 분할, 데이터셋 생성 및 전처리를 제어하는 스케줄러; 상기 스케줄러의 데이터셋 생성 요청에 응답하여 상기 데이터셋을 생성하는 데이터 생성부; 및 상기 스케줄러의 전처리 요청에 응답하여 상기 데이터셋을 전처리하는 데이터 전처리부;를 포함하고, 상기 스케줄러는, 상기 데이터 소스에서 파일의 목록을 수집하여 전처리 작업이 필요한 파일을 결정하고, 상기 결정한 파일의 타입 및 상기 결정한 파일에 포함된 데이터 레코드 수를 확인하고, 상기 확인한 파일의 타입 및 상기 데이터 레코드 수에 기반하여 상기 결정한 파일이 분할 대상인지 판단하고, 상기 판단 결과, 상기 결정한 파일이 분할 대상인 경우 상기 결정한 파일을 복수의 데이터 레코드로 분할하고 상기 복수의 데이터 레코드를 분석하여 데이터셋을 생성하는 요청을 상기 데이터 생성부에 전송하고, 기 생성된 레시피 정보 및 상기 데이터셋의 메타 정보를 비교하고, 상기 메타 정보에 대응하는 레시피가 상기 기 생성된 레시피 정보에 존재할 경우, 상기 메타 정보에 대응하는 레시피를 복제하고, 상기 복제한 레시피에 기반한 상기 데이터셋의 전처리를 결정하는 것을 특징으로 할 수 있다.
다양한 실시예에 따르면, 상기 스케줄러는, 상기 결정한 파일에 결합된 순서대로 상기 전처리된 데이터셋을 결합하여 전처리 파일을 생성할 수 있다.
다양한 실시예에 따르면, 상기 스케줄러는, 외부 파일 저장소로부터 상기 데이터 소스를 획득하고, 상기 생성한 전처리 파일을 상기 외부 파일 저장소로 전송할 수 있다.
다양한 실시예에 따르면, 상기 스케줄러는, 상기 데이터 소스, 상기 결정한 파일, 상기 기 생성된 레시피 정보, 상기 메타 정보, 상기 복제한 레시피, 상기 데이터셋 및 전처리 결과 중 적어도 하나를 캐시 서버에 읽기 및 쓰기를 수행할 수 있다.
다양한 실시예에 따르면, 상기 스케줄러는, 상기 확인한 파일의 타입 및 상기 데이터 레코드 수에 기초하여 상기 결정한 파일의 전체 행수를 확인하고, 상기 전체 행수가 미리 설정한 기준 건수를 초과할 경우, 상기 결정한 파일을 행 단위로 분할하고, 상기 행 단위로 분할한 결과에 기초하여 상기 복수의 데이터 레코드를 생성할 수 있다.
다양한 실시예에 따르면, 상기 스케줄러는, 미리 설정한 네이밍 룰에 기초하여 상기 데이터셋의 명칭을 각각 설정할 수 있다.
다양한 실시예에 따르면, 상기 스케줄러는, 상기 메타 정보에 대응하는 레시피가 상기 기 생성된 레시피 정보에 존재할 경우, 상기 메타 정보에 대응하는 적어도 하나의 레시피를 확인하고, 상기 확인한 적어도 하나의 레시피가 변경된 이력이 존재하는 지 확인하고, 상기 확인한 적어도 하나의 레시피가 변경된 이력이 존재할 경우, 변경된 이력이 존재하는 적어도 하나의 레시피 중 가장 최근에 변경된 레시피를 복제할 수 있다.
다양한 실시예에 따르면, 상기 레시피는 미리 정의되어 데이터를 전처리하는 특정 방법일 수 있다.
본 발명의 일 면에 따른 빅데이터 전처리 장치에 의해 수행되는 데이터 분할 기반 빅데이터 전처리 방법은, 상기 빅데이터 전처리 장치가 데이터 소스에서 파일의 목록을 수집하여 전처리 작업이 필요한 파일을 결정하는 단계; 상기 빅데이터 전처리 장치가 상기 결정한 파일의 타입 및 상기 결정한 파일에 포함된 데이터 레코드 수를 확인하는 단계; 상기 빅데이터 전처리 장치가 상기 확인한 파일의 타입 및 상기 데이터 레코드 수에 기반하여 상기 결정한 파일이 분할 대상인지 판단하는 단계; 상기 빅데이터 전처리 장치가 상기 판단 결과, 상기 결정한 파일이 분할 대상인 경우 상기 결정한 파일을 복수의 데이터 레코드로 분할하고 상기 복수의 데이터 레코드를 분석하여 데이터셋을 생성하는 요청을 상기 데이터 생성부에 전송하는 단계; 상기 빅데이터 전처리 장치가 기 생성된 레시피 정보 및 상기 데이터셋의 메타 정보를 비교하는 단계; 상기 빅데이터 전처리 장치가 상기 메타 정보에 대응하는 레시피가 상기 기 생성된 레시피 정보에 존재할 경우, 상기 메타 정보에 대응하는 레시피를 복제하는 단계; 및 상기 빅데이터 전처리 장치가 상기 복제한 레시피에 기반한 상기 데이터셋의 전처리를 결정하는 단계;를 포함할 수 있다.
다양한 실시예에 따르면, 상기 빅데이터 전처리 장치가 상기 결정한 파일에 결합된 순서대로 상기 전처리된 데이터셋을 결합하여 전처리 파일을 생성하는 단계를 더 포함할 수 있다.
본 발명에서 설명하는 특정 실행들은 일 실시예들로서, 어떠한 방법으로도 본 발명의 범위를 한정하는 것은 아니다. 명세서의 간결함을 위하여, 종래 전자적인 구성들, 제어 시스템들, 소프트웨어, 상기 시스템들의 다른 기능적인 측면들의 기재는 생략될 수 있다. 또한, 도면에 도시된 구성 요소들 간의 선들의 연결 또는 연결 부재들은 기능적인 연결 및/또는 물리적 또는 회로적 연결들을 예시적으로 나타낸 것으로서, 실제 장치에서는 대체 가능하거나 추가의 다양한 기능적인 연결, 물리적인 연결, 또는 회로 연결들로서 나타내어질 수 있다. 또한, "필수적인", "중요하게" 등과 같이 구체적인 언급이 없다면 본 발명의 적용을 위하여 반드시 필요한 구성 요소가 아닐 수 있다.
따라서, 본 발명의 사상은 상기 설명된 실시예에 국한되어 정해져서는 아니 되며, 후술하는 특허청구범위뿐만 아니라 이 특허청구범위와 균등한 또는 이로부터 등가적으로 변경된 모든 범위는 본 발명의 사상의 범주에 속한다고 할 것이다.
본 발명의 실시예와 관련하여 설명된 방법 또는 알고리즘의 단계들은 하드웨어로 직접 구현되거나, 하드웨어에 의해 실행되는 소프트웨어 모듈로 구현되거나, 또는 이들의 결합에 의해 구현될 수 있다. 소프트웨어 모듈은 RAM(Random Access Memory), ROM(Read Only Memory), EPROM(Erasable Programmable ROM), EEPROM(Electrically Erasable Programmable ROM), 플래시 메모리(Flash Memory), 하드 디스크, 착탈형 디스크, CD-ROM, 또는 본 발명이 속하는 기술 분야에서 잘 알려진 임의의 형태의 컴퓨터 판독가능 기록매체에 상주할 수도 있다.
도 8은 본 발명의 일 실시예에 따른 컴퓨터 시스템을 나타낸 도면이다.
본 발명의 일 실시예에 따른 빅데이터 전처리 방법은 컴퓨터로 읽을 수 있는 기록매체와 같은 컴퓨터 시스템(1100)에서 구현될 수 있다.
도 8을 참조하면, 컴퓨터 시스템(1100)은 버스(1120)를 통하여 서로 통신하는 하나 이상의 프로세서(1110), 메모리(1130), 사용자 인터페이스 입력 장치(1140), 사용자 인터페이스 출력 장치(1150) 및 스토리지(1160)를 포함할 수 있다. 또한, 컴퓨터 시스템(1100)은 네트워크(1180)에 연결되는 네트워크 인터페이스(1170)를 더 포함할 수 있다. 프로세서(1110)는 중앙 처리 장치 또는 메모리(1130)나 스토리지(1160)에 저장된 프로세싱 인스트럭션들을 실행하는 반도체 장치일 수 있다. 메모리(1130) 및 스토리지(1160)는 다양한 형태의 휘발성 또는 비휘발성 저장 매체일 수 있다. 예를 들어, 메모리는 ROM(1131)이나 RAM(1132)을 포함할 수 있다.
이상, 첨부된 도면을 참조로 하여 본 발명의 실시예를 설명하였지만, 본 발명이 속하는 기술분야의 통상의 기술자는 본 발명이 그 기술적 사상이나 필수적인 특징을 변경하지 않고서 다른 구체적인 형태로 실시될 수 있다는 것을 이해할 수 있을 것이다. 그러므로, 이상에서 기술한 실시예들은 모든 면에서 예시적인 것이며, 제한적이 아닌 것으로 이해해야만 한다.
100: 빅데이터 전처리 장치
101, 102 및 103: 분산 노드들
110: 스케줄러
120: API 관리부
130: 데이터 생성부
140: 데이터 전처리부
150: 데이터 변환부
200: 외부 파일 저장소
400: 캐시 서버
1100: 컴퓨터 시스템
1110: 프로세서
1120: 버스
1130: 메모리
1131: 롬
1132: 램
1140: 사용자 인터페이스 입력 장치
1150: 사용자 인터페이스 출력 장치
1160: 스토리지
1170: 네트워크 인터페이스

Claims (10)

  1. 캐시 서버에 분산 노드들에 대한 접속 정보를 저장하는 단계;
    상기 접속 정보를 이용하여 상기 분산 노드들 각각의 분산 처리 수행 가능 여부를 확인하는 단계;
    상기 캐시 서버에 전체 처리 대상 파일들 중 기준 노드 및 상기 분산 노드들을 포함하는 전체 노드들 각각에 분배된 처리 대상 파일들을 지시하는 처리 대상 파일 목록을 저장하는 단계;
    상기 분산 노드들에 대해 제1잡(Job)의 수행을 지시하는 단계; 및
    상기 기준 노드의 처리 대상 파일 목록에 포함된 파일들에 대해 레시피(recipe) 기반 전처리를 수행하는 단계
    를 포함하는, 분산 노드를 이용한 빅데이터 전처리 방법.
  2. 제1항에 있어서,
    상기 레시피 기반 전처리를 수행하는 단계는
    상기 처리 대상 파일 목록에 포함된 파일들을 분석하여 데이터셋을 생성하는 단계;
    상기 데이터셋의 메타 정보에 기초하여 상기 캐시 서버에 기 저장된 레시피를 복제하는 단계; 및
    복제한 레시피에 기초하여 상기 데이터셋의 전처리를 수행하는 단계
    를 포함하는, 분산 노드를 이용한 빅데이터 전처리 방법.
  3. 제2항에 있어서,
    상기 레시피 기반 전처리를 수행하는 단계는
    상기 데이터셋의 전처리 수행 결과의 시각화 데이터를 출력하는 단계
    를 더 포함하는, 분산 노드를 이용한 빅데이터 전처리 방법.
  4. 제1항에 있어서,
    상기 분산 노드들 중 어느 하나의 분산 노드에 의해 수행되는 잡들은
    상기 분산 노드가 상기 분산 노드의 처리 대상 파일 목록에 포함된 파일들을 분석하여 데이터셋을 생성하는 제1잡,
    상기 분산 노드가 상기 데이터셋의 메타 정보에 기초하여 상기 캐시 서버에 기 저장된 레시피를 복제하는 제2잡, 및
    상기 분산 노드가 복제한 레시피에 기초하여 상기 데이터셋의 전처리를 수행하는 제3잡
    을 포함하고,
    상기 잡들은 제1잡, 제2잡 및 제3잡 순으로 순서를 갖고,
    상기 제1잡의 수행을 지시하는 단계는
    상기 분산 노드들에 대해 상기 제1잡의 실행을 지시하는 API(Application Programming Interface)를 호출하는 단계
    를 포함하고,
    상기 분산 노드들 각각은
    상기 API의 호출에 대한 응답으로 상기 제1잡을 완료한 뒤에 상기 제2잡을 실행하고, 상기 제2잡을 완료한 뒤에 상기 제3잡을 실행하는, 분산 노드를 이용한 빅데이터 전처리 방법.
  5. 제4항에 있어서,
    상기 분산 노드는
    상기 API의 호출에 대한 응답으로 상기 캐시 서버로부터 상기 분산 노드의 처리 대상 파일 목록을 획득한 뒤에 상기 분산 노드의 처리 대상 파일 목록에 포함된 파일들을 분석하여 데이터셋을 생성하는, 분산 노드를 이용한 빅데이터 전처리 방법.
  6. 제4항에 있어서,
    상기 API는
    레스트풀(RESTful) API인, 분산 노드를 이용한 빅데이터 전처리 방법.
  7. 제1항에 있어서,
    상기 접속 정보를 저장하는 단계는
    상기 기준 노드와 내부망으로 연결된 제1 분산 노드들의 내부 아이피(Internet Protocol, IP) 및 상기 기준 노드와 외부망으로 연결된 제2 분산 노드들의 공인 아이피를 상기 접속 정보로서 획득하는 단계
    를 포함하는, 분산 노드를 이용한 빅데이터 전처리 방법.
  8. 제1항에 있어서,
    상기 분산 처리 수행 가능 여부를 확인하는 단계는
    소켓(socket) 통신을 이용하여 상기 분산 노드들 각각의 분산 처리 수행 가능 여부를 확인하는 단계
    를 포함하는, 분산 노드를 이용한 빅데이터 전처리 방법.
  9. 제1항에 있어서,
    상기 처리 대상 파일 목록을 저장하는 단계는
    데이터 소스로부터 상기 전체 처리 대상 파일들을 수집하는 단계
    를 포함하는, 분산 노드를 이용한 빅데이터 전처리 방법.
  10. 적어도 하나의 프로그램이 기록된 메모리; 및
    상기 프로그램을 실행하는 프로세서
    를 포함하고,
    상기 프로그램은
    캐시 서버에 분산 노드들에 대한 접속 정보를 저장하는 단계;
    상기 접속 정보를 이용하여 상기 분산 노드들 각각의 분산 처리 수행 가능 여부를 확인하는 단계;
    상기 캐시 서버에 전체 처리 대상 파일들 중 기준 노드 및 상기 분산 노드들을 포함하는 전체 노드들 각각에 분배된 처리 대상 파일들을 지시하는 처리 대상 파일 목록을 저장하는 단계;
    상기 분산 노드들에 대해 제1잡(Job)의 수행을 지시하는 단계; 및
    상기 기준 노드의 처리 대상 파일 목록에 포함된 파일들에 대해 레시피(recipe) 기반 전처리를 수행하는 단계
    를 수행하기 위한 명령어들을 포함하는, 분산 노드를 이용한 빅데이터 전처리 장치.
KR1020210137027A 2021-10-15 2021-10-15 분산 노드를 이용한 빅데이터 전처리 방법 및 장치 KR20230053809A (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020210137027A KR20230053809A (ko) 2021-10-15 2021-10-15 분산 노드를 이용한 빅데이터 전처리 방법 및 장치

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020210137027A KR20230053809A (ko) 2021-10-15 2021-10-15 분산 노드를 이용한 빅데이터 전처리 방법 및 장치

Publications (1)

Publication Number Publication Date
KR20230053809A true KR20230053809A (ko) 2023-04-24

Family

ID=86141734

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020210137027A KR20230053809A (ko) 2021-10-15 2021-10-15 분산 노드를 이용한 빅데이터 전처리 방법 및 장치

Country Status (1)

Country Link
KR (1) KR20230053809A (ko)

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102099157B1 (ko) 2018-06-27 2020-04-09 (주)이지서티 빅데이터의 전처리 방법 및 장치

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102099157B1 (ko) 2018-06-27 2020-04-09 (주)이지서티 빅데이터의 전처리 방법 및 장치

Similar Documents

Publication Publication Date Title
KR101925696B1 (ko) 대규모 데이터 스트림들의 획득, 저장, 및 소비를 위한 관리 서비스
US9135071B2 (en) Selecting processing techniques for a data flow task
US9438665B1 (en) Scheduling and tracking control plane operations for distributed storage systems
US10158709B1 (en) Identifying data store requests for asynchronous processing
JP2012507075A (ja) 分散データシステムにおける構成管理
Humbetov Data-intensive computing with map-reduce and hadoop
US10146814B1 (en) Recommending provisioned throughput capacity for generating a secondary index for an online table
US10394805B2 (en) Database management for mobile devices
US9983823B1 (en) Pre-forking replicas for efficient scaling of a distribued data storage system
US20190065573A1 (en) Database optimization using special partition specifications for replicas
US10747739B1 (en) Implicit checkpoint for generating a secondary index of a table
CN104050042A (zh) Etl作业的资源分配方法及装置
US10013449B1 (en) Validating and non-validating secondary indexes for a table in a non-relational data store
WO2019109854A1 (zh) 分布式数据库数据处理方法、装置、存储介质及电子装置
US9875270B1 (en) Locking item ranges for creating a secondary index from an online table
Salehian et al. Comparison of spark resource managers and distributed file systems
CN115329011A (zh) 数据模型的构建方法、数据查询的方法、装置及存储介质
KR102504537B1 (ko) 데이터 분할 기반 데이터 전처리 장치 및 방법
Konishetty et al. Implementation and evaluation of scalable data structure over hbase
MAALA et al. Cluster trace analysis for performance enhancement in cloud computing environments
JP2008225686A (ja) 分散型データ処理プラットフォームにおけるデータ配置管理装置と方法、システム及びプログラム
Seybold An automation-based approach for reproducible evaluations of distributed DBMS on elastic infrastructures
JP6744272B2 (ja) 移行管理装置及び移行管理方法
KR20230053809A (ko) 분산 노드를 이용한 빅데이터 전처리 방법 및 장치
US11836125B1 (en) Scalable database dependency monitoring and visualization system

Legal Events

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