KR102504537B1 - 데이터 분할 기반 데이터 전처리 장치 및 방법 - Google Patents

데이터 분할 기반 데이터 전처리 장치 및 방법 Download PDF

Info

Publication number
KR102504537B1
KR102504537B1 KR1020200160279A KR20200160279A KR102504537B1 KR 102504537 B1 KR102504537 B1 KR 102504537B1 KR 1020200160279 A KR1020200160279 A KR 1020200160279A KR 20200160279 A KR20200160279 A KR 20200160279A KR 102504537 B1 KR102504537 B1 KR 102504537B1
Authority
KR
South Korea
Prior art keywords
data
recipe
processing
file
scheduler
Prior art date
Application number
KR1020200160279A
Other languages
English (en)
Other versions
KR20220072545A (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 KR1020200160279A priority Critical patent/KR102504537B1/ko
Publication of KR20220072545A publication Critical patent/KR20220072545A/ko
Application granted granted Critical
Publication of KR102504537B1 publication Critical patent/KR102504537B1/ko

Links

Images

Classifications

    • 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/119Details of migration of file systems
    • 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/16File or folder operations, e.g. details of user interfaces specifically adapted to file systems
    • G06F16/164File meta data generation
    • 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/16File or folder operations, e.g. details of user interfaces specifically adapted to file systems
    • G06F16/168Details of user interfaces specifically adapted to file systems, e.g. browsing and visualisation, 2d or 3d GUIs
    • 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/485Task life-cycle, e.g. stopping, restarting, resuming execution
    • G06F9/4856Task life-cycle, e.g. stopping, restarting, resuming execution resumption being on a different machine, e.g. task migration, virtual machine migration
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5061Partitioning or combining of resources
    • G06F9/5077Logical partitioning of resources; Management or configuration of virtualized resources

Abstract

데이터 전처리 장치가 제공된다. 본 발명의 일 면에 따른 데이터 분할 기반 데이터 전처리 장치는 데이터 소스에서 확인한 파일의 분할, 데이터셋 생성 및 전처리를 제어하는 스케줄러; 데이터 생성부에 요청하여 분석된 데이터로 데이터 형태에 적합한 전처리 기능을 제안하고, 사용자의 정의에 따라 데이터 전처리부에 요청하여 전처리 레시피를 생성할 수 있는 UI를 가진 API 관리부; 상기 스케줄러의 데이터셋 생성 요청에 응답하여 상기 데이터셋을 생성하는 데이터 생성부; 및 상기 스케줄러의 전처리 요청에 응답하여 상기 데이터셋을 전처리하는 데이터 전처리부; 를 포함하고, 상기 스케줄러는, 동일한 형태의 데이터 전처리에 필요한 레시피를 정의하고, 상기 데이터 소스에서 파일의 목록을 수집하여 전처리 작업이 필요한 파일을 결정하고, 상기 결정한 파일의 타입 및 상기 결정한 파일에 포함된 데이터 레코드 수를 확인하고, 상기 확인한 파일의 타입 및 상기 데이터 레코드 수에 기반하여 상기 결정한 파일이 분할 대상인지 판단하고, 상기 판단 결과, 상기 결정한 파일이 분할 대상인 경우 상기 결정한 파일을 복수의 데이터 레코드로 분할하고 상기 복수의 데이터 레코드를 분석하여 데이터셋을 생성하는 요청을 상기 데이터 생성부에 전송하고, 기 생성된 레시피 정보 및 상기 데이터셋의 메타 정보를 비교하고, 상기 메타 정보에 대응하는 레시피가 상기 기 생성된 레시피 정보에 존재할 경우, 상기 메타 정보에 대응하는 레시피를 복제하고, 상기 복제한 레시피에 기반한 상기 데이터셋의 전처리를 결정하는 것을 특징으로 할 수 있다. 다른 실시예들도 가능하다.

Description

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

Claims (11)

  1. 데이터 소스에서 확인한 파일의 분할, 데이터셋 생성 및 전처리를 제어하는 스케줄러;
    상기 스케줄러의 데이터셋 생성 요청에 응답하여 상기 데이터셋을 생성하는 데이터 생성부;
    상기 스케줄러의 전처리 요청에 응답하여 상기 데이터셋을 전처리하는 데이터 전처리부; 및
    상기 데이터 생성부에 요청하여 분석된 데이터의 데이터 형태에 대응하는 전처리 기능을 제공하고, 사용자의 정의에 따라 상기 데이터 전처리부에 요청하여 레시피를 생성할 수 있는 UI를 가진 API 관리부;를 포함하고,
    상기 스케줄러는,
    동일한 형태의 데이터 전처리에 필요한 레시피를 정의하고,
    상기 데이터 소스에서 파일의 목록을 수집하여 전처리 작업이 필요한 파일을 결정하고,
    상기 결정한 파일의 타입 및 상기 결정한 파일에 포함된 데이터 레코드 수를 확인하고,
    상기 확인한 파일의 타입 및 상기 데이터 레코드 수에 기반하여 상기 결정한 파일이 분할 대상인지 판단하고,
    상기 판단 결과, 상기 결정한 파일이 분할 대상인 경우 상기 결정한 파일을 복수의 데이터 레코드로 분할하고 상기 복수의 데이터 레코드를 분석하여 데이터셋을 생성하는 요청을 상기 데이터 생성부에 전송하고,
    기 생성된 레시피 정보 및 상기 데이터셋의 메타 정보를 비교하고,
    상기 메타 정보에 대응하는 레시피가 상기 기 생성된 레시피 정보에 존재할 경우, 상기 메타 정보에 대응하는 레시피를 복제하고,
    상기 복제한 레시피에 기반한 상기 데이터셋의 전처리를 결정하는 것을 특징으로 하는 데이터 분할 기반 데이터 전처리 장치.
  2. 제1항에 있어서, 상기 스케줄러는,
    상기 결정한 파일에 결합된 순서대로 상기 전처리된 데이터셋을 결합하여 전처리 파일을 생성하는 것을 특징으로 하는 데이터 분할 기반 데이터 전처리 장치.
  3. 제2항에 있어서, 상기 스케줄러는,
    외부 저장 장치로부터 상기 데이터 소스를 획득하고,
    상기 생성한 전처리 파일을 상기 외부 저장 장치로 전송하는 것을 특징으로 하는 데이터 분할 기반 데이터 전처리 장치.
  4. 제1항에 있어서, 상기 스케줄러는,
    상기 데이터 소스, 상기 결정한 파일, 상기 기 생성된 레시피 정보, 상기 메타 정보, 상기 복제한 레시피, 상기 데이터셋 및 전처리 결과 중 적어도 하나를 캐시 서버에 읽기 및 쓰기를 수행하는 것을 특징으로 하는 데이터 분할 기반 데이터 전처리 장치.
  5. 제1항에 있어서, 상기 스케줄러는,
    상기 확인한 파일의 타입 및 상기 데이터 레코드 수에 기초하여 상기 결정한 파일의 전체 행수를 확인하고,
    상기 전체 행수가 미리 설정한 기준 건수를 초과할 경우, 상기 결정한 파일을 행 단위로 분할하고,
    상기 행 단위로 분할한 결과에 기초하여 상기 복수의 데이터 레코드를 생성하는 것을 특징으로 하는 데이터 분할 기반 데이터 전처리 장치.
  6. 제1항에 있어서, 상기 스케줄러는,
    미리 설정한 네이밍 룰에 기초하여 상기 데이터셋의 명칭을 각각 설정하는 것을 특징으로 하는 데이터 분할 기반 데이터 전처리 장치.
  7. 제1항에 있어서, 상기 스케줄러는,
    상기 메타 정보에 대응하는 레시피가 상기 기 생성된 레시피 정보에 존재할 경우, 상기 메타 정보에 대응하는 적어도 하나의 레시피를 확인하고,
    상기 확인한 적어도 하나의 레시피가 변경된 이력이 존재하는 지 확인하고,
    상기 확인한 적어도 하나의 레시피가 변경된 이력이 존재할 경우, 변경된 이력이 존재하는 적어도 하나의 레시피 중 가장 최근에 변경된 레시피를 복제하는 것을 특징으로 하는 데이터 분할 기반 데이터 전처리 장치.
  8. 제1 항에 있어서,
    상기 레시피는 미리 정의되며, 분석된 데이터의 형태에 대응하는 레시피를 선별하여 데이터를 전처리하는 특정 방법인 것을 특징으로 하는 데이터 분할 기반 데이터 전처리 장치.
  9. 제8항에 있어서, 상기 스케줄러는,
    상기 레시피를 정의 함에 있어서 데이터 타입에 대응하는 전처리 기능을 제공하는 것을 특징으로 하는 데이터 분할 기반 데이터 전처리 장치.
  10. 데이터 전처리 장치에 의해 수행되는 데이터 분할 기반 데이터 전처리 방법에 있어서,
    상기 데이터 전처리 장치가 동일한 형태의 데이터 전처리에 필요한 레시피를 정의하는 단계;
    상기 데이터 전처리 장치가 데이터 소스에서 파일의 목록을 수집하여 전처리 작업이 필요한 파일을 결정하는 단계;
    상기 데이터 전처리 장치가 상기 결정한 파일의 타입 및 상기 결정한 파일에 포함된 데이터 레코드 수를 확인하는 단계;
    상기 데이터 전처리 장치가 상기 확인한 파일의 타입 및 상기 데이터 레코드 수에 기반하여 상기 결정한 파일이 분할 대상인지 판단하는 단계;
    상기 데이터 전처리 장치가 상기 판단 결과, 상기 결정한 파일이 분할 대상인 경우 상기 결정한 파일을 복수의 데이터 레코드로 분할하고 상기 복수의 데이터 레코드를 분석하여 데이터셋을 생성하는 요청을 데이터 생성부에 전송하는 단계;
    상기 데이터 전처리 장치가 기 생성된 레시피 정보 및 상기 데이터셋의 메타 정보를 비교하는 단계;
    상기 데이터 전처리 장치가 상기 메타 정보에 대응하는 레시피가 상기 기 생성된 레시피 정보에 존재할 경우, 상기 메타 정보에 대응하는 레시피를 복제하는 단계; 및
    상기 데이터 전처리 장치가 상기 복제한 레시피에 기반한 상기 데이터셋의 전처리를 결정하는 단계;를 포함하는 것을 특징으로 하는 데이터 분할 기반 데이터 전처리 방법.
  11. 제10항에 있어서,
    상기 데이터 전처리 장치가 상기 결정한 파일에 결합된 순서대로 상기 전처리된 데이터셋을 결합하여 전처리 파일을 생성하는 단계;를 더 포함하는 것을 특징으로 하는 데이터 분할 기반 데이터 전처리 방법.
KR1020200160279A 2020-11-25 2020-11-25 데이터 분할 기반 데이터 전처리 장치 및 방법 KR102504537B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020200160279A KR102504537B1 (ko) 2020-11-25 2020-11-25 데이터 분할 기반 데이터 전처리 장치 및 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020200160279A KR102504537B1 (ko) 2020-11-25 2020-11-25 데이터 분할 기반 데이터 전처리 장치 및 방법

Publications (2)

Publication Number Publication Date
KR20220072545A KR20220072545A (ko) 2022-06-02
KR102504537B1 true KR102504537B1 (ko) 2023-02-28

Family

ID=81985380

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020200160279A KR102504537B1 (ko) 2020-11-25 2020-11-25 데이터 분할 기반 데이터 전처리 장치 및 방법

Country Status (1)

Country Link
KR (1) KR102504537B1 (ko)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2024025235A1 (ko) * 2022-07-29 2024-02-01 삼성전자주식회사 전자 장치 및 전자 장치의 제어 방법

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003022206A (ja) 2001-07-06 2003-01-24 Fujitsu Ltd ファイル管理プログラムおよびファイル管理装置
KR102099157B1 (ko) 2018-06-27 2020-04-09 (주)이지서티 빅데이터의 전처리 방법 및 장치
JP2020135886A (ja) 2019-02-18 2020-08-31 ライン プラス コーポレーションLINE Plus Corporation コンピュータプログラム、リソース要求方法、コンピュータシステム及びサーバ

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101272611B1 (ko) * 2009-12-07 2013-06-10 한국전자통신연구원 신체부위별 탐지모델 기반의 영상 선정도 분석 방법 및 장치, 선정도 및 신체부위 기반 영상 데이터베이스 관리 방법 및 장치
KR101794537B1 (ko) * 2011-01-21 2017-11-07 삼성전자주식회사 데이터 처리 장치 및 방법
KR20160112776A (ko) * 2015-03-20 2016-09-28 한국전자통신연구원 대용량 데이터의 분할 또는 병합 방법 및 그 장치
KR20180070917A (ko) * 2016-12-19 2018-06-27 안광세 데이터 처리 방법 및 장치
KR101938946B1 (ko) * 2016-12-30 2019-01-15 주식회사 포스코아이씨티 대량의 데이터 수집을 위한 인터페이스 미들웨어 시스템 및 인터페이스 미들웨어 시스템의 데이터 수집 방법

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003022206A (ja) 2001-07-06 2003-01-24 Fujitsu Ltd ファイル管理プログラムおよびファイル管理装置
KR102099157B1 (ko) 2018-06-27 2020-04-09 (주)이지서티 빅데이터의 전처리 방법 및 장치
JP2020135886A (ja) 2019-02-18 2020-08-31 ライン プラス コーポレーションLINE Plus Corporation コンピュータプログラム、リソース要求方法、コンピュータシステム及びサーバ

Also Published As

Publication number Publication date
KR20220072545A (ko) 2022-06-02

Similar Documents

Publication Publication Date Title
US8347207B2 (en) Automatically moving annotations associated with multidimensional data between live datacubes
Chavan et al. Survey paper on big data
Prekopcsak et al. Radoop: Analyzing big data with rapidminer and hadoop
Singh et al. Hadoop: addressing challenges of big data
Humbetov Data-intensive computing with map-reduce and hadoop
US20070219947A1 (en) Distributed data mining using analysis services servers
KR102504537B1 (ko) 데이터 분할 기반 데이터 전처리 장치 및 방법
CN100485640C (zh) 用于企业软件系统的高速缓存
US20160203032A1 (en) Series data parallel analysis infrastructure and parallel distributed processing method therefor
Pothuganti Big data analytics: Hadoop-Map reduce & NoSQL databases
JP6204753B2 (ja) 分散クエリ処理装置、処理方法及び処理プログラム
US20200012808A1 (en) System and method for managing permissions of users for a single data type column-oriented data structure
JP2008225686A (ja) 分散型データ処理プラットフォームにおけるデータ配置管理装置と方法、システム及びプログラム
Rodriges Zalipynis Distributed in situ processing of big raster data in the Cloud
Verma et al. Big data analytics: performance evaluation for high availability and fault tolerance using mapreduce framework with hdfs
KR20230053809A (ko) 분산 노드를 이용한 빅데이터 전처리 방법 및 장치
Singh NoSQL: A new horizon in big data
Karduck et al. Data driven decision making for sustainable smart environments
Hassan et al. Simplified data processing for large cluster: a MapReduce and Hadoop based study
Bharambe et al. Self-organizing data processing for time series using spark
ELomari et al. New data placement strategy in the HADOOP framework
Rotte et al. Big data analytics made easy with Rhadoop
US20090138523A1 (en) Content engine asynchronous upgrade framework
US20220374810A1 (en) Accelerating outlier prediction of performance metrics in performance managers deployed in new computing environments
Pelekis et al. The case of big mobility data

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