KR101638048B1 - 맵리듀스를 이용한 sql 질의처리방법 - Google Patents

맵리듀스를 이용한 sql 질의처리방법 Download PDF

Info

Publication number
KR101638048B1
KR101638048B1 KR1020140168339A KR20140168339A KR101638048B1 KR 101638048 B1 KR101638048 B1 KR 101638048B1 KR 1020140168339 A KR1020140168339 A KR 1020140168339A KR 20140168339 A KR20140168339 A KR 20140168339A KR 101638048 B1 KR101638048 B1 KR 101638048B1
Authority
KR
South Korea
Prior art keywords
data
record
mapper
reducer
map
Prior art date
Application number
KR1020140168339A
Other languages
English (en)
Other versions
KR20160064569A (ko
Inventor
강우람
김현규
Original Assignee
삼육대학교산학협력단
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 삼육대학교산학협력단 filed Critical 삼육대학교산학협력단
Priority to KR1020140168339A priority Critical patent/KR101638048B1/ko
Publication of KR20160064569A publication Critical patent/KR20160064569A/ko
Application granted granted Critical
Publication of KR101638048B1 publication Critical patent/KR101638048B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q10/00Administration; Management

Abstract

본 발명은 빅데이터 처리를 위한 데이터를 제공하는 웹서버(10)와, 상기 웹서버(10)의 데이터를 분할한 후 여러 분산 노드로 이동시켜 주어진 작업을 병렬로 처리할 수 있도록 지원하는 마스터 노드(20)와, 상기 마스터 노드(20)에 의해 맵 작업을 할당받은 서브 노드인 맵퍼(30) 및 리듀스 작업을 할당받은 서브 노드인 리듀서(40)로 구성된 데이터처리 시스템에서 빅데이터를 처리하는 방법에 있어서,
상기 웹서버(10)의 데이터를 제공받아 SQL질의문이 발생했을 때, 어떤 데이터 속성이 맵퍼(30) 및 리듀서(40)에 전달되어야 하는지를 파악하는 SQL질의문 분석단계(S10)와, 상기 SQL질의문 분석단계(S10)를 통해 파악된 속성들만을 입력 데이터로부터 추출한 후, 추출된 데이터를 상기 맵퍼(30) 및 리듀서(40)로 데이터를 분할하는 데이터 분할단계(S20)와, 분할된 데이터를 맵퍼(30)로 전송하고, 주어진 SQL 조건에 부합하는 레코드의 ID 만을 출력하는 맵 단계(S30) 및 상기 맵퍼(30)로부터 출력된 레코드 ID를 이용하여 DFS으로부터 ID에 대한 레코드 정보를 리듀서(40)로 전달받은 후 집계 처리를 수행하는 리듀스 단계(S40)로 구성되어 네트워크 서비스로부터 발생되는 대량의 데이터를 보다 빠른 시간에 처리할 수 있다.

Description

맵리듀스를 이용한 SQL 질의처리방법{SQL QUERY PROCESSING METHOD USING MAPREDUCE}
본 발명은 맵리듀스를 이용한 SQL 질의처리방법에 관한 것으로, 보다 상세하게는 맵리듀스를 이용한 SQL 질의처리방법에 있어서 빅데이터 처리 성능을 향상시키기 위한 방법에 관한 것이다.
인터넷이 발전함에 따라 하루에도 수없이 많은 데이터가 인터넷 상에서 생성 및 유통이 되고 있으며, 최근 많은 기업, 특히 검색 엔진 회사 및 웹 포탈들 간에는 이와 같이 엄청난 양의 데이터를 가능한 많이 수집 및 축적하고 수집된 데이터를 처리하여 가능한 빨리 의미 있는 정보를 추출하는 능력이 기업의 경쟁력이 되고 있다.
이를 위하여, 현재 많은 기업에서 저비용으로 대규모 클러스터를 구축하여 대용량 데이터 분산 관리 및 작업 분산 병렬 처리하는 기술에 대하여 많은 연구를 하고 있으며, 작업 분산 병렬 처리 기술 중에서 맵리듀스(MapReduce) 모델이 대표적인 작업 분산 병렬 처리 방법 중에 하나로 주목을 받고 있다.
맵리듀스(MapReduce) 모델은 Google 사에서 저비용 대규모 노드로 구성된 클러스터 상에 저장된 대용량 데이터에 대한 분산 병렬 연산을 지원하기 위하여 제안한 분산 병렬 처리 프로그래밍 모델이며, 맵리듀스(MapReduce) 모델에서 사용자가 작성하는 하나의 작업은 사용자가 작성하는 맵(Map) 함수가 주축이 되는 맵(Map) 단계와 사용자가 작성하는 리듀스(Reduce) 함수가 주축이 되는 리듀스(Reduce) 단계의 2단계로 구성이 되어 순차적으로 수행이 되고, 각 맵(Map) 단계 및 리듀스(Reduce) 단계 내에서는 다중 노드에 다중 태스크로 복제가 되어 분산 병렬 수행이 되며, 맵(Map) 단계에서는 기본적으로 입력 데이터로부터 키/값 쌍을 추출하는 연산을 수행하고, 리듀스(Reduce) 단계에서는 맵(Map) 단계에서 추출된 키/값 쌍에 비즈니스 로직을 적용하여 원하는 최종 결과 키/값 쌍을 구하는 연산을 수행한다.
하지만, 맵리듀스(MapReduce) 모델은 대용량의 일회성 데이터(예:로그 데이터)를 처리하기 위한 목적으로 설계된 것으로, 맵(Map) 함수에 할당되는 데이터를 처음부터 끝까지 읽고 처리하는 방식이다. 이와 같이 매번 입력 데이터를 전체 스캔하는 방식은 작업 처리 성능 저하의 원인이 되고 있다.
이와 같은 문제점을 해결하기 위해 대한민국 등록특허 제10-1331383호(데이터 처리 방법 및 장치, 이하 '선행기술'이라 함)가 있다.
상기 선행기술은 맵리듀스(MapReduce) 방식으로 데이터를 처리하는 방법으로서,입력 데이터를 저장하는 단계, 상기 입력 데이터에 대한 저장된 색인 파일이 존재하는지 검사하는 단계, 상기 색인 파일이 존재하지 않는 경우, 상기 입력 데이터에 대한 색인 파일을 생성하는 단계, 상기 색인 파일이 존재하는 경우, 상기 저장된 색인 파일을 이용하여 상기 입력 데이터에서 색인에 대한 검색조건을 만족하는 특정 데이터만을 선별하는 단계 및 상기 입력 데이터 또는 상기 특정 데이터를 맵리듀스 방식으로 처리하는 단계를 포함하되, 상기 색인 파일 생성 단계는 상기 입력 데이터를 스캔하여 색인을 생성하는 단계 및 상기 생성된 색인을 포함하는 색인 파일을 생성하는 단계를 포함하여 구성된다.
하지만 상기 선행기술에 의해서 입력 데이터 중 일부는 맵 혹은 리듀스 작업에 이용되지 않을 수도 있어, 불필요한 데이터 전송을 막지 못해 컴퓨터 성능을 향상시키지 못하는 문제점이 있다.
대한민국 등록특허 제10-1331383호(데이터 처리 방법 및 장치, 등록일자 2013년 11월 13일)
본 발명은 상기와 같은 문제점을 해결하기 위해 안출된 것으로, SQL 질의가 주어졌을때, 어떠한 데이터가 맵과 리듀스 작업에 필요한지 우선 판별을 하고, 이를 통해 맵/리듀스 작업에 필요한 데이터만을 추출하여 선별적으로 전송함으로써, 네트워크 및 로컬 I/O를 줄여 데이터 처리 성능을 향상시키는데 그 목적이 있다.
상기 목적을 해결하기 위해 본 발명은 상기 웹서버(10)의 데이터를 제공받아 SQL질의문이 발생했을 때, 어떤 데이터 속성이 맵퍼(30) 및 리듀서(40)에 전달되어야 하는지를 파악하는 SQL질의문 분석단계(S10)와, 상기 SQL질의문 분석단계(S10)를 통해 파악된 속성들만을 입력 데이터로부터 추출한 후, 추출된 데이터를 상기 맵퍼(30) 및 리듀서(40)로 데이터를 분할하는 데이터 분할단계(S20)와, 분할된 데이터를 맵퍼(30)로 전송하고, 주어진 SQL 조건에 부합하는 레코드의 ID 만을 출력하는 맵 단계(S30) 및 상기 맵퍼(30)로부터 출력된 레코드 ID를 이용하여 DFS으로부터 ID에 대한 레코드 정보를 리듀서(40)로 전달받은 후 집계 처리를 수행하는 리듀스 단계(S40)로 구성된다.
또한, 상기 맵퍼(30)와 리듀서(40)에서 이용되는 맵 및 리듀스 함수는 키밸류페어(Key-value pair)를 입력받아, 또 다른 형태의 키밸류페어를 출력하도록 정의되고, 상기 리듀스 함수는 집계 키 단위로 호출되며, 최종 집계 결과를 생성하는 것을 특징으로 한다.
또한, 상기 맵 단계(S30)는 입력 키밸류페어로 레코드 아이디와 레코드 정보를 전달하는 데이터 전달단계(S31)와, 상기 전달받은 텍스트 형식의 데이터를 여러 속성값으로 분리하고 추출하는 파싱단계(S32)와, 상기 파싱단계(S32)에서 추출된 속성값을 맵퍼(30)에서 특정 레코드를 출력할지의 여부를 판단하는 데이터 출력 판단단계(S33)를 포함하여 구성된다.
또한, 상기 리듀스 단계(S40)는 상기 맵 단계(S30)에 의해 어떤 레코드가 선택되었는지 알아내기 위한 특정 레코드 선택 확인단계(S41)와, 해당 ID를 이용하여 DFS으로부터 ID에 대한 레코드를 읽는 단계(S42)와, 상기 DFS으로부터 레코드를 가져온 후, 각 레코드에 대해 필요한 집계 결과를 계산하는 단계(S43)와, 상기 계산된 집계 결과는 키값과 함께 출력되는 출력단계(S44)를 포함하여 구성된다.
이에 따라서, 맵리듀스를 이용한 SQL 질의처리방법을 이용하여 맵리듀스 프레임워크에서 SQL 질의 처리 시간을 단축시킴으로써, Facebook이나 Twitter 등의 소셜 네트워크 서비스로부터 발생되는 대량의 데이터를 보다 빠른 시간에 처리할 수 있는 효과가 있다.
도 1은 종래의 데이터 처리방식을 나타내는 개념도이다.
도 2는 본 발명의 데이터 처리 방식을 나타내는 개념도이다.
도 3은 본 발명의 데이터 처리 시스템의 구성도이다.
도 4은 본 발명의 SQL질의처리방법에 대한 흐름도이다.
도 5는 도 4에서의 맵단계(S30)에 대한 세부적인 순서도이다.
도 6는 도 4에서의 리듀스단계(S40)에 대한 세부적인 순서도이다.
도 7는 본 발명의 일실시예에 따른 웹 페이지 광고 클릭에 대한 로그 데이터표이다.
이하, 도면을 참조하여 본 발명을 상세하게 설명한다.
도 1은 종래의 데이터 처리방식을 나타내는 개념도이고, 도 2는 본 발명의 데이터 처리 방식을 나타내는 개념도이다.
도 1 및 도 2를 참조하여 설명하면, 기존의 데이터 처리 방식은 맵리듀스에서 주어진 작업을 처리하기 위해, 먼저 입력 파일을 분산파일시스템(Distributed File System ,이하 'DFS'라 함)에 위치시킨 후, 해당 파일을 여러 개의 논리 단위인 스플릿(Split)으로 분할한다.
입력 스플릿이 준비되면, 마스터 노드(Master node)는 각 서브 노드(Slave Node)에 대해 맵(Map) 혹은 리듀스(Reduce) 작업을 할당한 후 아래의 단계로 작업을 수행시킨다. 편의상 맵 작업을 할당받은 노드를 맵퍼(30)(Mapper), 리듀스(Reduce) 작업을 할당받은 노드를 리듀서(40)(Reducer)라 명명한다.
(1) 맵 단계(S30)(Map phase): 각 스플릿은 하나의 맵퍼(30)로 전송된다. 각 맵퍼(30)는 스플릿 내의 각 레코드에 대해 선택(Selection)/필터링(Filtering) 작업을 수행한다. 작업 결과는 체크포인팅(Checkpointing)을 위해 각 맵퍼(30)의 로컬 디스크에 저장된다.
(2) 리듀스 단계(S40)(Reduce phase): 모든 맵퍼(30)가 작업을 종료하면, 리듀서(40)는 맵퍼(30)의 디스크에 저장된 데이터를 읽어와서 집계(Aggregation) 작업을 수행한다. 최종 집계 결과는 다시 DFS에 저장된다.
상기에서 서술한 바와 같이 종래의 데이터 처리방식은 하나의 맵리듀스 작업을 수행하기 위해 네트워크 및 로컬I/O가 지속적으로 일어나게 되는 문제점이 있다.
종래의 데이터 처리방식은 장애복구 성능을 향상시키기 위해 필요하나, 동시에 데이터 처리 효율성은 크게 저하시키는 문제점이 있었다.
상기와 같은 문제점을 해결하기 위해 본 발명은 맵리듀스 프레임워크에서 SQL질의를 이용하여 데이터를 분석할 때, 맵 작업과 리듀스 작업에 필요한 데이터만을 선별적으로 추출하여 전송함으로써 데이터 처리 성능을 향상시킬 수 있다.
도 3은 본 발명의 데이터 처리 시스템의 구성도이다.
도 3을 참조하여 설명하면, 빅데이터 처리를 위한 데이터를 제공하는 웹서버(10)와, 상기 웹서버(10)의 데이터를 분할한 후 여러 분산 노드로 이동시켜 주어진 작업을 병렬로 처리할 수 있도록 지원하는 마스터 노드(20)와, 상기 마스터 노드(20)에 의해 맵 작업을 할당받은 서브 노드인 맵퍼(30) 및 리듀스 작업을 할당받은 서브 노드인 리듀서(40)로 구성된다.
도 4는 본 발명의 SQL질의처리방법에 대한 흐름도이고, 도 5는 도 4에서의 맵퍼(30)단계에 대한 세부적인 순서도이고, 도 6은 도 4에서의 리듀스단계에 대한 세부적인 순서도이다.
도 4 내지 도 6을 참조하여 설명하면, 본 발명은 도 3의 데이터 처리 시스템에서 빅데이터를 처리하는 방법에 있어서, 상기 웹서버(10)의 데이터를 제공받아 SQL질의문이 발생했을 때, 어떤 데이터 속성이 맵퍼(30) 및 리듀서(40)에 전달되어야 하는지를 파악하는 SQL질의문 분석단계(S10)와, 상기 SQL질의문 분석단계(S10)를 통해 파악된 속성들만을 입력 데이터로부터 추출한 후, 추출된 데이터를 상기 맵퍼(30) 및 리듀서(40)로 데이터를 분할하는 데이터 분할단계(S20)와, 분할된 데이터를 맵퍼(30)로 전송하고, 주어진 SQL 조건에 부합하는 레코드의 ID 만을 출력하는 맵 단계(S30) 및 상기 맵퍼(30)로부터 출력된 레코드 ID를 이용하여 DFS으로부터 ID에 대한 레코드 정보를 리듀서(40)로 전달받은 후 집계 처리를 수행하는 리듀스 단계(S40)로 구성된다.
이때, 상기 맵 및 리듀스 함수는 키밸류페어(Key-value pair)을 입력받아, 또 다른 형태의 키밸류페어를 출력하도록 정의된다.
또한, 상기 리듀스 함수는 집계 키 단위로 호출되며, 최종 집계 결과를 생성하는 것을 특징으로 한다.
여기서, 상기 키밸류페어(Key-Value pair)는 키-값 쌍을 의미하는 것으로 키(key)는 텍스트 형식으로 구성된 데이터, 값(Value)은 키(Key) 데이터의 합계(Count)를 의미한다.
또한, 상기 맵 단계(S30)는, 입력 키밸류페어로 레코드 아이디와 레코드 정보를 전달하는 데이터 전달단계(S31)와, 상기 전달받은 텍스트 형식의 데이터를 여러 속성값으로 분리하고 추출하는 파싱단계(S32)와, 상기 파싱단계(S32)에서 추출된 속성값을 기반으로 맵퍼(30)에서 특정 레코드를 출력할지의 여부를 판단하는 데이터 출력 판단단계(S33)를 포함하여 구성된다.
또한, 상기 리듀스 단계(S40)는, 상기 맵 단계(S30)에 의해 어떤 레코드가 선택되었는지 알아내기 위한 특정 레코드 선택 확인단계(S41)와, 해당 ID를 이용하여 DFS으로부터 ID에 대한 레코드를 읽는 단계(S42)와, 상기 DFS으로부터 레코드를 가져온 후, 각 레코드에 대해 필요한 집계 결과를 계산하는 단계(S43)와, 상기 계산된 집계 결과는 키값과 함께 출력되는 출력단계(S44)를 포함하여 구성된다.
도 7는 본 발명의 일실시예에 따른 웹 페이지 광고 클릭에 대한 로그 데이터표이다.
본 발명의 맵리듀스에서 SQL질의처리방법을 이용하여 ADClick의 웹 페이지 광고 클릭에 대한 로그 데이터표를 일실시예로 가정하여 설명한다.
ADClick에서 한국 사용자들의 클릭 수를 카운트한다고 가정하고, 이때 클릭 카운트는 패션이나 가전 등 각 광고 카테고리(Category) 별로 집계된다고 가정한다.
이에 대한 SQL 질의는,
Q1. SELECT ADCategory, COUNT(*)
FROM ADClick
WHERE Nationality = "Korea"
GROUP BY ADCategory
상기와 같은 질의가 주어졌을 때 먼저 어떤 데이터 속성이 맵퍼(30)와 리듀서(40)에 전달되어야 하는지 결정되어야 한다. 이때, 맵퍼(30)에 전달되는 속성은 집계에 이용되는 키와 레코드의 선택(Selection) 작업에 이용되는 속성들이다.
이때, 상기 Q1에서 제시되는 'ADUrl', 'ADName', 'ADCategory', 'UserID', 'Nationality'는 상기 ADClick에서 제시하는 레코드 ID이므로, 별도의 의미로 한정짓지 않는다.
또한, 집계키는 선택된 레코드의 ID리스트를 만들기 위해 내부적으로 이용되며 집계키는 GROUP BY 절에 정의된 속성에 해당한다. 이에 따라 GROUP BY 절에 정의된 속성을 중심으로 집계 결과가 출력되고, Q1에서 집계키는 ADCategory이며, 각 ADCategory 별로 클릭 카운트가 계산된다. 이어서, 선택 속성들은 질의문의 WHERE 절에 정의된 속성들에 해당하고, Q1에서는 Nationality가 선택 속성으로 이용되었다.
따라서, Q1이 주어졌을 때, 맵퍼(30)에 ADCategory와 Nationality 속성 값만이 선별적으로 전달된다.
리듀서(40)에 전달되는 속성은 집계에 이용되는 키와 최종적으로 출력되는 속성들이다. 상기 Q1에서는 집계키로써 ADCategory가 이용되고, 출력 속성은 질의문의 SELECT 절에 정의된 속성들에 해당한다. Q1의 경우 별도의 출력 속성이 주어지지 않았기 때문에, 리듀서(40)에는 도 7에 정의된 속성 중 ADCategory만 전달된다.
따라서 전달될 속성이 결정되고 나면, 주어진 질의문을 수행하기 위한 맵리듀스 프로그램을 생성한다. 상기 맵리듀스 프로그램은 2개의 맵리듀스 함수, 즉 Map함수와 Reduce함수로 구성된다.
상기 Map함수은 레코드 단위로 호출되며, 주어진 레코드를 리듀서(40)로 출력할지의 여부를 결정하고, 상기 Reduce함수는 집계 키 단위로 호출되며, 최종 집계 결과를 생성한다.
이에 따라, 두 함수 모두 키밸류페어를 입력받아, 또 다른 형태의 키밸류페어를 출력하도록 정의된다.
C1. Function Map(RowID, Record)
Parse Record into (ADCategory, Nationality)
If Nationality = "Korea"
Output (ADCategory, RowID)
End If
상기 C1은 질의문 Q1이 주어졌을 때, 이를 처리하기 위한 Map함수의 구현 부분을 나타낸다. 편의를 위해, 함수의 구현 부분은 의사코드로 기술한다. 상기 Map함수의 입력 키밸류페어로는 레코드 아이디와 레코드 정보가 전달된다. 상기 C1에서 두 파라미터는 RowID와 Record로 표기되었다. 상기 RowID는 주어진 Record가 분산파일시스템(DFS)에 저장된 논리적인 위치를 가르키며, RowID를 이용하여 DFS에서 해당 레코드에 언제든 접근할 수 있다.
이때, 상기 Record는 실제 값을 지닌 레코드에 해당하며, 파싱을 통해 여러 속성 값으로 분리된다.
따라서 상기 파싱을 통해 ADCategory와 Nationality 속성값이 추출되고, 나머지 속성들은 맵퍼(30)로 전달되지 않았기 때문에 추출되지 않는다.
상기 파싱이 끝난 후 Map함수에서는 주어진 레코드를 출력할지의 판단유무를 결정하고 레코드의 선택 조건은 주어진 질의의 WHERE절에 정의된 조건이 그대로 이용된다. 상기 Q1에서의 카테고리별 클릭 수는 WHERE절을 만족하는 레코드에 한해서 계산되어야하고, 선택 조건이 만족될 경우 키밸류페어를 출력하게 된다.
이때, 상기 키밸류페어의 키는 ADCategory가 전달되며 값은 RowID가 전달된다.
이로 인해 Record를 출력하지 않고 RowID를 리듀서(40)로 전달함으로써 네트워크 I/O를 줄일 수 있다.
Map함수가 모든 입력 레코드에 대해 호출되고 나면, 맵리듀스 프레임워크는 내부적으로 출력 키인 ADCategory 값을 기준으로 출력된 레코드를 그룹화한다.
그 후, 각각의 ADCategory값을 기준으로 카운트 계산할 수 있도록 Reduce함수를 호출한다. 상기 Reduce함수는 각각의 ADCategory 값마다 호출되며, 키-값 의 쌍을 입력 파라미터로 전달받는다.
이때, 상기 키는 ADCategory이며, 값은 ADCategory 값을 지닌 RowID의 그룹이 전달된다.
예를 들면, 도 7의 웹 페이지 광고 클릭에 대한 로그 데이터표에서 WHERE 조건을 만족하는 레코드는 1, 3, 5, 6번째 레코드이다. 따라서 Map함수로부터 <"Fashion", 1>, <"Game", 3>, <"Electronics", 5>, <"Electronics", 6>를 포함한 네 개의 레코드가 출력된다.
상기 Map함수가 실행이 끝나면 맵리듀스 프레임 워크는 ADCategory 값을 기준으로 출력된 레코드를 그룹화한다. 이 경우 <"Fashion", 1>, <"Game", 3>, <"Electronics", (5, 6)>의 세 개의 그룹이 생성된다.
그리고 각각의 그룹에 대해 Reduce함수가 호출된다.
C2. Finction Reduce(Key, RewIDs)
COUNT := 0
RecList := getRecordsFromDFS(RowIDs);
For each record in RecList
Count := Count + 1
End for
Output (Key, Count);
상기 Reduce함수에서는 Map함수에 의해 어떤 레코드가 선택되었는지 알아내기 위해 RowIDs를 참고한다. 상기 Map함수에서는 WHERE절을 만족하는 레코드 대신 해당 레코드의 ID를 출력하므로, Reduce함수는 해당 ID를 이용하여 분산파일시스템(DFS)으로부터 ID에 대한 레코드를 읽어와야 한다.
상기 getRecordsFromDFS(RowIDs)함수는 이러한 역할을 수행하기 위해 작성된 함수에 해당한다. 또한, 상기 getRecordsFromDFS(RowIDs)함수로부터 레코드를 가져온 후, 각 레코드에 대해 필요한 집계 결과를 계산한다. Q1의 경우 레코드의 카운트를 계산하도록 정의되었으며, 이 경우 Count 변수를 정의한 후 0으로 초기화하고 각 레코드 별로 count를 1씩 증가시킴으로써 원하는 집계 결과를 얻을 수 있다. 얻어진 집계 결과는 최종적으로 ADCategory 키값과 함께 출력된다.
이에 따라서, 맵리듀스를 이용한 SQL 질의처리방법을 이용하여 맵리듀스 프레임워크에서 SQL 질의 처리 시간을 단축시킴으로써, Facebook이나 Twitter 등의 소셜 네트워크 서비스로부터 발생되는 대량의 데이터를 보다 빠른 시간에 처리할 수 있는 효과가 있다.
10 : 웹서버
20 : 마스터 노드(Master Node)
30 : 맵퍼(Mapper)
40 : 리듀서(Reducer)

Claims (5)

  1. 빅데이터 처리를 위한 데이터를 제공하는 웹서버(10)와, 상기 웹서버(10)의 데이터를 분할한 후 여러 분산 노드로 이동시켜 주어진 작업을 병렬로 처리하는 마스터 노드(20)와, 상기 마스터 노드(20)에 의해 맵 작업을 할당받은 서브 노드인 맵퍼(30) 및 리듀스 작업을 할당받은 서브 노드인 리듀서(40)로 구성된 데이터처리 시스템에서 빅데이터를 처리하는 방법에 있어서,
    상기 웹서버(10)의 데이터를 제공받아 SQL질의문이 발생했을 때, 어떤 데이터 속성이 맵퍼(30) 및 리듀서(40)에 전달되어야 하는지를 파악하는 SQL질의문 분석단계(S10)와;
    상기 SQL질의문 분석단계(S10)를 통해 파악된 속성들만을 입력 데이터로부터 추출한 후, 추출된 데이터를 상기 맵퍼(30) 및 리듀서(40)로 데이터를 분할하는 데이터 분할단계(S20)와;
    분할된 데이터를 맵퍼(30)로 전송하고, 주어진 SQL 조건에 부합하는 레코드의 ID 만을 출력하는 맵 단계(S30); 및 상기 맵퍼(30)로부터 출력된 레코드 ID를 이용하여 DFS으로부터 ID에 대한 레코드 정보를 리듀서(40)로 전달받은 후 집계 처리를 수행하는 리듀스 단계(S40);를 포함하여 구성된 것을 특징으로 하는 맵리듀스를 이용한 SQL 질의처리방법.
  2. 삭제
  3. 삭제
  4. 제 1 항에 있어서,
    상기 맵 단계(S30)는,
    입력 키밸류페어로 레코드 아이디와 레코드 정보를 전달하는 데이터 전달단계(S31)와;
    상기 전달받은 텍스트 형식의 데이터를 여러 속성값으로 분리하고 추출하는 파싱단계(S32)와;
    상기 파싱단계(S32)에서 추출된 속성값을 맵퍼(30)에서 특정 레코드를 출력할지의 여부를 판단하는 데이터 출력 판단단계(S33);를 포함하여 구성된 것을 특징으로 하는 맵리듀스를 이용한 SQL 질의처리방법.
  5. 제 1 항에 있어서,
    상기 리듀스 단계(S40)는,
    상기 맵 단계(S30)에 의해 어떤 레코드가 선택되었는지 알아내기 위한 특정 레코드 선택 확인단계(S41)와;
    해당 ID를 이용하여 DFS으로부터 ID에 대한 레코드를 읽는 단계(S42)와;
    상기 DFS으로부터 레코드를 가져온 후, 각 레코드에 대해 필요한 집계 결과를 계산하는 단계(S43)와;
    상기 계산된 집계 결과는 키값과 함께 출력되는 출력단계(S44);를 포함하여 구성된 것을 특징으로 하는 맵리듀스를 이용한 SQL 질의처리방법.
KR1020140168339A 2014-11-28 2014-11-28 맵리듀스를 이용한 sql 질의처리방법 KR101638048B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020140168339A KR101638048B1 (ko) 2014-11-28 2014-11-28 맵리듀스를 이용한 sql 질의처리방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020140168339A KR101638048B1 (ko) 2014-11-28 2014-11-28 맵리듀스를 이용한 sql 질의처리방법

Publications (2)

Publication Number Publication Date
KR20160064569A KR20160064569A (ko) 2016-06-08
KR101638048B1 true KR101638048B1 (ko) 2016-07-20

Family

ID=56193562

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020140168339A KR101638048B1 (ko) 2014-11-28 2014-11-28 맵리듀스를 이용한 sql 질의처리방법

Country Status (1)

Country Link
KR (1) KR101638048B1 (ko)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102479261B1 (ko) * 2022-01-18 2022-12-20 한국과학기술정보연구원 맵리듀스를 사용한 대량 LOD(Linked Open Data) 쿼리에 대한 결과 복원 방법 및 그 장치

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101255060B1 (ko) 2012-07-16 2013-04-16 한국과학기술정보연구원 맵리듀스 기반 분산 병렬 개체 추출 시스템 및 방법
KR101345095B1 (ko) 2012-06-19 2013-12-26 충남대학교산학협력단 클러스터 환경 기반의 bgp 라우팅 정보 분석 방법 및 시스템

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101331383B1 (ko) 2012-03-12 2013-11-20 고려대학교 산학협력단 데이터 처리 방법 및 장치

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101345095B1 (ko) 2012-06-19 2013-12-26 충남대학교산학협력단 클러스터 환경 기반의 bgp 라우팅 정보 분석 방법 및 시스템
KR101255060B1 (ko) 2012-07-16 2013-04-16 한국과학기술정보연구원 맵리듀스 기반 분산 병렬 개체 추출 시스템 및 방법

Also Published As

Publication number Publication date
KR20160064569A (ko) 2016-06-08

Similar Documents

Publication Publication Date Title
JP6634527B2 (ja) ユーザ権限データ検索方法および電子機器
US11663033B2 (en) Design-time information based on run-time artifacts in a distributed computing cluster
US11068439B2 (en) Unsupervised method for enriching RDF data sources from denormalized data
JP6697392B2 (ja) 半構造データスキーマのトランスペアレントディスカバリ
CN106682097B (zh) 一种处理日志数据的方法和装置
CN107515878B (zh) 一种数据索引的管理方法及装置
CN107784026B (zh) 一种etl数据处理方法及装置
US9037525B2 (en) Correlating data from multiple business processes to a business process scenario
CN109753596B (zh) 用于大规模网络数据采集的信源管理与配置方法和系统
CN111858760B (zh) 一种异构数据库的数据处理方法及装置
CN106557307B (zh) 业务数据的处理方法及处理系统
CN111475564A (zh) 一种流式数据处理方法、系统、计算机设备及存储介质
US10678789B2 (en) Batch data query method and apparatus
JP6642435B2 (ja) データ処理装置、データ処理方法、及び、プログラム
CN111026709B (zh) 基于集群访问的数据处理方法及装置
CN108073641B (zh) 查询数据表的方法和装置
KR101638048B1 (ko) 맵리듀스를 이용한 sql 질의처리방법
US9135300B1 (en) Efficient sampling with replacement
CN113220530B (zh) 数据质量监控方法及平台
CN106776704B (zh) 统计信息收集方法和装置
CN106446039B (zh) 聚合式大数据查询方法及装置
US20140136274A1 (en) Providing multiple level process intelligence and the ability to transition between levels
US20150286700A1 (en) Recording medium having stored thereon database access control program, method for controlling database access, and information processing apparatus
JP2015121924A (ja) データ管理システム、サーバ装置、サーバ装置の制御方法、及びプログラム
KR101441000B1 (ko) 병렬처리 기반 트리플 데이터에 대한 변경 탐지 방법

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20200312

Year of fee payment: 4

R401 Registration of restoration