KR20200103133A - 하둡 기반의 빅데이터 시스템에서 etl 절차를 수행하는 방법 및 장치 - Google Patents

하둡 기반의 빅데이터 시스템에서 etl 절차를 수행하는 방법 및 장치 Download PDF

Info

Publication number
KR20200103133A
KR20200103133A KR1020190014338A KR20190014338A KR20200103133A KR 20200103133 A KR20200103133 A KR 20200103133A KR 1020190014338 A KR1020190014338 A KR 1020190014338A KR 20190014338 A KR20190014338 A KR 20190014338A KR 20200103133 A KR20200103133 A KR 20200103133A
Authority
KR
South Korea
Prior art keywords
etl
procedure
hadoop
data
big data
Prior art date
Application number
KR1020190014338A
Other languages
English (en)
Inventor
조정희
이강우
Original Assignee
한국전자통신연구원
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 한국전자통신연구원 filed Critical 한국전자통신연구원
Priority to KR1020190014338A priority Critical patent/KR20200103133A/ko
Publication of KR20200103133A publication Critical patent/KR20200103133A/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/25Integrating or interfacing systems involving database management systems
    • G06F16/254Extract, transform and load [ETL] procedures, e.g. ETL data flows in data warehouses
    • 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/5066Algorithms for mapping a plurality of inter-dependent sub-tasks onto a plurality of physical CPUs
    • 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/5072Grid computing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/50Indexing scheme relating to G06F9/50
    • G06F2209/5017Task decomposition

Landscapes

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

Abstract

하둡(Hadoop) 기반의 빅데이터 시스템에서 ETL(Extract, Transform, Load) 절차를 수행하는 방법 및 장치가 개시된다. 하둡(Hadoop) 기반의 빅데이터 시스템에서 ETL(Extract, Transform, Load) 절차를 수행하는 방법은, 미리 생성된 ETL 스트립트(script) 파일을 불러오는 단계, 불러온 상기 ETL 스트립트 파일에서 입력 데이터에 대한 ETL 절차를 수행하는 데 필요한 복수의 단위 작업을 확인하는 단계 및 상기 입력 데이터를 분산병렬 처리를 위한 개별 단위로 분할하고, 분할된 개별 단위마다 상기 복수의 단위 작업에 대한 분산-병렬 처리를 수행하는 단계를 포함한다.

Description

하둡 기반의 빅데이터 시스템에서 ETL 절차를 수행하는 방법 및 장치{METHOD AND APPARATUS FOR PERFORMING EXTRACT-TRANSFROM-LOAD PROCEDURES IN A HADOOP-BASED BIG DATA PROCESSING SYSTEM}
본 발명은 하둡 기반의 빅데이터 시스템에서 ETL 절차를 수행하는 방법 및 장치에 관한 것으로, 더욱 상세하게는 하둡 기반의 빅데이터 시스템에서 빅데이터를 처리하기 위한 사전 절차로서 수행되는 ETL(Extract, Transform, Load) 절차를 병렬, 분산 처리하도록 지원함으로써 처리 속도를 향상시키는 기술에 관한 것이다.
각종 컴퓨팅 장치와 데이터 통신 기술이 보급됨에 따라 현대인들은 하루 대부분의 시간을 인터넷 검색에 사용한다. 사용자가 직접 제작하는 UCC를 비롯한 동영상 콘텐츠, 휴대전화와 SNS(Social Network Service)에서 생성되는 문자 등이 폭발적으로 증가함에 따라 규모를 가늠할 수 없을 정도로 많은 데이터가 생성된다.
빅데이터는 이처럼 규모가 방대하고 생성주기가 짧으며 다양한 형태를 가진 대규모 데이터를 의미하는데, 크기(Volume), 속도(Velocity), 다양성(Variety)이라는 속성을 가진다. 크기는 일반적으로 수십 테라 바이트 혹은 수십 페타바이트 이상 규모의 대용량 데이터 속성을 의미하며, 속도는 대용량의 데이터를 빠르게 처리하고 분석할 수 있는 속성으로서, 실시간으로 저장, 유통, 수집, 분석처리가 가능한 성능을 의미한다. 다양성(Variety)은 다양한 종류의 데이터를 의미하며 정형화의 종류에 따라 정형, 반정형, 비정형 데이터로 분류할 수 있다.
또한, 최근에는 데이터가 분석하고 수집할만한 가치가 있는지를 나타내는 속성인 가치(Value), 수집한 데이터가 정확한 것인지를 나타내는 속성인 정확성(Veracity), 데이터가 분석하거나 사용하는 사람에 따라 다른 의미를 가질 수 있는 속성인 가변성(Variability), 수집된 데이터를 용도에 맞게 가공하여 사용자의 이해를 돕는 속성인 시각화(Visualization)가 빅데이터의 새로운 속성으로 포함되기도 한다.
한편, 분산 처리 프레임워크(framework)인 하둡(Hadoop)은 각종 빅데이터를 분산, 병렬 처리하는 기술로서, 수천대의 분산된 저장소에 대용량 파일을 저장하는 분산 파일 시스템과 저장된 파일 데이터를 분산된 서버의 처리 자원을 이용하여 쉽고 빠르게 분석하는 컴퓨팅 플랫폼인 맵리듀스(mapreduce)로 구성된다.
하둡을 통하여 빅데이터를 분산, 병렬처리하기 위한 사전적 절차로서, 수집한 각종 데이터 소스들에서 필요한 데이터를 추출(Extract)하고, 추출된 데이터를 하둡 기반 빅데이터 시스템에서 정의하는 데이터 포맷으로 변환(Transform)한 후, 변환된 데이터를 하둡 기반 빅데이터 시스템에서 불러오기(Load)하는 과정(이하, ETL 절차)이 필요하다.
그러나, 기존의 ETL 절차는 개별 사용자가 별도의 툴(Tool)을 이용하여 순차적으로 수행하기 때문에, 데이터 규모가 크고 복잡한 빅데이터의 처리 속도를 저하시키는 요인으로 작용한다. 따라서, ETL 절차를 신속하게 처리할 수 있는 새로운 방안이 필요한 실정이다.
상기와 같은 문제점을 해결하기 위한 본 발명의 목적은, 하둡(Hadoop) 기반의 빅데이터 시스템에서 ETL(Extract, Transform, Load) 절차를 수행하는 방법을 제공하는 데 있다.
상기와 같은 문제점을 해결하기 위한 본 발명의 다른 목적은, 하둡(Hadoop) 기반의 빅데이터 시스템에서 ETL(Extract, Transform, Load) 절차를 수행하는 장치를 제공하는 데 있다.
상기 목적을 달성하기 위한 본 발명의 일 측면은, 하둡(Hadoop) 기반의 빅데이터 시스템에서 ETL(Extract, Transform, Load) 절차를 수행하는 방법을 제공한다.
하둡(Hadoop) 기반의 빅데이터 시스템에서 ETL(Extract, Transform, Load) 절차를 수행하는 방법은, 미리 생성된 ETL 스트립트(script) 파일을 불러오는 단계, 불러온 상기 ETL 스트립트 파일에서 입력 데이터에 대한 ETL 절차를 수행하는 데 필요한 복수의 단위 작업을 확인하는 단계 및 상기 입력 데이터를 분산병렬 처리를 위한 개별 단위로 분할하고, 분할된 개별 단위마다 상기 복수의 단위 작업에 대한 분산-병렬 처리를 수행하는 단계를 포함할 수 있다.
상기 ETL 스크립트 파일은, JSON(JavaScript Object Notation), XML(Extensible Markup Language) 포맷 중 하나일 수 있다.
상기 ETL 스크립트 파일은, 상기 JSON 포맷이고, 상기 ETL 절차를 위한 단위 작업 및 상기 단위 작업의 수행에 필요한 파라미터 키-값 페어(key-value pair)를 포함할 수 있다.
상기 복수의 단위 작업은, 플러그인(plug-in) 방식으로 상기 빅데이터 시스템에서 참조가 가능하도록 구현될 수 있다.
상기 복수의 단위 작업은, 상기 입력 데이터를 파싱(parsing)하는 작업, 상기 입력 데이터의 데이터 포맷을 상기 빅데이터 시스템에 따른 데이터 포맷으로 변환하는 작업을 포함할 수 있다.
상기 분산-병렬 처리를 수행하는 단계는, 하둡 기반 맵리듀스를 이용하여 상기 개별 단위별로 분산-병렬 처리를 수행할 수 있다.
상기 분산-병렬 처리를 수행하는 단계는, 상기 개별 단위에 상응하는 입력 데이터를 불러오는 단계, 불러온 입력 데이터를 파싱(parsing)하는 단계 및 파싱된 데이터를 분석하는 단계를 포함할 수 있다.
상기 분석하는 단계 이후에, 분석한 결과 데이터를 상기 빅데이터 시스템에 따른 하둡 파일로 저장하는 단계를 더 포함할 수 있다.
상기 목적을 달성하기 위한 본 발명의 다른 측면은, 하둡(Hadoop) 기반의 빅데이터 시스템에서 ETL(Extract, Transform, Load) 절차를 수행하는 장치를 제공한다.
하둡(Hadoop) 기반의 빅데이터 시스템에서 ETL(Extract, Transform, Load) 절차를 수행하는 장치는, 적어도 하나의 프로세서(processor) 및 상기 적어도 하나의 프로세서가 적어도 하나의 단계를 수행하도록 지시하는 명령어들(instructions)을 저장하는 메모리(memory)를 포함할 수 있다.
상기 적어도 하나의 단계는, 미리 생성된 ETL 스트립트(script) 파일을 불러오는 단계, 불러온 상기 ETL 스트립트 파일에서 입력 데이터에 대한 ETL 절차를 수행하는 데 필요한 복수의 단위 작업을 확인하는 단계 및 상기 입력 데이터를 분산병렬 처리를 위한 개별 단위로 분할하고, 분할된 개별 단위마다 상기 복수의 단위 작업에 대한 분산-병렬 처리를 수행하는 단계를 포함할 수 있다.
상기 ETL 스크립트 파일은, JSON(JavaScript Object Notation), XML(Extensible Markup Language) 포맷 중 하나일 수 있다.
상기 ETL 스크립트 파일은, 상기 JSON 포맷이고, 상기 ETL 절차를 위한 단위 작업 및 상기 단위 작업의 수행에 필요한 파라미터 키-값 페어(key-value pair)를 포함할 수 있다.
상기 복수의 단위 작업은, 플러그인(plug-in) 방식으로 상기 빅데이터 시스템에서 참조가 가능하도록 구현될 수 있다.
상기 복수의 단위 작업은, 상기 입력 데이터를 파싱(parsing)하는 작업, 상기 입력 데이터의 데이터 포맷을 상기 빅데이터 시스템에 따른 데이터 포맷으로 변환하는 작업을 포함할 수 있다.
상기 분산-병렬 처리를 수행하는 단계는, 하둡 기반 맵리듀스를 이용하여 상기 개별 단위별로 분산-병렬 처리를 수행할 수 있다.
상기 분산-병렬 처리를 수행하는 단계는, 상기 개별 단위에 상응하는 입력 데이터를 불러오는 단계, 불러온 입력 데이터를 파싱(parsing)하는 단계 및 파싱된 데이터를 분석하는 단계를 포함할 수 있다.
상기 분석하는 단계 이후에, 분석한 결과 데이터를 상기 빅데이터 시스템에 따른 하둡 파일로 저장하는 단계를 더 포함할 수 있다.
상기와 같은 본 발명에 따른 하둡(Hadoop) 기반의 빅데이터 시스템에서 ETL(Extract, Transform, Load) 절차를 수행하는 방법 및 장치를 이용할 경우에는 ETL 절차에 대한 병렬-분산처리를 통해 빠르고 효율적으로 빅데이터 처리를 수행할 수 있다.
또한, 사용자가 별도의 ETL 툴에 사용하여 ETL 절차를 수행할 필요가 없이 ETL 절차를 위한 스크립트 생성으로 손쉽게 ETL 절차에 대한 병렬-분산 처리를 수행할 수 있는 장점이 있다.
도 1은 하둡 기반의 빅데이터 시스템에서 데이터 처리 과정을 설명하기 위한 개념도이다.
도 2는 본 발명의 일 실시예에 따른 하둡 기반의 빅데이터 시스템에서 ETL 절차를 수행하는 개념도이다.
도 3은 본 발명의 일 실시예에 따른 ETL 절차를 수행하기 위하여 기술되는 ETL 스크립트의 예시도이다.
도 4는 본 발명의 일 실시예에 따른 ETL 절차를 분산-병렬 처리하는 개념도이다.
도 5는 본 발명의 일 실시예에 따른 하둡 기반의 빅데이터 시스템에서 ETL 절차를 수행하는 방법에 대한 흐름도이다.
도 6은 본 발명의 일 실시예에 따른 하둡 기반의 빅데이터 시스템에서 ETL 절차를 수행하는 장치에 대한 구성도이다.
본 발명은 다양한 변경을 가할 수 있고 여러 가지 실시예를 가질 수 있는 바, 특정 실시예들을 도면에 예시하고 상세한 설명에 상세하게 설명하고자 한다. 그러나, 이는 본 발명을 특정한 실시 형태에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다. 각 도면을 설명하면서 유사한 참조부호를 유사한 구성요소에 대해 사용하였다.
제1, 제2, A, B 등의 용어는 다양한 구성요소들을 설명하는데 사용될 수 있지만, 상기 구성요소들은 상기 용어들에 의해 한정되어서는 안 된다. 상기 용어들은 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로만 사용된다. 예를 들어, 본 발명의 권리 범위를 벗어나지 않으면서 제1 구성요소는 제2 구성요소로 명명될 수 있고, 유사하게 제2 구성요소도 제1 구성요소로 명명될 수 있다. 및/또는 이라는 용어는 복수의 관련된 기재된 항목들의 조합 또는 복수의 관련된 기재된 항목들 중의 어느 항목을 포함한다.
어떤 구성요소가 다른 구성요소에 "연결되어" 있다거나 "접속되어" 있다고 언급된 때에는, 그 다른 구성요소에 직접적으로 연결되어 있거나 또는 접속되어 있을 수도 있지만, 중간에 다른 구성요소가 존재할 수도 있다고 이해되어야 할 것이다. 반면에, 어떤 구성요소가 다른 구성요소에 "직접 연결되어" 있다거나 "직접 접속되어" 있다고 언급된 때에는, 중간에 다른 구성요소가 존재하지 않는 것으로 이해되어야 할 것이다.
본 출원에서 사용한 용어는 단지 특정한 실시예를 설명하기 위해 사용된 것으로, 본 발명을 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 출원에서, "포함하다" 또는 "가지다" 등의 용어는 명세서상에 기재된 특징, 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.
다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가지고 있다. 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥 상 가지는 의미와 일치하는 의미를 가지는 것으로 해석되어야 하며, 본 출원에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.
이하, 본 발명에 따른 바람직한 실시예를 첨부된 도면을 참조하여 상세하게 설명한다.
도 1은 하둡 기반의 빅데이터 시스템에서 데이터 처리 과정을 설명하기 위한 개념도이다.
빅데이터는 다양한 방식과 형태로 생성 또는 수집되기 때문에 서로 다른 데이터 포맷을 갖는다. 따라서, 이러한 빅데이터를 하둡 기반의 빅데이터 시스템 상에서 병렬-분산 처리하기 위해서는 하둡 기반의 빅데이터 시스템이 이해(또는 분석)할 수 있는 형태로 변환하는 전처리 과정이 선행되어야 한다. 이때, 분산-병렬 처리는 하둡 기반의 빅데이터 시스템을 구성하는 다수의 서버로 처리할 데이터를 분산하고, 각각의 서버에서 동시에 병렬적으로 데이터를 처리하는 방식을 의미할 수 있다.
이러한 전처리 과정을 ETL(Extract, Transform, Load) 절차로 지칭할 수 있는 데, ETL 절차는 다양한 형태로 수집된 입력 데이터로부터 의미있는 정보를 추출하는 추출(extract) 과정, 추출된 정보를 하둡 기반의 빅데이터 시스템에서 정의한 데이터 포맷으로 변환하는 변환(transform) 과정, 변환된 정보를 하둡 기반의 빅데이터 시스템에서 불러오는 로드(load) 과정으로 구성될 수 있다.
도 1을 참조하면, 이러한 ETL 절차를 통해 하둡 기반의 빅데이터 시스템이 데이터를 분석하는 일련의 절차를 확인할 수 있다. 먼저 다양한 방식으로 수집된 입력 데이터 전체를 불러오기(Load)한 후(도면의 Load TextFile), 불러온 입력 데이터를 파싱하고(Parse CSV), 파싱된 입력 데이터를 빅데이터 시스템에 따른 데이터 포맷에 맞게 변환하여 빅데이터 시스템을 위한 하둡 파일(Hadoop file)을 생성할 수 있다. 여기서 생성된 하둡 파일은 하둡 기반의 빅데이터 시스템에 따른 데이터 저장소에 저장(Store)될 수 있다.
하둡 기반의 빅데이터 시스템이 앞서 생성된 하둡 파일을 분석하려면, 데이터 저장소에 저장된 하둡 파일을 불러오고, 불러온 하둡 파일에 대한 분석 작업을 수행하며, 분석 결과에 대한 하둡 파일(Hadoop File)을 생성하여 다시 데이터 저장소에 저장할 수 있다. 이때, 분석 대상이 되는 하둡 파일이 공간 데이터에 대한 것이라면, 공간 데이터에 대한 분석 작업으로 필터(Filter) 작업이 수행될 수 있다.
한편, 하둡 기반의 빅데이터 시스템에서 분석하기 위한 하둡 파일을 생성하는 과정(ETL 절차의 일부)은 다양한 ETL 툴(tool)을 통해 개별 사용자가 직접 생성한다. 즉, 사용자는 ETL 툴의 사용법을 익혀서 GUI(Graphic User Interface) 기반으로 하둡 파일을 생성하고, 생성된 하둡 파일을 하둡 기반 빅데이터 시스템으로 전달한다. 또한, ETL 툴을 통해 하둡 파일을 생성하는 과정은 전체 입력 데이터들 전체를 불러와 순차적으로(sequential) 처리되고, 생성된 하둡 파일을 빅데이터 처리 시스템에서 불러와 분석하는 과정은 하둡 기반의 빅데이터 시스템에서 분산-병렬적으로(distributed-parallel) 처리된다.
입력 데이터의 규모가 크지 않을 경우에는 ETL 툴을 이용한 순차적 처리 방식이 문제되지 않으나, 입력 데이터의 규모가 크고 복잡도가 높아질수록 속도가 느려지고 분석 효율이 낮아지는 문제가 발생할 수 있다. 특히, 입력 데이터가 공간 데이터인 경우, 공간 데이터는 빅데이터의 일반적인 특징을 보유하면서도 공간과 관련된 다양한 속성이 추가로 포함되기 때문에 병목현상(bottleneck)을 야기할 수 있다.
예를 들어, 차량의 블랙박스에서 기록되는 데이터의 규모는 일주일간 수백 기가에 이를 만큼 방대하다. 블랙박스에 기록되는 데이터에 대한 분석은, 특정 도로의 정체 수준을 결정하는 것과 같이 간단한 수준으로 자주 수행해야 하는 경우가 많다. 즉, 분석 과정이 단순하여 데이터를 실질적으로 분석하는 데 필요한 시스템 부하는 작지만, 분석을 자주 수행해야 하므로 분석에 필요한 형태로 데이터를 변환하고 불러오는 데 필요한 시스템 부하가 크다.
따라서, 이른바 ETL 절차를 수행하는 경우에서도 순차적 처리 이외의 방식을 통해 처리 속도와 효율을 향상시킬 필요가 있다.
도 2는 본 발명의 일 실시예에 따른 하둡 기반의 빅데이터 시스템에서 ETL 절차를 수행하는 개념도이다.
본 발명의 일 실시예에 따르면, ETL 절차와 분석 과정을 통합하여 하둡 기반 빅데이터 시스템에서 분산-병렬 처리로 수행하는 방법을 제안한다.
도 2를 참조하면, 입력 데이터(CSV Files)를 불러오고, 불러온 입력 데이터를 파싱한 후(Parse CSV), 파싱된 입력 데이터를 곧바로 분석하고(Filter) 분석 결과를 하둡 파일로 생성 및 저장(Store)하는 일련의 과정을 모두 하둡 기반의 빅데이터 시스템에서 수행할 수 있다.
즉, 도 1과 비교했을 때, 도 2에 따른 방법은 빅데이터 분석을 위한 사전 절차인 ETL 절차와 분석 과정을 통합하여 모두 하둡 기반 빅데이터 시스템을 통한 분산-병렬 처리 방식으로 수행하기 때문에 처리 속도와 효율을 향상시킬 수 있는 장점이 있다.
또한, 입력 데이터를 파싱한 후 하둡 기반 빅데이터 시스템에서 분석하기 위한 입력 하둡 파일을 생성 및 저장하는 과정(Store) 및 저장된 입력 하둡 파일을 불러오는 과정(Load)을 생략함으로써 입출력(I/O)에 소요되는 시스템 부하를 줄일 수 있는 장점이 있다.
또한, 하둡 기반 빅데이터 시스템을 운용하여 데이터를 분석해야 하는 개별 사용자(또는 개발자)는 ETL 툴의 사용법을 습득하여 사용해야 하는 번거로움을 없앨 수 있다.
한편, 도 2에 따른 방식으로 하둡 기반 빅데이터 시스템 상에서 데이터를 분석하기 위해서는 사전에 ETL 절차에서 수행해야 할 단위 작업들을 기술하는 스크립트 파일(script file, 이하 ETL 스크립트 파일로 지칭)을 생성할 필요가 있다. 이하에서는 ETL 스크립트 파일의 내용에 대하여 구체적으로 설명한다.
도 3은 본 발명의 일 실시예에 따른 ETL 절차를 수행하기 위하여 기술되는 ETL 스크립트의 예시도이다.
본 발명의 일 실시예에 따른 ETL 스크립트 파일에는 ETL 절차를 수행하는 데 필요한 단위 작업, 각 단위 작업의 수행에 필요한 파라미터의 키-값 페어(key-value pair)의 리스트로 구성될 수 있다.
도 3을 참조하면, ETL 스크립트 파일을 JSON(JavaScript Object Notation) 포맷 형식으로 기술한 예시를 확인할 수 있는데, 단위 작업으로 "parseCSV", "expand", "toPoint", "transformCrs", "project" 등이 기술된 것을 확인할 수 있고, 각 단위 작업에 대한 키-값 페어(키 : 값의 형태로 기술)가 기술된 것을 확인할 수 있다. 예를 들어, 단위 작업 "parseCSV"에 대하여 키 "delimiter"와 값 ","의 페어가 기술되어 있다. 이러한 기술 내용을 통해 CSV 파일을 파싱하기 위한 구획 문자가 "," 임을 확인할 수 있고, 따라서, 문자 "," 단위로 CSV 파일을 파싱하는 작업을 확인할 수 있다.
또한, 도 3을 참조하면 단위 작업 "tramsformCrs"에 대하여 키 "sourceSrid"와 값"EPSG:4326"의 페어, 키 "targetSrid"와 값 "EPSG:5186"의 페어 등이 기술되어 있다. 이러한 기술 내용을 통해 소스 데이터 파일의 공간 데이터 좌표계 EPSG:4326 을 빅데이터 시스템에서 지원하는 공간 좌표계 EPSG:5186으로 변환하는 작업을 확인할 수 있다.
도 3에서는 JSON 포맷에 따라 키-값의 페어 형태로 ETL 스크립트 파일을 기술하였으나, 이에 한정되는 것은 아니며 XML(Extensible Markup Language) 포맷 등 다양한 기술(description) 포맷이 사용될 수 있다.
또한, ETL 스크립트 파일은 빅데이터 시스템에서 분석하고자 하는 입력 데이터의 속성(예를 들어 공간 데이터라면 좌표계를 비롯한 데이터 속성)에 따라 생성되어야 한다. 따라서, 입력 데이터의 속성을 고려하여 개발자가 미리 ETL 스크립트 파일을 생성하여야 하며, 이때 각 단위 작업을 분산-병렬 처리하기 위한 세부 절차는 개발자가 빅데이터 시스템에서 참조할 수 있는 플러그인(plug-in) 형태로 구현되어야 할 수 있다.
도 4는 본 발명의 일 실시예에 따른 ETL 절차를 분산-병렬 처리하는 개념도이다.
도 2 및 도 3에서 설명한 것과 같이, 본 발명의 일 실시예에 따른 하둡 기반의 빅데이터 시스템에서 ETL 절차를 수행하는 방법 및 장치는 입력 데이터를 불러오고 파싱하는 과정부터 분석하기까지의 절차를 하둡 기반의 분산-병렬 처리를 통해 수행할 수 있다.
도 4를 참조하면, 본 발명의 일 실시예에 따른 하둡 기반의 빅데이터 시스템에서 ETL 절차를 수행하는 방법 및 장치는, 여러 형식의 입력 데이터를 한꺼번에 불러오는 것이 아니라, 입력 데이터를 분산-병렬 처리하기 위한 개별 단위로 분할하고, 개별 단위 각각에 대하여 불러오기(Load), 파싱(Parse CSV), 분석(Filter), 분석 결과 데이터의 저장(Store)을 분선-병렬 처리 방식으로 수행할 수 있다. 이때 개별 단위에 대한 분산-병렬 처리는 하둡 기반의 맵리듀스를 이용하여 수행될 수 있다. 이때, 맵리듀스는 하둡 기반의 분산-병렬 처리를 위한 프로그래밍 모델로서, 맵(Map) 단계(또는 맵 함수)를 통해 데이터를 분산-병렬로 처리하고, 맵 단계에서 처리된 결과들을 리듀스(Reduce) 단계(또는 리듀스 함수)에서 합친다.
한편, 개별 단위에 대하여 불러오기, 파싱 등과 같은 ETL 절차(또는 전처리)를 분산-병렬 처리 방식으로 수행하기 위하여 앞선 도 3에 따른 ETL 스크립트 파일을 참조할 수 있다. 즉, 하둡 기반의 빅데이터 시스템에서 ETL 절차를 수행하는 방법 및 장치는 ETL 스크립트 파일을 불러와서 ETL 절차에 필요한 단위 작업을 먼저 파악하고, 파악된 단위 작업들을 참조하여 ETL 절차부터 데이터 분석까지 분산-병렬 처리할 수 있다.
도 5는 본 발명의 일 실시예에 따른 하둡 기반의 빅데이터 시스템에서 ETL 절차를 수행하는 방법에 대한 흐름도이다.
도 5를 참조하면, 하둡(Hadoop) 기반의 빅데이터 시스템에서 ETL(Extract, Transform, Load) 절차를 수행하는 방법은, 미리 생성된 ETL 스트립트(script) 파일을 불러오는 단계(S100), 불러온 상기 ETL 스트립트 파일에서 입력 데이터에 대한 ETL 절차를 수행하는 데 필요한 복수의 단위 작업을 확인하는 단계(S110) 및 상기 입력 데이터를 분산-병렬 처리를 위한 개별 단위로 분할하고, 분할된 개별 단위마다 상기 복수의 단위 작업에 대한 분산-병렬 처리를 수행하는 단계(S120)를 포함할 수 있다.
여기서 분산-병렬 처리는 하둡 기반의 빅데이터 시스템에 따른 다수의 서버로 처리할 데이터를 분산하고, 각각의 서버에서 동시에 병렬적으로 데이터 처리를 수행하는 절차를 의미할 수 있다.
상기 ETL 스크립트 파일은, JSON(JavaScript Object Notation), XML(Extensible Markup Language) 포맷 중 하나일 수 있다.
상기 ETL 스크립트 파일은, 상기 JSON 포맷이고, 상기 ETL 절차를 위한 단위 작업 및 상기 단위 작업의 수행에 필요한 파라미터 키-값 페어(key-value pair)를 포함할 수 있다.
상기 복수의 단위 작업은, 플러그인(plug-in) 방식으로 상기 빅데이터 시스템에서 참조가 가능하도록 구현될 수 있다.
상기 복수의 단위 작업은, 상기 입력 데이터를 파싱(parsing)하는 작업, 상기 입력 데이터의 데이터 포맷을 상기 빅데이터 시스템에 따른 데이터 포맷으로 변환하는 작업을 포함할 수 있다.
상기 분산-병렬 처리를 수행하는 단계(S120)는, 하둡 기반 맵리듀스를 이용하여 상기 개별 단위별로 분산-병렬 처리를 수행할 수 있다.
상기 분산-병렬 처리를 수행하는 단계(S120)는, 상기 개별 단위에 상응하는 입력 데이터를 불러오는 단계, 불러온 입력 데이터를 파싱(parsing)하는 단계 및 파싱된 데이터를 분석하는 단계를 포함할 수 있다.
상기 분석하는 단계 이후에, 분석한 결과 데이터를 상기 빅데이터 시스템에 따른 하둡 파일로 저장하는 단계를 더 포함할 수 있다.
도 6은 본 발명의 일 실시예에 따른 하둡 기반의 빅데이터 시스템에서 ETL 절차를 수행하는 장치에 대한 구성도이다.
도 6을 참조하면, 하둡(Hadoop) 기반의 빅데이터 시스템에서 ETL(Extract, Transform, Load) 절차를 수행하는 장치(100)는, 적어도 하나의 프로세서(processor, 110) 및 상기 적어도 하나의 프로세서가 적어도 하나의 단계를 수행하도록 지시하는 명령어들(instructions)을 저장하는 메모리(memory, 120)를 포함할 수 있다.
상기 적어도 하나의 단계는, 미리 생성된 ETL 스트립트(script) 파일을 불러오는 단계, 불러온 상기 ETL 스트립트 파일에서 입력 데이터에 대한 ETL 절차를 수행하는 데 필요한 복수의 단위 작업을 확인하는 단계 및 상기 입력 데이터를 분산병렬 처리를 위한 개별 단위로 분할하고, 분할된 개별 단위마다 상기 복수의 단위 작업에 대한 분산-병렬 처리를 수행하는 단계를 포함할 수 있다.
상기 ETL 스크립트 파일은, JSON(JavaScript Object Notation), XML(Extensible Markup Language) 포맷 중 하나일 수 있다.
상기 ETL 스크립트 파일은, 상기 JSON 포맷이고, 상기 ETL 절차를 위한 단위 작업 및 상기 단위 작업의 수행에 필요한 파라미터 키-값 페어(key-value pair)를 포함할 수 있다.
상기 복수의 단위 작업은, 플러그인(plug-in) 방식으로 상기 빅데이터 시스템에서 참조가 가능하도록 구현될 수 있다.
상기 복수의 단위 작업은, 상기 입력 데이터를 파싱(parsing)하는 작업, 상기 입력 데이터의 데이터 포맷을 상기 빅데이터 시스템에 따른 데이터 포맷으로 변환하는 작업을 포함할 수 있다.
상기 분산-병렬 처리를 수행하는 단계는, 하둡 기반 맵리듀스를 이용하여 상기 개별 단위별로 분산-병렬 처리를 수행할 수 있다.
상기 분산-병렬 처리를 수행하는 단계는, 상기 개별 단위에 상응하는 입력 데이터를 불러오는 단계, 불러온 입력 데이터를 파싱(parsing)하는 단계 및 파싱된 데이터를 분석하는 단계를 포함할 수 있다.
상기 분석하는 단계 이후에, 분석한 결과 데이터를 상기 빅데이터 시스템에 따른 하둡 파일로 저장하는 단계를 더 포함할 수 있다.
하둡 기반의 빅데이터 시스템에서 ETL 절차를 수행하는 장치는 하둡 기반의 빅데이터 시스템을 구성하는 복수의 서버로 구현될 수 있으며, 이때 각각의 서버는, 통신 가능한 데스크탑 컴퓨터(desktop computer), 랩탑 컴퓨터(laptop computer), 노트북(notebook), 스마트폰(smart phone), 태블릿 PC(tablet PC), 모바일폰(mobile phone), 스마트 워치(smart watch), 스마트 글래스(smart glass), e-book 리더기, PMP(portable multimedia player), 휴대용 게임기, 네비게이션(navigation) 장치, 디지털 카메라(digital camera), DMB(digital multimedia broadcasting) 재생기, 디지털 음성 녹음기(digital audio recorder), 디지털 음성 재생기(digital audio player), 디지털 동영상 녹화기(digital video recorder), 디지털 동영상 재생기(digital video player), PDA(Personal Digital Assistant) 등일 수 있다.
본 발명에 따른 방법들은 다양한 컴퓨터 수단을 통해 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 컴퓨터 판독 가능 매체에 기록되는 프로그램 명령은 본 발명을 위해 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다.
컴퓨터 판독 가능 매체의 예에는 롬(ROM), 램(RAM), 플래시 메모리(flash memory) 등과 같이 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함될 수 있다. 프로그램 명령의 예에는 컴파일러(compiler)에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터(interpreter) 등을 사용해서 컴퓨터에 의해 실행될 수 있는 고급 언어 코드를 포함할 수 있다. 상술한 하드웨어 장치는 본 발명의 동작을 수행하기 위해 적어도 하나의 소프트웨어 모듈로 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.
또한, 상술한 방법 또는 장치는 그 구성이나 기능의 전부 또는 일부가 결합되어 구현되거나, 분리되어 구현될 수 있다.
상기에서는 본 발명의 바람직한 실시예를 참조하여 설명하였지만, 해당 기술 분야의 숙련된 당업자는 하기의 특허 청구의 범위에 기재된 본 발명의 사상 및 영역으로부터 벗어나지 않는 범위 내에서 본 발명을 다양하게 수정 및 변경시킬 수 있음을 이해할 수 있을 것이다.

Claims (16)

  1. 하둡(Hadoop) 기반의 빅데이터 시스템에서 ETL(Extract, Transform, Load) 절차를 수행하는 방법으로,
    미리 생성된 ETL 스트립트(script) 파일을 불러오는 단계;
    불러온 상기 ETL 스트립트 파일에서 입력 데이터에 대한 ETL 절차를 수행하는 데 필요한 복수의 단위 작업을 확인하는 단계; 및
    상기 입력 데이터를 분산병렬 처리를 위한 개별 단위로 분할하고, 분할된 개별 단위마다 상기 복수의 단위 작업에 대한 분산-병렬 처리를 수행하는 단계를 포함하는, ETL 절차를 수행하는 방법.
  2. 청구항 1에서,
    상기 ETL 스크립트 파일은,
    JSON(JavaScript Object Notation), XML(Extensible Markup Language) 포맷 중 하나인, ETL 절차를 수행하는 방법.
  3. 청구항 2에서,
    상기 ETL 스크립트 파일은,
    상기 JSON 포맷이고, 상기 ETL 절차를 위한 단위 작업 및 상기 단위 작업의 수행에 필요한 파라미터 키-값 페어(key-value pair)를 포함하는, ETL 절차를 수행하는 방법.
  4. 청구항 1에서,
    상기 복수의 단위 작업은,
    플러그인(plug-in) 방식으로 상기 빅데이터 시스템에서 참조가 가능하도록 구현되는, ETL 절차를 수행하는 방법.
  5. 청구항 1에서,
    상기 복수의 단위 작업은,
    상기 입력 데이터를 파싱(parsing)하는 작업 및 상기 입력 데이터의 데이터 포맷을 상기 빅데이터 시스템에 따른 데이터 포맷으로 변환하는 작업을 포함하는, ETL 절차를 수행하는 방법.
  6. 청구항 1에서,
    상기 분산-병렬 처리를 수행하는 단계는,
    하둡 기반 맵리듀스를 이용하여 상기 개별 단위별로 분산-병렬 처리를 수행하는, ETL 절차를 수행하는 방법.
  7. 청구항 6에서,
    상기 분산-병렬 처리를 수행하는 단계는,
    상기 개별 단위에 상응하는 입력 데이터를 불러오는 단계;
    불러온 입력 데이터를 파싱(parsing)하는 단계; 및
    파싱된 데이터를 분석하는 단계를 포함하는, ETL 절차를 수행하는 방법.
  8. 청구항 7에서,
    상기 분석하는 단계 이후에,
    분석한 결과 데이터를 상기 빅데이터 시스템에 따른 하둡 파일로 저장하는 단계를 더 포함하는, ETL 절차를 수행하는 방법.
  9. 하둡(Hadoop) 기반의 빅데이터 시스템에서 ETL(Extract, Transform, Load) 절차를 수행하는 장치로서,
    적어도 하나의 프로세서(processor); 및
    상기 적어도 하나의 프로세서가 적어도 하나의 단계를 수행하도록 지시하는 명령어들(instructions)을 저장하는 메모리(memory)를 포함하고,
    상기 적어도 하나의 단계는,
    미리 생성된 ETL 스트립트(script) 파일을 불러오는 단계;
    불러온 상기 ETL 스트립트 파일에서 입력 데이터에 대한 ETL 절차를 수행하는 데 필요한 복수의 단위 작업을 확인하는 단계; 및
    상기 입력 데이터를 분산병렬 처리를 위한 개별 단위로 분할하고, 분할된 개별 단위마다 상기 복수의 단위 작업에 대한 분산-병렬 처리를 수행하는 단계를 포함하는, ETL 절차를 수행하는 장치.
  10. 청구항 9에서,
    상기 ETL 스크립트 파일은,
    JSON(JavaScript Object Notation), XML(Extensible Markup Language) 포맷 중 하나인, ETL 절차를 수행하는 장치.
  11. 청구항 10에서,
    상기 ETL 스크립트 파일은,
    상기 JSON 포맷이고, 상기 ETL 절차를 위한 단위 작업 및 상기 단위 작업의 수행에 필요한 파라미터 키-값 페어(key-value pair)를 포함하는, ETL 절차를 수행하는 장치.
  12. 청구항 9에서,
    상기 복수의 단위 작업은,
    플러그인(plug-in) 방식으로 상기 빅데이터 시스템에서 참조가 가능하도록 구현되는, ETL 절차를 수행하는 장치.
  13. 청구항 9에서,
    상기 복수의 단위 작업은,
    상기 입력 데이터를 파싱(parsing)하는 작업 및 상기 입력 데이터의 데이터 포맷을 상기 빅데이터 시스템에 따른 데이터 포맷으로 변환하는 작업을 포함하는, ETL 절차를 수행하는 장치.
  14. 청구항 9에서,
    상기 분산-병렬 처리를 수행하는 단계는,
    하둡 기반 맵리듀스를 이용하여 상기 개별 단위별로 분산-병렬 처리를 수행하는, ETL 절차를 수행하는 장치.
  15. 청구항 14에서,
    상기 분산-병렬 처리를 수행하는 단계는,
    상기 개별 단위에 상응하는 입력 데이터를 불러오는 단계;
    불러온 입력 데이터를 파싱(parsing)하는 단계; 및
    파싱된 데이터를 분석하는 단계를 포함하는, ETL 절차를 수행하는 장치.
  16. 청구항 15에서,
    상기 분석하는 단계 이후에,
    분석한 결과 데이터를 상기 빅데이터 시스템에 따른 하둡 파일로 저장하는 단계를 더 포함하는, ETL 절차를 수행하는 장치.
KR1020190014338A 2019-02-07 2019-02-07 하둡 기반의 빅데이터 시스템에서 etl 절차를 수행하는 방법 및 장치 KR20200103133A (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020190014338A KR20200103133A (ko) 2019-02-07 2019-02-07 하둡 기반의 빅데이터 시스템에서 etl 절차를 수행하는 방법 및 장치

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020190014338A KR20200103133A (ko) 2019-02-07 2019-02-07 하둡 기반의 빅데이터 시스템에서 etl 절차를 수행하는 방법 및 장치

Publications (1)

Publication Number Publication Date
KR20200103133A true KR20200103133A (ko) 2020-09-02

Family

ID=72450014

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020190014338A KR20200103133A (ko) 2019-02-07 2019-02-07 하둡 기반의 빅데이터 시스템에서 etl 절차를 수행하는 방법 및 장치

Country Status (1)

Country Link
KR (1) KR20200103133A (ko)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114153909A (zh) * 2021-11-26 2022-03-08 北京人大金仓信息技术股份有限公司 一种基于Velocity模板引擎的数据库表结构翻译方法和装置
CN114443025A (zh) * 2022-01-28 2022-05-06 悦锦软件系统(上海)有限公司 用于数据治理平台的模块化etl任务处理系统和etl任务处理方法

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114153909A (zh) * 2021-11-26 2022-03-08 北京人大金仓信息技术股份有限公司 一种基于Velocity模板引擎的数据库表结构翻译方法和装置
CN114443025A (zh) * 2022-01-28 2022-05-06 悦锦软件系统(上海)有限公司 用于数据治理平台的模块化etl任务处理系统和etl任务处理方法
CN114443025B (zh) * 2022-01-28 2023-10-24 悦锦数字科技(上海)股份有限公司 用于数据治理平台的模块化etl任务处理系统和etl任务处理方法

Similar Documents

Publication Publication Date Title
US9977770B2 (en) Conversion of a presentation to Darwin Information Typing Architecture (DITA)
US10078843B2 (en) Systems and methods for analyzing consumer sentiment with social perspective insight
US10303689B2 (en) Answering natural language table queries through semantic table representation
CN109871311B (zh) 一种推荐测试用例的方法和装置
US10169005B2 (en) Consolidating and reusing portal information
US10628525B2 (en) Natural language processing of formatted documents
CN112948486B (zh) 批量数据同步方法、系统及电子设备
US20150089415A1 (en) Method of processing big data, apparatus performing the same and storage media storing the same
CN109522341A (zh) 实现基于sql的流式数据处理引擎的方法、装置、设备
US20190236087A1 (en) Messaging digest
CN113568626B (zh) 动态打包、应用程序包开启方法、装置和电子设备
CN111966760B (zh) 基于Hive数据仓库的测试数据生成方法及装置
US9519872B2 (en) Systematic discovery of business ontology
CN113962597A (zh) 一种数据分析方法、装置、电子设备及存储介质
KR20200103133A (ko) 하둡 기반의 빅데이터 시스템에서 etl 절차를 수행하는 방법 및 장치
EP3474158A1 (en) Method and device for executing distributed computing task
CN110888972A (zh) 一种基于Spark Streaming的敏感内容识别方法及装置
CN108984221B (zh) 一种多平台用户行为日志的采集方法和装置
CN108073643B (zh) 任务处理方法和装置
CN113138767B (zh) 代码语言转换方法、装置、电子设备及存储介质
CN115759278A (zh) 机器学习项目的自动去噪
US20140089207A1 (en) System and method for providing high level view tracking of changes in sca artifacts
CN112800078A (zh) 基于javascript的轻量级文本标注方法、系统、设备及存储介质
Teregowda et al. Scaling seersuite in the cloud
CN117891531B (zh) 用于saas软件的系统参数配置方法、系统、介质及电子设备