KR20220072545A - Device and method for preparating data based on data division - Google Patents

Device and method for preparating data based on data division Download PDF

Info

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

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

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Human Computer Interaction (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

데이터 전처리 장치가 제공된다. 본 발명의 일 면에 따른 데이터 분할 기반 데이터 전처리 장치는 데이터 소스에서 확인한 파일의 분할, 데이터셋 생성 및 전처리를 제어하는 스케줄러; 데이터 생성부에 요청하여 분석된 데이터로 데이터 형태에 적합한 전처리 기능을 제안하고, 사용자의 정의에 따라 데이터 전처리부에 요청하여 전처리 레시피를 생성할 수 있는 UI를 가진 API 관리부; 상기 스케줄러의 데이터셋 생성 요청에 응답하여 상기 데이터셋을 생성하는 데이터 생성부; 및 상기 스케줄러의 전처리 요청에 응답하여 상기 데이터셋을 전처리하는 데이터 전처리부; 를 포함하고, 상기 스케줄러는, 동일한 형태의 데이터 전처리에 필요한 레시피를 정의하고, 상기 데이터 소스에서 파일의 목록을 수집하여 전처리 작업이 필요한 파일을 결정하고, 상기 결정한 파일의 타입 및 상기 결정한 파일에 포함된 데이터 레코드 수를 확인하고, 상기 확인한 파일의 타입 및 상기 데이터 레코드 수에 기반하여 상기 결정한 파일이 분할 대상인지 판단하고, 상기 판단 결과, 상기 결정한 파일이 분할 대상인 경우 상기 결정한 파일을 복수의 데이터 레코드로 분할하고 상기 복수의 데이터 레코드를 분석하여 데이터셋을 생성하는 요청을 상기 데이터 생성부에 전송하고, 기 생성된 레시피 정보 및 상기 데이터셋의 메타 정보를 비교하고, 상기 메타 정보에 대응하는 레시피가 상기 기 생성된 레시피 정보에 존재할 경우, 상기 메타 정보에 대응하는 레시피를 복제하고, 상기 복제한 레시피에 기반한 상기 데이터셋의 전처리를 결정하는 것을 특징으로 할 수 있다. 다른 실시예들도 가능하다.A data preprocessing device is provided. Data division-based data pre-processing apparatus according to an aspect of the present invention includes: a scheduler for controlling file division, data set generation, and pre-processing checked in a data source; API management unit having a UI that can request the data generation unit and propose a pre-processing function suitable for the data type with the analyzed data, and request the data pre-processing unit according to the user's definition to generate a pre-processing recipe; a data generator configured to generate the dataset in response to a dataset creation request from the scheduler; and a data preprocessor for preprocessing the dataset in response to a preprocessing request from the scheduler. including, wherein the scheduler defines a recipe required for data preprocessing of the same type, collects a list of files from the data source, determines a file that requires preprocessing, and includes the determined file type and the determined file Check the number of data records, determine whether the determined file is to be divided based on the checked type of file and the number of data records and transmits a request for generating a dataset by analyzing the plurality of data records to the data generator, comparing pre-generated recipe information with meta information of the dataset, and a recipe corresponding to the meta information When it exists in the pre-generated recipe information, the recipe corresponding to the meta-information may be duplicated, and pre-processing of the dataset based on the duplicated recipe may be determined. Other embodiments are possible.

Description

데이터 분할 기반 데이터 전처리 장치 및 방법{DEVICE AND METHOD FOR PREPARATING DATA BASED ON DATA DIVISION}Apparatus and method for data preprocessing based on data division

본 발명은 데이터 분할 기반 데이터 전처리 장치 및 방법에 관한 것으로, 보다 자세하게는 빅데이터 기반의 데이터 전처리를 데이터 건수에 관계없이 수행할 수 있도록 데이터 분할 기능을 이용한 데이터 전처리 장치 및 방법에 관한 것이다.The present invention relates to a data division-based data pre-processing apparatus and method, and more particularly, to a data pre-processing apparatus and method using a data division function so that big data-based data pre-processing can be performed regardless of the number of data cases.

최근 기술의 발전에 따라 다양한 전자 장치에서 생성되는 데이터들이 폭발적으로 증가하고 있다. 특히, 스마트폰과 태블릿 PC의 보급화는 정보의 생산, 유통, 보유량의 증가로 이어지고 데이터의 기하급수적인 증가를 이끌고 있다. 하지만 데이터의 증가에 비해 가치 있는 데이터는 소수에 불과하다. 따라서 대용량 데이터를 처리하고, 의미 있는 데이터를 발굴하는 기술이 필요하다.With the recent development of technology, data generated by various electronic devices is increasing explosively. In particular, the spread of smartphones and tablet PCs leads to an increase in the production, distribution, and retention of information, leading to an exponential increase in data. However, there is only a handful of valuable data compared to the increase in data. Therefore, it is necessary to process large-capacity data and to discover meaningful data.

데이터 전처리(Data Preparation)는 데이터를 추가 분석 및 처리에 적합한 형식으로 조작하는 것을 의미하며 다른 많은 업무를 포함하고 완전히 자동화 될 수 없는 과정이다. 이러한 데이터 준비 활동은 일상적으로 지루하고 많은 시간이 소요된다. 그러나 데이터 준비 작업은 데이터 마이닝 프로젝트에 소요되는 전체 시간의 60%~80%를 차지하는 것으로 추산된다. 품질이 낮은 데이터는 일반적으로 부정확하고 신뢰 할 수 없는 데이터 마이닝 결과를 초래하기 때문에 성공적인 데이터 마이닝을 위해서는 데이터의 전처리가 필수적이다. 그러나 대용량 데이터를 사람이 정제 및 정형을 하기에는 그 방대한 양 때문에 한계가 있는 문제점이 있었다.Data Preparation refers to the manipulation of data into a format suitable for further analysis and processing, a process that involves many other tasks and cannot be fully automated. These data preparation activities are routinely tedious and time consuming. However, it is estimated that data preparation work accounts for 60% to 80% of the total time spent on data mining projects. Data preprocessing is essential for successful data mining because low-quality data usually leads to inaccurate and unreliable data mining results. However, there is a problem in that there is a limit because of the vast amount of data for humans to refine and format large data.

한편, 빅데이터를 처리하기 위한 데이터의 전처리 작업에서는 대상 데이터의 건수가 수만 건을 상회하는 경우가 빈번하나 이러한 대용량 데이터를 한 번에 처리할 수 있는 건수에는 제한이 있으므로 전처리 작업이 지연되는 문제점이 있었다.On the other hand, in the data pre-processing task for processing big data, the number of target data frequently exceeds tens of thousands, but there is a limit to the number of cases that can be processed at once, so the problem of delay in the pre-processing task there was.

(특허문헌 0001) KR 등록특허공보 10-2099157(Patent Document 0001) KR Registered Patent Publication No. 10-2099157

본 발명은 상기와 같은 문제점을 해결하기 위해 안출된 것으로서, 빅데이터 기반의 데이터 전처리를 손쉽게 하기 위한 데이터 분할 처리 기능을 포함하는 데이터 전처리 장치 및 방법을 제공하는데 그 목적이 있다.The present invention has been devised to solve the above problems, and an object of the present invention is to provide a data pre-processing apparatus and method including a data division processing function for facilitating data pre-processing based on big data.

또한, 본 발명은 빅데이터에 활용될 데이터의 전처리 작업의 일괄 처리를 위한 스케줄러 잡(Scheduler Job)이 적용된 데이터 전처리 장치 및 방법을 제공하는데 그 목적이 있다.Another object of the present invention is to provide a data pre-processing apparatus and method to which a scheduler job for batch processing of a pre-processing job of data to be used for big data is applied.

또한, 본 발명은 전체 워크로드에서 스케줄러 간 작업 연관성 유지를 위한 별도의 메타 데이터 공유 기능이 구현된 데이터 전처리 장치 및 방법을 제공하는데 그 목적이 있다.Another object of the present invention is to provide a data pre-processing apparatus and method in which a separate metadata sharing function for maintaining task relevance between schedulers in an overall workload is implemented.

또한, 본 발명은 원본 데이터 및 전처리한 데이터를 타 서비스와의 연계/공유할 수 있도록 외부 저장장치 기반의 데이터 입출력 기능이 구현된 데이터 전처리 장치 및 방법을 제공하는데 그 목적이 있다.Another object of the present invention is to provide a data pre-processing apparatus and method in which an external storage-based data input/output function is implemented so that original data and pre-processed data can be linked/shared with other services.

본 발명이 해결하고자 하는 과제들은 이상에서 언급된 과제로 제한되지 않으며, 언급되지 않은 또 다른 과제들은 아래의 기재로부터 통상의 기술자에게 명확하게 이해될 수 있을 것이다.The problems to be solved by the present invention are not limited to the problems mentioned above, and other problems not mentioned will be clearly understood by those skilled in the art from the following description.

상술한 과제를 해결하기 위한 본 발명의 일 면에 따른 데이터 분할 기반 데이터 전처리 장치는 데이터 소스에서 확인한 파일의 분할, 데이터셋 생성 및 전처리를 제어하는 스케줄러; 상기 스케줄러의 데이터셋 생성 요청에 응답하여 상기 데이터셋을 생성하는 데이터 생성부; 상기 스케줄러의 전처리 요청에 응답하여 상기 데이터셋을 전처리하는 데이터 전처리부; 및 상기 데이터 생성부에 요청하여 분석된 데이터로 데이터 형태에 적합한 전처리 기능을 제안하고, 사용자의 정의에 따라 상기 데이터 전처리부에 요청하여 레시피를 생성할 수 있는 UI를 가진 API 관리부;를 포함하고, 상기 스케줄러는, 동일한 형태의 데이터 전처리에 필요한 레시피를 정의하고, 상기 데이터 소스에서 파일의 목록을 수집하여 전처리 작업이 필요한 파일을 결정하고, 상기 결정한 파일의 타입 및 상기 결정한 파일에 포함된 데이터 레코드 수를 확인하고, 상기 확인한 파일의 타입 및 상기 데이터 레코드 수에 기반하여 상기 결정한 파일이 분할 대상인지 판단하고, 상기 판단 결과, 상기 결정한 파일이 분할 대상인 경우 상기 결정한 파일을 복수의 데이터 레코드로 분할하고 상기 복수의 데이터 레코드를 분석하여 데이터셋을 생성하는 요청을 상기 데이터 생성부에 전송하고, 기 생성된 레시피 정보 및 상기 데이터셋의 메타 정보를 비교하고, 상기 메타 정보에 대응하는 레시피가 상기 기 생성된 레시피 정보에 존재할 경우, 상기 메타 정보에 대응하는 레시피를 복제하고, 상기 복제한 레시피에 기반한 상기 데이터셋의 전처리를 결정하는 것을 특징으로 할 수 있다.A data division-based data preprocessing apparatus according to an aspect of the present invention for solving the above-described problems includes: a scheduler for controlling division of a file identified in a data source, generation of a data set, and preprocessing; a data generator configured to generate the dataset in response to a dataset creation request from the scheduler; a data preprocessor for preprocessing the dataset in response to a preprocessing request from the scheduler; and an API management unit having a UI for requesting the data generation unit and proposing a pre-processing function suitable for a data type with the analyzed data, and requesting the data pre-processing unit according to a user's definition to generate a recipe; The scheduler defines a recipe required for data preprocessing of the same type, collects a list of files from the data source, determines a file that requires preprocessing, and determines the type of file and the number of data records included in the determined file check, determine whether the determined file is a division target based on the identified file type and the number of data records, and as a result of the determination, if the determined file is a division target, divide the determined file into a plurality of data records, and Transmitting a request for generating a dataset by analyzing a plurality of data records to the data generator, comparing previously generated recipe information with meta information of the dataset, and generating a recipe corresponding to the meta information If it exists in the recipe information, it may be characterized in that the recipe corresponding to the meta information is duplicated, and pre-processing of the dataset based on the duplicated recipe is determined.

본 발명의 기타 구체적인 사항들은 상세한 설명 및 도면들에 포함되어 있다.Other specific details of the invention are included in the detailed description and drawings.

상기와 같은 본 발명에 따르면, 아래와 같은 다양한 효과들을 가진다.According to the present invention as described above, it has various effects as follows.

본 발명에 따르면, 한 번에 처리 가능한 건수 기준으로 파일을 분할처리함으로써 레코드 제한 없이 데이터를 비동기적으로 처리할 수 있다.According to the present invention, data can be processed asynchronously without record limitation by dividing files based on the number of cases that can be processed at one time.

또한, 본 발명에 따르면, 네트워크를 통한 외부 공유 저장 장치로부터 데이터를 입/출력 할 수 있도록 함으로서 전처리 전/후 데이터의 공유 편의성이 향상될 수 있다.In addition, according to the present invention, by allowing data to be input/output from an external shared storage device through a network, the convenience of sharing data before/after pre-processing can be improved.

또한, 본 발명에 따르면, In-Memory 기반의 캐시 서버를 이용해 메타 데이터를 저장하고 데이터의 분할, 전처리, 통합을 위한 개별 Scheduler Job이 해당 메타 데이터를 토대로 연속적으로 작업을 수행할 수 있도록 하여 동일한 환경에서의 데이터 처리건수를 향상하여 빅데이터 전처리 워크로드를 개선할 수 있다.In addition, according to the present invention, metadata is stored using an in-memory-based cache server, and individual Scheduler Jobs for data division, pre-processing, and integration can continuously perform tasks based on the corresponding metadata, so that the same Big data pre-processing workloads can be improved by improving the number of data processing cases in the environment.

본 발명의 효과들은 이상에서 언급된 효과로 제한되지 않으며, 언급되지 않은 또 다른 효과들은 아래의 기재로부터 통상의 기술자에게 명확하게 이해될 수 있을 것이다.Effects of the present invention are not limited to the effects mentioned above, and other effects not mentioned will be clearly understood by those skilled in the art from the following description.

도 1은 본 발명의 일 실시 예에 따른 데이터 전처리 장치 및 시스템을 개략적으로 나타낸 블록도이다.
도 2는 본 발명의 일 실시 예에 따른 데이터 전처리 방법을 개략적으로 나타낸 흐름도이다.
도 3은 본 발명의 일 실시 예에 따른 데이터 전처리 방법을 개략적으로 나타낸 예시도이다.
도 4는 본 발명의 일 실시 예에 따른 데이터 분할 방법을 개략적으로 나타낸 흐름도이다.
도 5는 본 발명의 일 실시 예에 따른 레시피 복제 방법을 개략적으로 나타낸 흐름도이다.
1 is a block diagram schematically illustrating a data pre-processing apparatus and system according to an embodiment of the present invention.
2 is a flowchart schematically illustrating a data pre-processing method according to an embodiment of the present invention.
3 is an exemplary diagram schematically illustrating a data pre-processing method according to an embodiment of the present invention.
4 is a flowchart schematically illustrating a data partitioning method according to an embodiment of the present invention.
5 is a flowchart schematically illustrating a recipe duplication method according to an embodiment of the present invention.

본 발명의 이점 및 특징, 그리고 그것들을 달성하는 방법은 첨부되는 도면과 함께 상세하게 후술되어 있는 실시예들을 참조하면 명확해질 것이다. 그러나, 본 발명은 이하에서 개시되는 실시예들에 제한되는 것이 아니라 서로 다른 다양한 형태로 구현될 수 있으며, 단지 본 실시예들은 본 발명의 개시가 완전하도록 하고, 본 발명이 속하는 기술 분야의 통상의 기술자에게 본 발명의 범주를 완전하게 알려주기 위해 제공되는 것이며, 본 발명은 청구항의 범주에 의해 정의될 뿐이다. Advantages and features of the present invention and methods of achieving them will become apparent with reference to the embodiments described below in detail in conjunction with the accompanying drawings. However, the present invention is not limited to the embodiments disclosed below, but may be implemented in various different forms, and only the present embodiments allow the disclosure of the present invention to be complete, and those of ordinary skill in the art to which the present invention pertains. It is provided to fully understand the scope of the present invention to those skilled in the art, and the present invention is only defined by the scope of the claims.

본 명세서에서 사용된 용어는 실시예들을 설명하기 위한 것이며 본 발명을 제한하고자 하는 것은 아니다. 본 명세서에서, 단수형은 문구에서 특별히 언급하지 않는 한 복수형도 포함한다. 명세서에서 사용되는 "포함한다(comprises)" 및/또는 "포함하는(comprising)"은 언급된 구성요소 외에 하나 이상의 다른 구성요소의 존재 또는 추가를 배제하지 않는다. 명세서 전체에 걸쳐 동일한 도면 부호는 동일한 구성 요소를 지칭하며, "및/또는"은 언급된 구성요소들의 각각 및 하나 이상의 모든 조합을 포함한다. 비록 "제1", "제2" 등이 다양한 구성요소들을 서술하기 위해서 사용되나, 이들 구성요소들은 이들 용어에 의해 제한되지 않음은 물론이다. 이들 용어들은 단지 하나의 구성요소를 다른 구성요소와 구별하기 위하여 사용하는 것이다. 따라서, 이하에서 언급되는 제1 구성요소는 본 발명의 기술적 사상 내에서 제2 구성요소일 수도 있음은 물론이다.The terminology used herein is for the purpose of describing the embodiments and is not intended to limit the present invention. In this specification, the singular also includes the plural unless specifically stated otherwise in the phrase. As used herein, “comprises” and/or “comprising” does not exclude the presence or addition of one or more other components in addition to the stated components. Like reference numerals refer to like elements throughout, and "and/or" includes each and every combination of one or more of the recited elements. Although "first", "second", etc. are used to describe various elements, these elements are not limited by these terms, of course. These terms are only used to distinguish one component from another. Accordingly, it goes without saying that the first component mentioned below may be the second component within the spirit of the present invention.

다른 정의가 없다면, 본 명세서에서 사용되는 모든 용어(기술 및 과학적 용어를 포함)는 본 발명이 속하는 기술분야의 통상의 기술자에게 공통적으로 이해될 수 있는 의미로 사용될 수 있을 것이다. 또한, 일반적으로 사용되는 사전에 정의되어 있는 용어들은 명백하게 특별히 정의되어 있지 않는 한 이상적으로 또는 과도하게 해석되지 않는다.Unless otherwise defined, all terms (including technical and scientific terms) used herein will have the meaning commonly understood by those of ordinary skill in the art to which this invention belongs. In addition, terms defined in a commonly used dictionary are not to be interpreted ideally or excessively unless specifically defined explicitly.

공간적으로 상대적인 용어인 "아래(below)", "아래(beneath)", "하부(lower)", "위(above)", "상부(upper)" 등은 도면에 도시되어 있는 바와 같이 하나의 구성요소와 다른 구성요소들과의 상관관계를 용이하게 기술하기 위해 사용될 수 있다. 공간적으로 상대적인 용어는 도면에 도시되어 있는 방향에 더하여 사용시 또는 동작시 구성요소들의 서로 다른 방향을 포함하는 용어로 이해되어야 한다. 예를 들어, 도면에 도시되어 있는 구성요소를 뒤집을 경우, 다른 구성요소의 "아래(below)"또는 "아래(beneath)"로 기술된 구성요소는 다른 구성요소의 "위(above)"에 놓여질 수 있다. 따라서, 예시적인 용어인 "아래"는 아래와 위의 방향을 모두 포함할 수 있다. 구성요소는 다른 방향으로도 배향될 수 있으며, 이에 따라 공간적으로 상대적인 용어들은 배향에 따라 해석될 수 있다.Spatially relative terms "below", "beneath", "lower", "above", "upper", etc. It can be used to easily describe the correlation between a component and other components. Spatially relative terms should be understood as terms including different directions of components during use or operation in addition to the directions shown in the drawings. For example, when a component shown in the drawing is turned over, a component described as “beneath” or “beneath” of another component may be placed “above” of the other component. can Accordingly, the exemplary term “below” may include both directions below and above. Components may also be oriented in other orientations, and thus spatially relative terms may be interpreted according to orientation.

이하, 첨부된 도면을 참조하여 본 발명의 실시예를 상세하게 설명한다. Hereinafter, embodiments of the present invention will be described in detail with reference to the accompanying drawings.

도 1은 본 발명의 일 실시 예에 따른 데이터 전처리 장치 및 시스템을 개략적으로 나타낸 블록도이다.1 is a block diagram schematically illustrating a data pre-processing apparatus and system according to an embodiment of the present invention.

도 1을 참조하면, 본 발명의 일 실시 예에 따른 데이터 전처리 장치(100)는 외부 저장 장치(200), 로컬 저장 장치(300) 및 캐시 서버(400)와 네트워크를 통해 서로 통신 연결될 수 있다. 여기서 네트워크는 무선 네트워크 및 유선 네트워크를 포함할 수 있다. 예를 들어, 상기 네트워크는 근거리 통신 네트워크(예: 블루투스, WiFi direct 또는 IrDA(infrared data association)) 또는 원거리 통신 네트워크(예: 셀룰러 네트워크, 인터넷, 또는 컴퓨터 네트워크(예: LAN 또는 WAN))일 수 있다.Referring to FIG. 1 , the data preprocessing apparatus 100 according to an embodiment of the present invention may be communicatively connected to an external storage device 200 , a local storage device 300 , and a cache server 400 through a network. Here, the network may include a wireless network and a wired network. For example, the network may be a short-range communication network (eg, Bluetooth, WiFi direct, or infrared data association (IrDA)) or a telecommunications network (eg, a cellular network, the Internet, or a computer network (eg, LAN or WAN)). have.

일 실시 예에서, 데이터 전처리 장치(100)는 데이터 전처리 작업을 수행할 수 있는 어플리케이션 프로그램이 저장된 서버일 수 있고, 웹 서비스(예: 스마트폰의 앱 어플리케이션, 인터넷의 웹 페이지)를 통해 데이터 전처리가 수행되는 어플리케이션 프로그램을 제공할 수 있다.In an embodiment, the data pre-processing apparatus 100 may be a server in which an application program capable of performing data pre-processing is stored, and data pre-processing is performed through a web service (eg, an app application of a smartphone, a web page of the Internet). An application program to be executed may be provided.

일 실시 예에서, 데이터 전처리 장치(100)는 마이크로 서비스 아키텍쳐(Microservice architecture) 기반으로 구성된 장치일 수 있다. 여기서 마이크로 서비스 아키텍쳐란 하나의 큰 서비스를 독립적인 역할을 수행하는 작은 단위의 서비스로 분산하여 설계하는 패턴을 의미할 수 있다. 여기서 독립적인 역할이란, 예를 들어, 본 발명의 모듈에 해당하는 스케줄러(110), API 관리부(120), 데이터 생성부(130), 데이터 전처리부(140) 및 데이터 변환부(150)에서 각각 제공하는 기능을 의미할 수 있다.In an embodiment, the data preprocessing apparatus 100 may be a device configured based on a microservice architecture. Here, the microservice architecture may refer to a pattern of designing a single large service by distributing it as a small unit of service that performs an independent role. Here, the independent role is, for example, in the scheduler 110 , the API management unit 120 , the data generation unit 130 , the data pre-processing unit 140 , and the data conversion unit 150 corresponding to the module of the present invention, respectively. It may mean the function provided.

예를 들어, 데이터 전처리 장치(100)에서 마이크로 서비스 아키텍쳐가 적용되므로, 스케줄러(110), API 관리부(120), 데이터 생성부(130), 데이터 전처리부(140), 데이터 변환부(150)는 각각 개별적으로 독립적인 단위의 어플리케이션일 수 있다. 따라서, 데이터 전처리 장치(100)는 제공하고자 하는 서비스를 추가 또는 변경하기 위해 전체 프로그램 구조를 변경할 필요가 없고, 각각의 모듈에 해당하는 스케줄러(110), API 관리부(120), 데이터 생성부(130), 데이터 전처리부(140), 데이터 변환부(150) 중 일부를 변경하거나 더 추가할 수 있다.For example, since the microservice architecture is applied in the data preprocessor 100, the scheduler 110, the API manager 120, the data generator 130, the data preprocessor 140, and the data converter 150 are Each may be an independent unit of application. Accordingly, the data preprocessing apparatus 100 does not need to change the overall program structure to add or change the service to be provided, and the scheduler 110 , the API manager 120 , and the data generator 130 corresponding to each module. ), the data pre-processing unit 140 , and the data converting unit 150 may be partially changed or added.

예를 들어, 데이터 전처리 장치(100)는 데이터 전처리 기능 중 일부를 교체하거나 추가할 경우, 전체 시스템 구조를 변경할 필요 없이 데이터 전처리부(140)와 동일한 구조를 가지면서 기능이 추가된 모듈을 데이터 전처리부(140)에 연결함으로써 손쉽게 기능 중 일부를 교체하거나 추가할 수 있다.For example, when some of the data pre-processing functions are replaced or added, the data pre-processing apparatus 100 performs data pre-processing with a module having the same structure as the data pre-processing unit 140 and added functions without changing the entire system structure. By connecting to the unit 140, some of the functions can be easily replaced or added.

또한, 예를 들어, 데이터 전처리 장치(100)는 제공하고자 하는 기능 중 일부가 과부하(예: 과도한 데이터 전처리 또는 데이터 변환)가 걸린 경우, 전체 시스템 구조를 확장할 필요 없이 과부하가 걸린 모듈, 예컨대 데이터 전처리부(140) 또는 데이터 변환부(150)와 동일한 기능을 갖는 모듈을 병렬로 연결함으로써 처리 용량을 손쉽게 확장할 수 있다.Also, for example, when some of the functions to be provided are overloaded (eg, excessive data pre-processing or data conversion), the data pre-processing device 100 does not need to expand the entire system structure, and the overloaded module, such as data By connecting modules having the same function as the pre-processing unit 140 or the data converting unit 150 in parallel, the processing capacity can be easily expanded.

일 실시 예에서, 데이터 전처리 장치(100)는 새로운 네이밍 룰을 적용하여 분할된 데이터를 손쉽게 확인할 수 있고, 외부 저장 장치(200)를 통해 전처리 데이터를 손쉽게 공유하면서 분산 저장할 수 있고, 작업 대상 데이터를 읽어 분할하여 전처리 후 출력하는 4개의 Scheduler Job을 구비할 수 있고, 분리된 작업을 이어주며 작업 간 메타 데이터를 저장하는 외부의 캐시 서버(400)와 연결될 수 있다. 네이밍 룰에 대한 구체적인 내용은 후술한다.In one embodiment, the data pre-processing apparatus 100 can easily check the divided data by applying a new naming rule, and can distribute and store the pre-processing data while easily sharing the pre-processing data through the external storage device 200, It can be provided with four Scheduler Jobs that are read, divided, and output after preprocessing, and can be connected to an external cache server 400 that connects separated jobs and stores metadata between jobs. Specific details of the naming rule will be described later.

일 실시 예에서, 4개의 스케줄러 잡은 Read Job, Create Job, Single Export Job 및 Split Export Job을 포함할 수 있다. 예를 들어, Read Job은 파일의 목록 수집 및 작업 대상 파일을 확정하는 역할일 수 있고, Create Job은 파일 타입의 확인, 분할 및 데이터셋을 생성하는 역할일 수 있고, Single Export Job은 대상 파일의 메타를 확인하고 복제 대상 레시피를 확인, 단일 파일의 전처리 및 외부 저장소로 파일 출력하는 역할일 수 있고, Split Export Job은 분할 파일의 전처리 및 외부 저장소로 통합, 파일 출력하는 역할일 수 있다. 이에 대한 자세한 내용은 도 2 내지 도 5에서 후술한다.In an embodiment, the four scheduler jobs may include a Read Job, Create Job, Single Export Job, and Split Export Job. For example, the Read Job may be a role of collecting a list of files and confirming the target file to be worked, the Create Job may be a role of confirming, dividing, and creating a data set of the file type, and the Single Export Job may be the role of determining the target file. It can be a role of checking meta, checking a recipe to be copied, pre-processing a single file and outputting a file to an external storage, and Split Export Job can be a role of pre-processing a split file, integrating to an external storage, and outputting a file. Details on this will be described later with reference to FIGS. 2 to 5 .

일 실시 예에서, 데이터 전처리 장치(100)는 외부 저장 장치(200)로부터 전처리 대상 파일 목록을 확인할 수 있고, 파일의 타입 확인, 전체 레코드 수를 확인/분할 하여 전처리 대상 레코드를 생성할 수 있고, 분할된 레코드를 분석하여 데이터셋을 생성할 수 있고, 생성된 데이터셋의 메타 정보를 참조하여 복제 대상 레시피 확인/선별할 수 있고, 복제된 레시피로 전처리를 수행할 수 있고, 데이터셋에 포함된 분할 파일은 전처리 후 데이터 무결성이 보장될 수 있도록 원본과 동일한 순서로 통합하여 저장할 수 있고, 전체 사이클 종료 시 작업 연계를 위한 공유 메타 데이터를 초기화할 수 있다.In an embodiment, the data pre-processing apparatus 100 may check the list of pre-processing files from the external storage device 200, check the file type and check/divide the total number of records to generate the pre-processing target records, A dataset can be created by analyzing the divided records, the replication target recipe can be checked/selected by referring to the meta information of the created dataset, preprocessing can be performed with the replicated recipe, and the Split files can be saved in the same order as the original so that data integrity can be guaranteed after preprocessing, and shared metadata for job linkage can be initialized at the end of the entire cycle.

또한, 데이터 전처리 장치(100)는 전체 워크로드에서의 스케줄러간 작업 연관성 유지를 위한 별도의 메타 데이터를 외부 저장 장치(200) 또는 캐시 서버(400)를 통해 공유할 수 있다. 예를 들어, 데이터 전처리 장치(100)는 각 Job 의 실행 상태 확인을 통한 단계별 순차 실행의 원활한 처리를 위해 각 파일이 가지는 고유 정보(예: 생성 데이터셋 아이디, 메타 정보, 분할 정보 등) 저장 및 정보 확장을 통한 개별 작업 정보의 연계를 외부 저장 장치(200) 또는 캐시 서버(400)를 통해 수행할 수 있다. 예컨대, 원본 파일 정보, 파일 타입 정보, 분할 정보, 메타 정보, 레시피 정보, 작업간 진행 상태 정보 등이 확장성을 고려하여 외부의 캐시 서버(400)를 통해 공유될 수 있다. 이를 통해 빠른 데이터 조회 및 처리가 가능한 In-Memory 기반의 데이터 저장소가 구비될 수 있다.In addition, the data preprocessing apparatus 100 may share separate metadata for maintaining task association between schedulers in the entire workload through the external storage device 200 or the cache server 400 . For example, the data pre-processing device 100 stores unique information (eg, generated dataset ID, meta information, division information, etc.) of each file for smooth processing of step-by-step sequential execution through checking the execution status of each job. Linking of individual job information through information expansion may be performed through the external storage device 200 or the cache server 400 . For example, original file information, file type information, division information, meta information, recipe information, progress status information between jobs, etc. may be shared through the external cache server 400 in consideration of scalability. Through this, an in-memory-based data storage capable of fast data inquiry and processing can be provided.

따라서, 본 발명의 데이터 전처리 장치(100)는 외부 저장 장치(200) 또는 캐시 서버(400)를 통해 원본 데이터 및 전처리한 데이터를 타 서비스와의 연계/공유할 수 있도록 외부 저장소 기반의 데이터 입출력 기능을 구현할 수 있고, 네트워크를 통한 데이터의 In/Out, 원본 및 전처리 데이터의 분산 저장 및 공유, 별도의 외부 클러스터를 통한 안정적인 데이터 관리를 할 수 있다.Accordingly, the data pre-processing device 100 of the present invention has an external storage-based data input/output function so that the original data and the pre-processed data can be linked/shared with other services through the external storage device 200 or the cache server 400 . can be implemented, data in/out through the network, distributed storage and sharing of original and pre-processed data, and stable data management through a separate external cluster.

일 실시 예에서, 데이터 전처리 장치(100)는 스케줄러(110), API 관리부(120), 데이터 생성부(130), 데이터 전처리부(140), 데이터 변환부(150)를 포함할 수 있다. 예를 들어, 데이터 전처리 장치(100)는 외부 저장 장치(200) 또는 로컬 저장 장치(300)로부터 데이터 소스(예: CSV 파일, EXCEL 파일)를 수신할 수 있고, 데이터 소스에서 작업 대상 파일을 확인할 수 있다.In an embodiment, the data preprocessor 100 may include a scheduler 110 , an API manager 120 , a data generator 130 , a data preprocessor 140 , and a data converter 150 . For example, the data pre-processing device 100 may receive a data source (eg, a CSV file, an EXCEL file) from the external storage device 200 or the local storage device 300, and check the work target file from the data source. can

구체적으로, 일 실시 예에서, API 관리부(120)는 스케줄러(110), 데이터 생성부(130), 데이터 전처리부(140), 데이터 변환부(150)와 연결되어 각각의 구성을 전반적으로 제어할 수 있다. 데이터 전처리 장치(100)는 API 관리부(120)를 통해 각 모듈(스케줄러(110), 데이터 생성부(130), 데이터 전처리부(140), 데이터 변환부(150))의 추가, 변경, 확장 등을 수행할 수 있다.Specifically, in one embodiment, the API management unit 120 is connected to the scheduler 110 , the data generation unit 130 , the data preprocessor 140 , and the data conversion unit 150 to control each configuration as a whole. can The data preprocessor 100 adds, changes, expands, etc., each module (scheduler 110, data generator 130, data preprocessor 140, data converter 150) through API management unit 120. can be performed.

또한, 일 실시 예에서, API 관리부(120)는 데이터 생성부(130)에 요청하여 분석된 데이터로 데이터 형태에 적합한 전처리 기능을 제안하고, 사용자의 정의에 따라 데이터 전처리부(140)에 요청하여 레시피를 생성할 수 있는 UI를 가질 수 있다. 또한, API 관리부(120)는, 레시피를 정의 함에 있어서 데이터 타입에 적합한 전처리 기능을 제안할 수 있다.In addition, in one embodiment, the API management unit 120 proposes a pre-processing function suitable for the data type with the analyzed data by requesting the data generating unit 130, and requests the data pre-processing unit 140 according to the user's definition. It can have a UI that can create recipes. In addition, the API manager 120 may suggest a preprocessing function suitable for a data type in defining a recipe.

또한, API 관리부(120)는 Netflix에서 만든 Hystrix라는 오픈소스를 활용하여 서비스를 관리할 수 있고, 데이터는 시각화 도구를 통해 표현 및 처리될 수 있고, 모듈간의 통신은 REST 서비스로 송수신할 수 있다.In addition, the API management unit 120 may manage a service by utilizing an open source called Hystrix made by Netflix, data may be expressed and processed through a visualization tool, and communication between modules may be transmitted/received as a REST service.

일 실시 예에서, 스케줄러(110)는 4개의 스케줄러 잡(Read Job, Create Job, Single Export Job 및 Split Export Job)을 수행할 수 있다. 구체적인 내용은 도 2 내지 도 5에서 후술한다.In an embodiment, the scheduler 110 may perform four scheduler jobs (Read Job, Create Job, Single Export Job, and Split Export Job). Specific details will be described later with reference to FIGS. 2 to 5 .

일 실시 예에서, 데이터 생성부(130)는 스케줄러(110)의 요청에 따라 분할된 데이터 레코드에 기반하여 데이터셋을 생성할 수 있다. 여기서, 데이터셋은 작업 대상 파일이 여러 개로 분할된 복수의 분할 파일을 포함할 수 있으며, 데이터 레코드는 분할 파일 자체 또는 분할 파일의 일부가 될 수 있다.In an embodiment, the data generator 130 may generate a data set based on the divided data record according to the request of the scheduler 110 . Here, the dataset may include a plurality of split files in which the file to be worked is divided into several, and the data record may be the split file itself or a part of the split file.

일 실시 예에서, 데이터 전처리부(140)는 스케줄러(110)의 전처리 요청에 응답하여 데이터셋을 전처리할 수 있다.In an embodiment, the data preprocessor 140 may preprocess the dataset in response to the preprocessing request of the scheduler 110 .

일 실시 예에서, 데이터 변환부(150)는 스케줄러(110)의 요청에 따라 전처리된 데이터셋을 다시 하나의 파일로 통합할 수 있다.In an embodiment, the data conversion unit 150 may integrate the preprocessed data set into one file again according to the request of the scheduler 110 .

일 실시 예에서, 로컬 저장 장치(300)는 원본 파일 정보(예: 데이터 소스), 파일 타입 정보, 분할 정보, 메타 정보, 레시피 정보, 작업간 진행 상태 정보 등을 저장할 수 있다. 또한, 로컬 저장 장치(300)는 기존 데이터 전처리 정보 및 레시피 정보 등을 데이터베이스화하여 저장할 수 있다. 예를 들어, 데이터 전처리 장치(100)는 그동한 수행한 모든 데이터 전처리 내용 등을 빅데이터화할 수 있고, 빅데이터를 로컬 저장 장치(300)에 저장할 수 있다.In an embodiment, the local storage device 300 may store original file information (eg, data source), file type information, division information, meta information, recipe information, progress state information between tasks, and the like. In addition, the local storage device 300 may store existing data pre-processing information and recipe information into a database. For example, the data pre-processing apparatus 100 may convert all data pre-processing performed so far into big data, and store the big data in the local storage device 300 .

도 2는 본 발명의 일 실시 예에 따른 데이터 전처리 방법을 개략적으로 나타낸 흐름도이다. 도 3은 본 발명의 일 실시 예에 따른 데이터 전처리 방법을 개략적으로 나타낸 예시도이다. 도 2의 동작들은 도 1의 스케줄러(110)에 의해 수행될 수 있다.2 is a flowchart schematically illustrating a data pre-processing method according to an embodiment of the present invention. 3 is an exemplary diagram schematically illustrating a data pre-processing method according to an embodiment of the present invention. The operations of FIG. 2 may be performed by the scheduler 110 of FIG. 1 .

도 2를 참조하면, 일 실시 예에서, 도면에는 도시되지 않았지만, 동작 21에 앞서서 스케줄러(110)는 동일한 형태의 데이터 전처리에 필요한 레시피를 정의할 수 있다. 또한, 이 단계에서, 스케줄러(110)는 레시피를 정의함에 있어서 데이터 타입에 적합한 전처리 기능을 사용자에게 제안할 수 있다.Referring to FIG. 2 , in an embodiment, although not illustrated, the scheduler 110 may define a recipe required for data preprocessing of the same type prior to operation 21 . Also, in this step, the scheduler 110 may suggest a preprocessing function suitable for a data type to the user in defining the recipe.

또한, 일 실시 예에서, 스케줄러(110)는 API 관리부(120)가 제공하는 UI를 통해 사용자가 직접 생성한 레시피를 획득할 수 있다. 예를 들어, 사용자는 상기 UI를 통해 데이터 형태에 적합한 전처리의 일부 기능이 생성되도록 요청할 수 있으며, 상기 요청에 응답하여 스케줄러(110)는 사용자의 상기 요청에 대응하는 레시피를 획득할 수 있다. 예를 들어, 사용자가 요청하는 레시피는 입력된 데이터를 분석하여 컬럼/로우/데이터 타입 등에 따라 여러 개의 전처리 기능 중 내용에 맞는 적합한 기능을 제안하여 상단에 우선 표기해주는 방식일 수 있다.Also, according to an embodiment, the scheduler 110 may acquire a recipe directly created by the user through the UI provided by the API management unit 120 . For example, the user may request that some functions of preprocessing suitable for the data type be generated through the UI, and in response to the request, the scheduler 110 may obtain a recipe corresponding to the user's request. For example, the recipe requested by the user may be a method of analyzing input data, suggesting a function suitable for the content among several preprocessing functions according to column/row/data type, etc., and displaying it at the top first.

일 실시 예에서, 스케줄러(110)는 동작 21에서, 데이터 소스에서 파일의 목록을 수집하여 전처리 작업이 필요한 파일을 결정할 수 있다. 예를 들어, 스케줄러(110)는 로컬 저장 장치(300) 또는 외부 저장 장치(200)로부터 데이터 소스를 획득할 수 있다. 여기서, 파일은 CSV 파일, EXCEL 파일 등 텍스트 기반 파일일 수 있다. 전처리 작업이 필요한 지 여부는 미리 설정한 기준(예: 데이터 결측값 또는 이상값이 많은 파일)에 따라 결정될 수 있다.In an embodiment, in operation 21 , the scheduler 110 collects a list of files from a data source to determine a file that requires a pre-processing operation. For example, the scheduler 110 may obtain a data source from the local storage device 300 or the external storage device 200 . Here, the file may be a text-based file such as a CSV file or an EXCEL file. Whether or not preprocessing is necessary can be determined based on preset criteria (eg, files with many missing data or outliers).

일 실시 예에서, 스케줄러(110)는 동작 22에서, 결정한 파일의 타입 및 결정한 파일에 포함된 데이터 레코드 수를 확인할 수 있다. 데이터 레코드는 한 행 이상으로 묶인 데이터의 집합(예: 텍스트 문단 등)을 의미할 수 있다. 따라서, 데이터 레코드 수는 해당 파일의 데이터 양을 의미할 수 있다.In an embodiment, the scheduler 110 may check the determined file type and the number of data records included in the determined file in operation 22 . A data record may refer to a set of data (eg, a paragraph of text, etc.) grouped in one or more lines. Accordingly, the number of data records may mean the amount of data in a corresponding file.

일 실시 예에서, 스케줄러(110)는 동작 23에서, 확인한 파일의 타입 및 데이터 레코드 수에 기반하여 결정한 파일이 분할 대상인지 판단할 수 있다. 예를 들어, 확인한 파일의 타입이 텍스트 기반 파일이고, 데이터 레코드 수가 미리 설정한 기준(예: 3만 건) 이상일 경우에 결정한 파일을 분할 대상으로 판단할 수 있다.In an embodiment, in operation 23, the scheduler 110 may determine whether the determined file is a division target based on the checked file type and the number of data records. For example, when the type of the checked file is a text-based file and the number of data records is greater than or equal to a preset standard (eg, 30,000), the determined file may be determined as a division target.

일 실시 예에서, 스케줄러(110)는 판단 결과, 결정한 파일이 분할 대상인 경우 동작 24로 진행하여 결정한 파일을 복수의 데이터 레코드로 분할하고 복수의 데이터 레코드를 분석하여 데이터셋을 생성할 수 있다. 여기서, 복수의 데이터 레코드로 분할하는 기준은 데이터 전처리 장치(100)가 한 번에 처리할 수 있는 데이터 건수(예: 3만건)일 수 있다. 데이터셋은 파일이 여러 개로 나뉜 복수 개의 분할 파일을 포함할 수 있으며, 여기서 분할 파일은 복수의 데이터 레코드를 포함할 수 있다.In an embodiment, if the determined file is a division target as a result of the determination, the scheduler 110 may proceed to operation 24 to divide the determined file into a plurality of data records, and generate a dataset by analyzing the plurality of data records. Here, the criterion for dividing the data records into a plurality of data records may be the number of data cases (eg, 30,000 cases) that the data pre-processing apparatus 100 can process at a time. A data set may include a plurality of split files in which the files are divided, where the split files may include a plurality of data records.

일 실시 예에서, 스케줄러(110)는 동작 25에서 데이터셋을 생성하는 요청을 데이터 생성부(130)에 전송할 수 있다. 예를 들어, 스케줄러(110)는 API 관리부(120)에게 데이터셋 생성 API를 요청할 수 있다.In an embodiment, the scheduler 110 may transmit a request for generating a dataset to the data generator 130 in operation 25 . For example, the scheduler 110 may request a dataset creation API from the API manager 120 .

구체적으로, 결정한 파일이 분할 대상인 경우, 스케줄러(110)는 분할한 파일에 대응하는 복수의 데이터셋을 생성하는 요청을 데이터 생성부(130)에 전송할 수 있다.Specifically, when the determined file is a division target, the scheduler 110 may transmit a request for generating a plurality of data sets corresponding to the divided file to the data generating unit 130 .

또한, 동작 23 판단 결과, 결정한 파일이 분할 대상이 아닌 경우, 스케줄러(110)는 결정한 파일에 대응하는 단일 데이터셋을 생성하는 요청을 데이터 생성부(130)에 전송할 수 있다.Also, as a result of determination in operation 23 , when the determined file is not a target of division, the scheduler 110 may transmit a request for generating a single data set corresponding to the determined file to the data generating unit 130 .

한편, 데이터셋의 관리의 편의성을 위해 스케줄러(110)는 미리 설정한 네이밍 룰에 기초하여 데이터셋의 명칭을 설정할 수 있다. 여기서 명칭의 대상은 데이터셋 자체이거나 분할 파일들일 수 있다. 즉, 데이터셋 생성 시 네이밍 규칙을 적용하여 데이터 분할, 개별 데이터 처리 및 데이터 통합에 필요한 데이터 추적을 용이하게 할 수 있다.Meanwhile, for the convenience of managing the data set, the scheduler 110 may set the name of the data set based on a preset naming rule. Here, the target of the name may be the dataset itself or divided files. In other words, when creating a dataset, naming rules can be applied to facilitate data segmentation, individual data processing, and data tracking required for data integration.

예를 들어, 도 3에 도시된 바와 같이, 구분자 ‘-‘ 로 구분하여 네이밍 룰이 정의될 수 있다. 순서대로, 1번 항목은 년월일 8자리(도 3 (a)의 YYYYMMDD), 2번 항목은 사용자 형태(사용자 UI를 통해 분할된 파일일 경우 “user”, 스케줄러를 통한 분할일 경우 “sJob”), 3번 항목은 분할 주체 노드(0000, 0001, …, 000N), 4번 항목은 실행 회차(0000, 0001, …, 000N), 5번 항목에서 앞 3자리는 전체 분할 수에서의 해당 인덱스, 중간 3자리는 전체 분할수, 나머지는 당일 처리한 누적 파일 수일 수 있다. 이에 따라 도 3의 (b)의 적색 사각형에 도시된 것과 같이 분할 파일들의 명칭이 네이밍될 수 있고, 단일 파일의 명칭이 네이밍될 수 있다.For example, as shown in FIG. 3 , a naming rule may be defined by dividing with a delimiter ‘-’. In order, item 1 is 8 digits of year, month, and day (YYYYMMDD in Fig. 3 (a)), item 2 is user type (“user” for files divided through user UI, “sJob” for division through scheduler) , item 3 is the division principal node (0000, 0001, …, 000N), item 4 is the execution cycle (0000, 0001, …, 000N), the first 3 digits in item 5 are the corresponding index in the total number of divisions, The middle three digits may be the total number of divisions, and the rest may be the number of accumulated files processed on the same day. Accordingly, as shown in the red rectangle of FIG. 3B , the names of the divided files may be named, and the names of the single files may be named.

일 실시 예에서, 스케줄러(110)는 동작 26에서, 기 생성된 레시피 정보 및 데이터셋의 메타 정보를 비교할 수 있다. 여기서, 레시피 정보는 복수의 레시피를 포함할 수 있고, 레시피는 미리 정의되며, 분석된 데이터의 형태(예: 컬럼의 수, 타입, 도메인)에 적합한 레시피를 선별하여 데이터를 전처리하는 특정 방법일 수 있다. 예를 들어, 엑셀 파일의 특정 행에서 결측값이 있을 경우, 해당 결측값을 0으로 대체하는 것이 데이터 전처리 중 하나의 방법이 될 수 있으며 이를 레시피로 명명할 수 있다. 또한, 레시피는 데이터 전처리를 위한 패턴의 집합으로 정의 될 수 있고, 레시피를 생성을 위해 데이터 형태에 보다 더 적합한 기능을 제안 할 수 있다. 또한, 예를 들어, 레시피는 특정 열의 무효값을 가진 칸이 있는 행을 삭제하는 전처리 방법, 특정 열의 빈 칸이 있는 행을 삭제하는 전처리 방법, 특정 열의 무효 값을 가진 칸이 있는 행을 삭제하는 전처리 방법, 장치의 제안에 따른 문자형 데이터를 소문자/대문자로 변경하는 전처리 방법, 장치의 제안에 따른 숫자형 데이터에 대한 열 비교 전처리 방법 등일 수 있다.In an embodiment, the scheduler 110 may compare pre-generated recipe information with meta-information of the dataset in operation 26 . Here, the recipe information may include a plurality of recipes, and the recipe is predefined, and may be a specific method of pre-processing data by selecting a recipe suitable for the type of analyzed data (eg, number of columns, type, domain). have. For example, if there is a missing value in a specific row of an Excel file, replacing the missing value with 0 can be one of data preprocessing methods, and it can be named a recipe. In addition, a recipe can be defined as a set of patterns for data pre-processing, and functions more suitable for data types can be proposed to create a recipe. Also, for example, a recipe includes a preprocessing method that deletes rows with cells with invalid values in a specific column, a preprocessing method that deletes rows with blank cells in a specific column, and a preprocessing method that deletes rows with cells with invalid values in a specific column. It may be a pre-processing method, a pre-processing method for changing character data to lowercase/uppercase according to the proposal of the apparatus, a column comparison pre-processing method for numeric data according to the proposal of the apparatus, and the like.

일 실시 예에서, 스케줄러(110)는 동작 27에서, 비교 결과에 기반하여 메타 정보에 대응하는 레시피가 기 생성된 레시피 정보에 존재하는 지 확인할 수 있다. 기 생성된 레시피 정보는 복수의 레시피를 포함할 뿐 아니라 해당 레시피가 적용된 파일의 메타 정보(예: 텍스트 파일의 컬럼의 길이, 타입)도 포함할 수 있다. 따라서, 새로 생성된 데이터셋의 메타 정보와 동일한 메타 정보를 가진 파일에 적용된 레시피는 새로 생성된 데이터셋에서도 활용될 가능성이 매우 높으므로 이를 확인할 수 있다.In an embodiment, in operation 27 , the scheduler 110 may check whether a recipe corresponding to the meta information exists in the pre-generated recipe information based on the comparison result. The pre-generated recipe information may include not only a plurality of recipes, but also meta information (eg, column length and type of a text file) of a file to which the recipe is applied. Therefore, the recipe applied to the file having the same meta information as the meta information of the newly created dataset is highly likely to be utilized in the newly created dataset, so it can be confirmed.

일 실시 예에서, 스케줄러(110)는 메타 정보에 대응하는 레시피가 기 생성된 레시피 정보에 존재할 경우, 동작 28로 진행하여 메타 정보에 대응하는 레시피를 복제할 수 있다. 예를 들어, 새로 생성된 데이터셋과 동일한 메타정보를 가진 파일에 수행된 레시피를 복제할 수 있다.In an embodiment, when a recipe corresponding to the meta information exists in the previously generated recipe information, the scheduler 110 may proceed to operation 28 to duplicate the recipe corresponding to the meta information. For example, it is possible to duplicate a recipe performed in a file having the same meta information as the newly created dataset.

일 실시 예에서, 스케줄러(110)는 동작 29에서, 복제한 레시피에 기반한 데이터셋의 전처리를 결정할 수 있다. 예를 들어, 스케줄러(110)는 전처리를 결정하고 데이터 전처리부(140)에 복제한 레시피 기반 데이터셋의 전처리를 요청할 수 있다.In an embodiment, the scheduler 110 may determine preprocessing of the dataset based on the replicated recipe in operation 29 . For example, the scheduler 110 may determine the pre-processing and request the data pre-processing unit 140 to pre-process the duplicated recipe-based dataset.

한편, 파일 관리 및 공유의 편의성을 위해 스케줄러(110)는 결정한 파일에 결합된 순서대로 전처리된 데이터셋을 결합하여 전처리 파일을 생성할 수 있으며, 생성한 전처리 파일을 로컬 저장 장치(300)에 저장하고 외부 저장 장치(200)로 전송할 수 있다.On the other hand, for the convenience of file management and sharing, the scheduler 110 may generate a pre-processing file by combining the pre-processed data sets in the order in which they are combined with the determined file, and the generated pre-processing file is stored in the local storage device 300 . and may be transmitted to the external storage device 200 .

또한, 스케줄러(110)는 데이터 소스, 결정한 파일, 기 생성된 레시피 정보, 메타 정보, 복제한 레시피, 복수의 데이터셋 및 전처리 결과 중 적어도 하나를 캐시 서버(400)에 읽기 및 쓰기를 수행할 수 있다.In addition, the scheduler 110 may read and write at least one of a data source, a determined file, pre-created recipe information, meta information, a duplicate recipe, a plurality of datasets, and a preprocessing result to the cache server 400 . have.

도 4는 본 발명의 일 실시 예에 따른 데이터 분할 방법을 개략적으로 나타낸 흐름도이다. 도 4의 동작들은 도 1의 구성들에 의해 수행될 수 있다.4 is a flowchart schematically illustrating a data partitioning method according to an embodiment of the present invention. The operations of FIG. 4 may be performed by the configurations of FIG. 1 .

도 4를 참조하면, 일 실시 예에서, 스케줄러(110)는 동작 41에서, 확인한 파일의 타입 및 데이터 건수에 기초하여 결정한 파일의 전체 행수를 확인할 수 있다. 예를 들어, 텍스트 기반 파일에서 전체 행수를 확인할 수 있다. 스케줄러(110)는 데이터 레코드를 분할할 때 분할하는 양의 기준을 행 수로 할 수 있으므로 전체 행수를 확인할 수 있다.Referring to FIG. 4 , according to an embodiment, in operation 41 , the scheduler 110 may check the total number of lines of the file determined based on the checked file type and the number of data. For example, you can check the total number of lines in a text-based file. When the scheduler 110 divides a data record, since the number of rows may be the criterion for the amount of division, the total number of rows may be checked.

일 실시 예에서, 스케줄러(110)는 동작 42에서, 전체 행수가 미리 설정한 기준 건수를 초과하는 지 확인할 수 있다. 여기서 미리 설정한 기준 건수는 데이터 전처리 장치(100)에서 한 번에 처리할 수 있는 데이터 건수일 수 있다.In an embodiment, in operation 42 , the scheduler 110 may determine whether the total number of rows exceeds a preset reference number. Here, the preset reference number may be the number of data cases that the data pre-processing apparatus 100 can process at once.

일 실시 예에서, 스케줄러(110)는 동작 43에서, 전체 행수가 미리 설정한 기준 건수를 초과할 경우, 결정한 파일을 행 단위로 분할할 수 있다.In an embodiment, in operation 43 , when the total number of rows exceeds a preset reference number, the scheduler 110 may divide the determined file into row units.

일 실시 예에서, 스케줄러(110)는 동작 44에서, 행 단위로 분할한 결과에 기초하여 복수의 데이터 레코드를 생성할 수 있다. 따라서, 여기서 복수의 데이터 레코드는 행수 단위로 분할된 데이터들일 수 있다.In an embodiment, in operation 44, the scheduler 110 may generate a plurality of data records based on the result of division into rows. Accordingly, the plurality of data records may be data divided by the number of rows.

도 5는 본 발명의 일 실시 예에 따른 레시피 복제 방법을 개략적으로 나타낸 흐름도이다. 도 5의 동작들은 도 1에 개시된 구성들에 의해 수행될 수 있다.5 is a flowchart schematically illustrating a recipe duplication method according to an embodiment of the present invention. The operations of FIG. 5 may be performed by the configurations disclosed in FIG. 1 .

도 5를 참조하면, 일 실시 예에서, 스케줄러(110)는 동작 51에서, 메타 정보에 대응하는 레시피가 기 생성된 레시피 정보에 존재할 경우, 메타 정보에 대응하는 적어도 하나의 레시피를 확인할 수 있다. 즉, 새로 생성된 데이터셋의 메타정보와 동일한 메타정보를 가진 파일에 이미 적용된 적어도 하나의 레시피를 확인할 수 있다.Referring to FIG. 5 , in an embodiment, when a recipe corresponding to meta information exists in pre-generated recipe information, in operation 51 , the scheduler 110 may check at least one recipe corresponding to meta information. That is, it is possible to check at least one recipe already applied to a file having the same meta information as the meta information of the newly created dataset.

일 실시 예에서, 스케줄러(110)는 동작 52에서, 확인한 적어도 하나의 레시피가 변경된 이력이 존재 하는 지 확인할 수 있다. 여기서 변경 이력이란 레시피가 실제로 파일에 적용되어 수행된 이력을 의미할 수 있다.In an embodiment, in operation 52 , the scheduler 110 may check whether there is a history of changing at least one of the checked recipes. Here, the change history may mean a history in which a recipe is actually applied to a file and performed.

일 실시 예에서, 스케줄러(110)는 동작 53에서, 확인한 적어도 하나의 레시피가 변경된 이력이 존재할 경우, 변경된 이력이 존재하는 적어도 하나의 레시피 중 가장 최근에 변경된 레시피를 복제할 수 있다. 시간 상으로 가장 최근에 변경된 레시피가 가장 활용 가능성이 높은 레시피가 되므로 이를 활용하여 전처리를 수행하기 위해 가장 최근에 변경된 레시피를 복제할 수 있다.In an embodiment, when there is a history in which the at least one checked recipe is changed, the scheduler 110 may duplicate the most recently changed recipe among the at least one recipe in which the changed history exists. Since the most recently changed recipe in time becomes the most likely recipe, it can be utilized to clone the most recently changed recipe to perform preprocessing.

본 발명의 일 면에 따른 데이터 분할 기반 데이터 전처리 장치는 데이터 소스에서 확인한 파일의 분할, 데이터셋 생성 및 전처리를 제어하는 스케줄러; 상기 스케줄러의 데이터셋 생성 요청에 응답하여 상기 데이터셋을 생성하는 데이터 생성부; 상기 스케줄러의 전처리 요청에 응답하여 상기 데이터셋을 전처리하는 데이터 전처리부; 및 상기 데이터 생성부에 요청하여 분석된 데이터로 데이터 형태에 적합한 전처리 기능을 제안하고, 사용자의 정의에 따라 상기 데이터 전처리부에 요청하여 레시피를 생성할 수 있는 UI를 가진 API 관리부;를 포함하고, 상기 스케줄러는, 동일한 형태의 데이터 전처리에 필요한 레시피를 정의하고, 상기 데이터 소스에서 파일의 목록을 수집하여 전처리 작업이 필요한 파일을 결정하고, 상기 결정한 파일의 타입 및 상기 결정한 파일에 포함된 데이터 레코드 수를 확인하고, 상기 확인한 파일의 타입 및 상기 데이터 레코드 수에 기반하여 상기 결정한 파일이 분할 대상인지 판단하고, 상기 판단 결과, 상기 결정한 파일이 분할 대상인 경우 상기 결정한 파일을 복수의 데이터 레코드로 분할하고 상기 복수의 데이터 레코드를 분석하여 데이터셋을 생성하는 요청을 상기 데이터 생성부에 전송하고, 기 생성된 레시피 정보 및 상기 데이터셋의 메타 정보를 비교하고, 상기 메타 정보에 대응하는 레시피가 상기 기 생성된 레시피 정보에 존재할 경우, 상기 메타 정보에 대응하는 레시피를 복제하고, 상기 복제한 레시피에 기반한 상기 데이터셋의 전처리를 결정하는 것을 특징으로 할 수 있다.Data division-based data pre-processing apparatus according to an aspect of the present invention includes: a scheduler for controlling file division, data set generation, and pre-processing checked in a data source; a data generator configured to generate the dataset in response to a dataset creation request from the scheduler; a data preprocessor for preprocessing the dataset in response to a preprocessing request from the scheduler; and an API management unit having a UI for requesting the data generation unit and proposing a pre-processing function suitable for a data type with the analyzed data, and requesting the data pre-processing unit according to a user's definition to generate a recipe; The scheduler defines a recipe required for data preprocessing of the same type, collects a list of files from the data source, determines a file that requires preprocessing, and determines the type of file and the number of data records included in the determined file check, determine whether the determined file is a division target based on the identified file type and the number of data records, and as a result of the determination, if the determined file is a division target, divide the determined file into a plurality of data records, and Transmitting a request for generating a dataset by analyzing a plurality of data records to the data generator, comparing previously generated recipe information with meta information of the dataset, and generating a recipe corresponding to the meta information If it exists in the recipe information, it may be characterized in that the recipe corresponding to the meta information is duplicated, and pre-processing of the dataset based on the duplicated recipe is determined.

다양한 실시 예에 따르면, 상기 스케줄러는, 상기 결정한 파일에 결합된 순서대로 상기 전처리된 데이터셋을 결합하여 전처리 파일을 생성할 수 있다.According to various embodiments, the scheduler may generate a pre-processing file by combining the pre-processed datasets in the order in which they are combined with the determined file.

다양한 실시 예에 따르면, 상기 스케줄러는, 외부 저장 장치로부터 상기 데이터 소스를 획득하고, 상기 생성한 전처리 파일을 상기 외부 저장 장치로 전송할 수 있다.According to various embodiments, the scheduler may obtain the data source from an external storage device and transmit the generated pre-processing file to the external storage device.

다양한 실시 예에 따르면, 상기 스케줄러는, 상기 데이터 소스, 상기 결정한 파일, 상기 기 생성된 레시피 정보, 상기 메타 정보, 상기 복제한 레시피, 상기 데이터셋 및 전처리 결과 중 적어도 하나를 캐시 서버에 읽기 및 쓰기를 수행할 수 있다.According to various embodiments, the scheduler reads and writes at least one of the data source, the determined file, the pre-generated recipe information, the meta information, the duplicate recipe, the dataset, and the preprocessing result to the cache server. can be performed.

다양한 실시 예에 따르면, 상기 스케줄러는, 상기 확인한 파일의 타입 및 상기 데이터 레코드 수에 기초하여 상기 결정한 파일의 전체 행수를 확인하고, 상기 전체 행수가 미리 설정한 기준 건수를 초과할 경우, 상기 결정한 파일을 행 단위로 분할하고, 상기 행 단위로 분할한 결과에 기초하여 상기 복수의 데이터 레코드를 생성할 수 있다.According to various embodiments, the scheduler checks the total number of lines of the determined file based on the checked file type and the number of data records, and when the total number of lines exceeds a preset reference number, the determined file may be divided into rows, and the plurality of data records may be generated based on a result of the division in units of rows.

다양한 실시 예에 따르면, 상기 스케줄러는, 미리 설정한 네이밍 룰에 기초하여 상기 데이터셋의 명칭을 각각 설정할 수 있다.According to various embodiments, the scheduler may set each of the names of the datasets based on a preset naming rule.

다양한 실시 예에 따르면, 상기 스케줄러는, 상기 메타 정보에 대응하는 레시피가 상기 기 생성된 레시피 정보에 존재할 경우, 상기 메타 정보에 대응하는 적어도 하나의 레시피를 확인하고, 상기 확인한 적어도 하나의 레시피가 변경된 이력이 존재하는 지 확인하고, 상기 확인한 적어도 하나의 레시피가 변경된 이력이 존재할 경우, 변경된 이력이 존재하는 적어도 하나의 레시피 중 가장 최근에 변경된 레시피를 복제할 수 있다.According to various embodiments, when the recipe corresponding to the meta information exists in the previously generated recipe information, the scheduler checks at least one recipe corresponding to the meta information, and determines that the at least one recipe is changed. It is checked whether a history exists, and when there is a history in which the checked at least one recipe is changed, the most recently changed recipe among the at least one recipe in which the changed history exists may be duplicated.

다양한 실시 예에 따르면, 상기 레시피는 미리 정의되며, 분석된 데이터의 형태에 적합한 레시피를 선별하여 데이터를 전처리하는 특정 방법일 수 있다.According to various embodiments, the recipe is predefined and may be a specific method of pre-processing data by selecting a recipe suitable for the type of analyzed data.

본 발명의 일 면에 따른 데이터 전처리 장치에 의해 수행되는 데이터 분할 기반 데이터 전처리 방법은, 상기 데이터의 전처리 장치가 동일한 형태의 데이터 전처리에 필요한 레시피를 정의하는 단계; 상기 데이터 전처리 장치가 데이터 소스에서 파일의 목록을 수집하여 전처리 작업이 필요한 파일을 결정하는 단계; 상기 데이터 전처리 장치가 상기 결정한 파일의 타입 및 상기 결정한 파일에 포함된 데이터 레코드 수를 확인하는 단계; 상기 데이터 전처리 장치가 상기 확인한 파일의 타입 및 상기 데이터 레코드 수에 기반하여 상기 결정한 파일이 분할 대상인지 판단하는 단계; 상기 데이터 전처리 장치가 상기 판단 결과, 상기 결정한 파일이 분할 대상인 경우 상기 결정한 파일을 복수의 데이터 레코드로 분할하고 상기 복수의 데이터 레코드를 분석하여 데이터셋을 생성하는 요청을 상기 데이터 생성부에 전송하는 단계; 상기 데이터 전처리 장치가 기 생성된 레시피 정보 및 상기 데이터셋의 메타 정보를 비교하는 단계; 상기 데이터 전처리 장치가 상기 메타 정보에 대응하는 레시피가 상기 기 생성된 레시피 정보에 존재할 경우, 상기 메타 정보에 대응하는 레시피를 복제하는 단계; 및 상기 데이터 전처리 장치가 상기 복제한 레시피에 기반한 상기 데이터셋의 전처리를 결정하는 단계;를 포함할 수 있다.According to an aspect of the present invention, a data division-based data pre-processing method performed by a data pre-processing apparatus includes: defining a recipe required for data pre-processing of the same type by the data pre-processing apparatus; determining, by the data pre-processing device, a file requiring pre-processing by collecting a list of files from a data source; checking, by the data preprocessing unit, the determined file type and the number of data records included in the determined file; determining, by the data pre-processing device, whether the determined file is a division target based on the checked file type and the number of data records; Transmitting, by the data pre-processing unit, a request for generating a data set by dividing the determined file into a plurality of data records and analyzing the plurality of data records when the determined file is a division target as a result of the determination, to the data generating unit; ; comparing, by the data preprocessing device, pre-generated recipe information with meta information of the dataset; replicating, by the data preprocessing apparatus, a recipe corresponding to the meta information when a recipe corresponding to the meta information exists in the pre-generated recipe information; and determining, by the data pre-processing apparatus, pre-processing of the data set based on the replicated recipe.

다양한 실시 예에 따르면, 상기 데이터 전처리 장치가 상기 결정한 파일에 결합된 순서대로 상기 전처리된 데이터셋을 결합하여 전처리 파일을 생성하는 단계;를 더 포함할 수 있다.According to various embodiments, the method may further include; generating a preprocessing file by combining the preprocessed data sets in the order in which the data preprocessing device is combined with the determined file.

본 발명의 실시예와 관련하여 설명된 방법 또는 알고리즘의 단계들은 하드웨어로 직접 구현되거나, 하드웨어에 의해 실행되는 소프트웨어 모듈로 구현되거나, 또는 이들의 결합에 의해 구현될 수 있다. 소프트웨어 모듈은 RAM(Random Access Memory), ROM(Read Only Memory), EPROM(Erasable Programmable ROM), EEPROM(Electrically Erasable Programmable ROM), 플래시 메모리(Flash Memory), 하드 디스크, 착탈형 디스크, CD-ROM, 또는 본 발명이 속하는 기술 분야에서 잘 알려진 임의의 형태의 컴퓨터 판독가능 기록매체에 상주할 수도 있다.The steps of a method or algorithm described in relation to an embodiment of the present invention may be implemented directly in hardware, as a software module executed by hardware, or by a combination thereof. A software module may contain random access memory (RAM), read only memory (ROM), erasable programmable ROM (EPROM), electrically erasable programmable ROM (EEPROM), flash memory, hard disk, removable disk, CD-ROM, or It may reside in any type of computer-readable recording medium well known in the art to which the present invention pertains.

이상, 첨부된 도면을 참조로 하여 본 발명의 실시예를 설명하였지만, 본 발명이 속하는 기술분야의 통상의 기술자는 본 발명이 그 기술적 사상이나 필수적인 특징을 변경하지 않고서 다른 구체적인 형태로 실시될 수 있다는 것을 이해할 수 있을 것이다. 그러므로, 이상에서 기술한 실시예들은 모든 면에서 예시적인 것이며, 제한적이 아닌 것으로 이해해야만 한다. As mentioned above, although embodiments of the present invention have been described with reference to the accompanying drawings, those skilled in the art to which the present invention pertains know that the present invention may be embodied in other specific forms without changing the technical spirit or essential features thereof. you will be able to understand Therefore, it should be understood that the embodiments described above are illustrative in all respects and not restrictive.

100: 데이터 전처리 장치 200: 외부 저장 장치(200)
300: 로컬 저장 장치 400: 캐시 서버
110: 스케줄러 120: API 관리부
130: 데이터 생성부 140: 데이터 전처리부
150:데이터변환부
100: data preprocessing unit 200: external storage device (200)
300: local storage 400: cache server
110: scheduler 120: API management unit
130: data generation unit 140: data pre-processing unit
150: data conversion unit

Claims (11)

데이터 소스에서 확인한 파일의 분할, 데이터셋 생성 및 전처리를 제어하는 스케줄러;
상기 스케줄러의 데이터셋 생성 요청에 응답하여 상기 데이터셋을 생성하는 데이터 생성부;
상기 스케줄러의 전처리 요청에 응답하여 상기 데이터셋을 전처리하는 데이터 전처리부; 및
상기 데이터 생성부에 요청하여 분석된 데이터로 데이터 형태에 적합한 전처리 기능을 제안하고, 사용자의 정의에 따라 상기 데이터 전처리부에 요청하여 레시피를 생성할 수 있는 UI를 가진 API 관리부;를 포함하고,
상기 스케줄러는,
동일한 형태의 데이터 전처리에 필요한 레시피를 정의하고,
상기 데이터 소스에서 파일의 목록을 수집하여 전처리 작업이 필요한 파일을 결정하고,
상기 결정한 파일의 타입 및 상기 결정한 파일에 포함된 데이터 레코드 수를 확인하고,
상기 확인한 파일의 타입 및 상기 데이터 레코드 수에 기반하여 상기 결정한 파일이 분할 대상인지 판단하고,
상기 판단 결과, 상기 결정한 파일이 분할 대상인 경우 상기 결정한 파일을 복수의 데이터 레코드로 분할하고 상기 복수의 데이터 레코드를 분석하여 데이터셋을 생성하는 요청을 상기 데이터 생성부에 전송하고,
기 생성된 레시피 정보 및 상기 데이터셋의 메타 정보를 비교하고,
상기 메타 정보에 대응하는 레시피가 상기 기 생성된 레시피 정보에 존재할 경우, 상기 메타 정보에 대응하는 레시피를 복제하고,
상기 복제한 레시피에 기반한 상기 데이터셋의 전처리를 결정하는 것을 특징으로 하는 데이터 분할 기반 데이터 전처리 장치.
a scheduler that controls file division, data set creation, and pre-processing identified in the data source;
a data generator configured to generate the dataset in response to a dataset creation request from the scheduler;
a data preprocessor for preprocessing the dataset in response to a preprocessing request from the scheduler; and
An API management unit having a UI that can request the data generation unit and propose a pre-processing function suitable for a data type with the analyzed data, and request the data pre-processing unit according to the user's definition to generate a recipe;
The scheduler is
Define the recipe required for preprocessing the same type of data,
collect a list of files from the data source to determine which files require preprocessing;
Check the determined file type and the number of data records included in the determined file,
Determining whether the determined file is a division target based on the identified file type and the number of data records,
As a result of the determination, when the determined file is a division target, a request for dividing the determined file into a plurality of data records and analyzing the plurality of data records to generate a data set is transmitted to the data generation unit,
Compare the previously created recipe information and the meta information of the dataset,
When a recipe corresponding to the meta information exists in the previously generated recipe information, the recipe corresponding to the meta information is duplicated,
Data division-based data pre-processing apparatus, characterized in that the pre-processing of the data set is determined based on the duplicate recipe.
제1항에 있어서, 상기 스케줄러는,
상기 결정한 파일에 결합된 순서대로 상기 전처리된 데이터셋을 결합하여 전처리 파일을 생성하는 것을 특징으로 하는 데이터 분할 기반 데이터 전처리 장치.
According to claim 1, wherein the scheduler,
Data division-based data pre-processing apparatus, characterized in that by combining the pre-processed data sets in the order combined with the determined file to generate a pre-processing file.
제2항에 있어서, 상기 스케줄러는,
외부 저장 장치로부터 상기 데이터 소스를 획득하고,
상기 생성한 전처리 파일을 상기 외부 저장 장치로 전송하는 것을 특징으로 하는 데이터 분할 기반 데이터 전처리 장치.
According to claim 2, wherein the scheduler,
obtaining the data source from an external storage device;
Data division-based data pre-processing device, characterized in that for transmitting the generated pre-processing file to the external storage device.
제1항에 있어서, 상기 스케줄러는,
상기 데이터 소스, 상기 결정한 파일, 상기 기 생성된 레시피 정보, 상기 메타 정보, 상기 복제한 레시피, 상기 데이터셋 및 전처리 결과 중 적어도 하나를 캐시 서버에 읽기 및 쓰기를 수행하는 것을 특징으로 하는 데이터 분할 기반 데이터 전처리 장치.
According to claim 1, wherein the scheduler,
Data division base, characterized in that reading and writing at least one of the data source, the determined file, the pre-generated recipe information, the meta information, the duplicate recipe, the dataset, and the preprocessing result to the cache server data preprocessor.
제1항에 있어서, 상기 스케줄러는,
상기 확인한 파일의 타입 및 상기 데이터 레코드 수에 기초하여 상기 결정한 파일의 전체 행수를 확인하고,
상기 전체 행수가 미리 설정한 기준 건수를 초과할 경우, 상기 결정한 파일을 행 단위로 분할하고,
상기 행 단위로 분할한 결과에 기초하여 상기 복수의 데이터 레코드를 생성하는 것을 특징으로 하는 데이터 분할 기반 데이터 전처리 장치.
According to claim 1, wherein the scheduler,
Checking the total number of rows of the determined file based on the checked file type and the number of data records,
When the total number of lines exceeds a preset reference number, the determined file is divided into line units,
The data division-based data preprocessing apparatus of claim 1, wherein the plurality of data records are generated based on a result of the division into rows.
제1항에 있어서, 상기 스케줄러는,
미리 설정한 네이밍 룰에 기초하여 상기 데이터셋의 명칭을 각각 설정하는 것을 특징으로 하는 데이터 분할 기반 데이터 전처리 장치.
According to claim 1, wherein the scheduler,
Data division-based data pre-processing apparatus, characterized in that each name of the dataset is set based on a preset naming rule.
제1항에 있어서, 상기 스케줄러는,
상기 메타 정보에 대응하는 레시피가 상기 기 생성된 레시피 정보에 존재할 경우, 상기 메타 정보에 대응하는 적어도 하나의 레시피를 확인하고,
상기 확인한 적어도 하나의 레시피가 변경된 이력이 존재하는 지 확인하고,
상기 확인한 적어도 하나의 레시피가 변경된 이력이 존재할 경우, 변경된 이력이 존재하는 적어도 하나의 레시피 중 가장 최근에 변경된 레시피를 복제하는 것을 특징으로 하는 데이터 분할 기반 데이터 전처리 장치.
According to claim 1, wherein the scheduler,
When a recipe corresponding to the meta information exists in the pre-generated recipe information, at least one recipe corresponding to the meta information is checked;
Check whether there is a history that at least one of the checked recipes has been changed,
The data division-based data preprocessing apparatus, characterized in that, when there is a history in which the at least one checked recipe has been changed, the most recently changed recipe among the at least one recipe in which the changed history exists is duplicated.
제1 항에 있어서,
상기 레시피는 미리 정의되며, 분석된 데이터의 형태에 적합한 레시피를 선별하여 데이터를 전처리하는 특정 방법인 것을 특징으로 하는 데이터 분할 기반 데이터 전처리 장치.
According to claim 1,
The recipe is predefined and data division-based data preprocessing apparatus, characterized in that it is a specific method of preprocessing data by selecting a recipe suitable for the type of analyzed data.
제8항에 있어서, 상기 스케줄러는,
상기 레시피를 정의 함에 있어서 데이터 타입에 적합한 전처리 기능을 제안하는 것을 특징으로 하는 데이터 분할 기반 전처리 장치.
The method of claim 8, wherein the scheduler,
Data division-based pre-processing device, characterized in that in defining the recipe, a pre-processing function suitable for a data type is proposed.
데이터 전처리 장치에 의해 수행되는 데이터 분할 기반 데이터 전처리 방법에 있어서,
상기 데이터 전처리 장치가 동일한 형태의 데이터 전처리에 필요한 레시피를 정의하는 단계;
상기 데이터 전처리 장치가 데이터 소스에서 파일의 목록을 수집하여 전처리 작업이 필요한 파일을 결정하는 단계;
상기 데이터 전처리 장치가 상기 결정한 파일의 타입 및 상기 결정한 파일에 포함된 데이터 레코드 수를 확인하는 단계;
상기 데이터 전처리 장치가 상기 확인한 파일의 타입 및 상기 데이터 레코드 수에 기반하여 상기 결정한 파일이 분할 대상인지 판단하는 단계;
상기 데이터 전처리 장치가 상기 판단 결과, 상기 결정한 파일이 분할 대상인 경우 상기 결정한 파일을 복수의 데이터 레코드로 분할하고 상기 복수의 데이터 레코드를 분석하여 데이터셋을 생성하는 요청을 상기 데이터 생성부에 전송하는 단계;
상기 데이터 전처리 장치가 기 생성된 레시피 정보 및 상기 데이터셋의 메타 정보를 비교하는 단계;
상기 데이터 전처리 장치가 상기 메타 정보에 대응하는 레시피가 상기 기 생성된 레시피 정보에 존재할 경우, 상기 메타 정보에 대응하는 레시피를 복제하는 단계; 및
상기 데이터 전처리 장치가 상기 복제한 레시피에 기반한 상기 데이터셋의 전처리를 결정하는 단계;를 포함하는 것을 특징으로 하는 데이터 분할 기반 데이터 전처리 방법.
In the data division-based data pre-processing method performed by the data pre-processing device,
defining, by the data pre-processing device, a recipe required for data pre-processing of the same type;
determining, by the data pre-processing device, a file requiring pre-processing by collecting a list of files from a data source;
checking, by the data preprocessing unit, the determined file type and the number of data records included in the determined file;
determining, by the data pre-processing device, whether the determined file is a division target based on the checked file type and the number of data records;
Transmitting, by the data pre-processing unit, a request for generating a data set by dividing the determined file into a plurality of data records and analyzing the plurality of data records when the determined file is a division target as a result of the determination, to the data generating unit; ;
comparing, by the data preprocessing device, pre-generated recipe information with meta information of the dataset;
replicating, by the data preprocessing apparatus, a recipe corresponding to the meta information when a recipe corresponding to the meta information exists in the pre-generated recipe information; and
and determining, by the data pre-processing device, pre-processing of the dataset based on the replicated recipe.
제10항에 있어서,
상기 데이터 전처리 장치가 상기 결정한 파일에 결합된 순서대로 상기 전처리된 데이터셋을 결합하여 전처리 파일을 생성하는 단계;를 더 포함하는 것을 특징으로 하는 데이터 분할 기반 데이터 전처리 장치.
11. The method of claim 10,
Data division-based data pre-processing apparatus according to claim 1, further comprising: generating a pre-processing file by combining the pre-processed data sets in the order in which the data pre-processing apparatus is combined with the determined file.
KR1020200160279A 2020-11-25 2020-11-25 Device and method for preparating data based on data division KR102504537B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020200160279A KR102504537B1 (en) 2020-11-25 2020-11-25 Device and method for preparating data based on data division

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020200160279A KR102504537B1 (en) 2020-11-25 2020-11-25 Device and method for preparating data based on data division

Publications (2)

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

Family

ID=81985380

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020200160279A KR102504537B1 (en) 2020-11-25 2020-11-25 Device and method for preparating data based on data division

Country Status (1)

Country Link
KR (1) KR102504537B1 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2024025235A1 (en) * 2022-07-29 2024-02-01 삼성전자주식회사 Electronic device and control method of electronic device

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003022206A (en) * 2001-07-06 2003-01-24 Fujitsu Ltd File managing program and file managing device
KR20110063883A (en) * 2009-12-07 2011-06-15 한국전자통신연구원 Method and apparatus for analyzing nudity of image using body parts detection models and managing images database using nudity and body parts in pornography
KR20120085066A (en) * 2011-01-21 2012-07-31 삼성전자주식회사 Data processing apparatus and method
KR20160112776A (en) * 2015-03-20 2016-09-28 한국전자통신연구원 Partitioning or Combining Method of Massive Data and Apparatus thereof
KR20180070917A (en) * 2016-12-19 2018-06-27 안광세 Method and apparatus for processing data
KR20180078994A (en) * 2016-12-30 2018-07-10 주식회사 포스코아이씨티 Interface Middleware System for Collecting Mass Data and Method for Collecting Data of Interface Middleware System
KR102099157B1 (en) * 2018-06-27 2020-04-09 (주)이지서티 Method and apparatus for pre-processing big data
JP2020135886A (en) * 2019-02-18 2020-08-31 ライン プラス コーポレーションLINE Plus Corporation Computer program, resource request method, computer system, and server

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003022206A (en) * 2001-07-06 2003-01-24 Fujitsu Ltd File managing program and file managing device
KR20110063883A (en) * 2009-12-07 2011-06-15 한국전자통신연구원 Method and apparatus for analyzing nudity of image using body parts detection models and managing images database using nudity and body parts in pornography
KR20120085066A (en) * 2011-01-21 2012-07-31 삼성전자주식회사 Data processing apparatus and method
KR20160112776A (en) * 2015-03-20 2016-09-28 한국전자통신연구원 Partitioning or Combining Method of Massive Data and Apparatus thereof
KR20180070917A (en) * 2016-12-19 2018-06-27 안광세 Method and apparatus for processing data
KR20180078994A (en) * 2016-12-30 2018-07-10 주식회사 포스코아이씨티 Interface Middleware System for Collecting Mass Data and Method for Collecting Data of Interface Middleware System
KR102099157B1 (en) * 2018-06-27 2020-04-09 (주)이지서티 Method and apparatus for pre-processing big data
JP2020135886A (en) * 2019-02-18 2020-08-31 ライン プラス コーポレーションLINE Plus Corporation Computer program, resource request method, computer system, and server

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
(특허문헌 0001) KR 등록특허공보 10-2099157

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2024025235A1 (en) * 2022-07-29 2024-02-01 삼성전자주식회사 Electronic device and control method of electronic device

Also Published As

Publication number Publication date
KR102504537B1 (en) 2023-02-28

Similar Documents

Publication Publication Date Title
US9626411B1 (en) Self-described query execution in a massively parallel SQL execution engine
JP5765416B2 (en) Distributed storage system and method
US8347207B2 (en) Automatically moving annotations associated with multidimensional data between live datacubes
Singh et al. Hadoop: addressing challenges of big data
Chavan et al. Survey paper on big data
US20040186915A1 (en) Systems and methods for scheduling data flow execution based on an arbitrary graph describing the desired data flow
Humbetov Data-intensive computing with map-reduce and hadoop
EP2800013B1 (en) Integration database framework
CN100485640C (en) Cache for an enterprise software system
KR102504537B1 (en) Device and method for preparating data based on data division
Calçada et al. Evaluation of Couchbase, CouchDB and MongoDB using OSSpal.
Salehian et al. Comparison of spark resource managers and distributed file systems
JP6204753B2 (en) Distributed query processing apparatus, processing method, and processing program
JP2008225686A (en) Data arrangement management device and method in distributed data processing platform, and system and program
Rodriges Zalipynis Distributed in situ processing of big raster data in the Cloud
Hassan et al. Simplified data processing for large cluster: a MapReduce and Hadoop based study
Verma et al. Big data analytics: performance evaluation for high availability and fault tolerance using mapreduce framework with hdfs
KR20230053809A (en) Big data preprocessing method and apparatus using distributed nodes
KR20220070848A (en) Big data cross model data integrated processing method and apparatus
ELomari et al. New data placement strategy in the HADOOP framework
CN113515518A (en) Data storage method and device, computer equipment and storage medium
Singh NoSQL: A new horizon in big data
JP6139399B2 (en) Distributed query processing device, query processing method, and query processing program
US20090138523A1 (en) Content engine asynchronous upgrade framework
CN110874371B (en) Data analysis system, method and device

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