KR101450239B1 - 대용량 xml 데이터에 대한 다수의 가지 패턴 질의의 동시 병렬처리시스템 및 그 방법 - Google Patents

대용량 xml 데이터에 대한 다수의 가지 패턴 질의의 동시 병렬처리시스템 및 그 방법 Download PDF

Info

Publication number
KR101450239B1
KR101450239B1 KR1020120144057A KR20120144057A KR101450239B1 KR 101450239 B1 KR101450239 B1 KR 101450239B1 KR 1020120144057 A KR1020120144057 A KR 1020120144057A KR 20120144057 A KR20120144057 A KR 20120144057A KR 101450239 B1 KR101450239 B1 KR 101450239B1
Authority
KR
South Korea
Prior art keywords
linear path
pattern
query
xml
branch pattern
Prior art date
Application number
KR1020120144057A
Other languages
English (en)
Other versions
KR20140076010A (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 KR1020120144057A priority Critical patent/KR101450239B1/ko
Publication of KR20140076010A publication Critical patent/KR20140076010A/ko
Application granted granted Critical
Publication of KR101450239B1 publication Critical patent/KR101450239B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/80Information retrieval; Database structures therefor; File system structures therefor of semi-structured data, e.g. markup language structured data such as SGML, XML or HTML
    • G06F16/83Querying
    • G06F16/835Query processing
    • G06F16/8365Query optimisation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/20Natural language analysis
    • G06F40/205Parsing
    • G06F40/221Parsing markup language streams

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Databases & Information Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Multimedia (AREA)
  • Health & Medical Sciences (AREA)
  • Artificial Intelligence (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Computational Linguistics (AREA)
  • General Health & Medical Sciences (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

본 발명은 대용량 XML 데이터에 대한 다수의 가지 패턴 질의의 동시 병렬처리시스템 및 그 방법에 관한 것이다.
본 발명에서는, 사용자들로부터 가지 패턴 질의들을 및 대용량 XML 파일 입력 받기 위한 입력부와; 상기 입력부에 입력된 가지 패턴 질의들을 선형 경로 패턴들을 이용하여 질의 인덱스를 생성하고, 상기 대용량 XML 파일로부터 다수의 XML 데이터 블록들을 생성하여 분산 파일 시스템에 적재시키기 위한 전처리 및 데이터 적재부와; 상기 XML 데이터 블록들을 입력 받아 선형경로 패턴들에 대한 해답을 얻고, 상기 선형경로 패턴들에 대한 해답의 크기를 계산하기 위한 제1 맵리듀스 작업부와; 선형 경로 패턴들의 해답들을 가지고 가지 패턴 조인 연산을 수행하여 최종 결과를 출력시키기 위한 제2 맵리듀스 작업부;를 포함하는 대용량 XML 데이터에 대한 다수의 가지 패턴 질의의 동시 병렬처리시스템 및 그 방법이 제시된다.

Description

대용량 XML 데이터에 대한 다수의 가지 패턴 질의의 동시 병렬처리시스템 및 그 방법{A system for simultaneous and parallel processing of many twig pattern queries for massive XML data and method thereof}
본 발명은 XML 데이터에 대한 질의 처리 시스템 및 그 방법에 관한 것이다. 더 상세하게는 단일 노드 상에서는 적정 시간 내 처리가 어려운 초대용량 XML 데이터에 대하여 다수의 가지 패턴 질의를 동시에 분산/병렬 처리하는 방법에 관한 것이다. 또한 다수의 가지 패턴 질의를 효율적으로 분산/병렬처리하기 위한 다중 질의 최적화 방법과 XML 문서의 분할 처리 시스템 및 그 방법에 관한 것이다.
XML(eXtensible Markup Language)은 태그를 이용하여 내용 정보뿐만 아니라 데이터의 구조 정보 또한 같이 제공하는 데이터 저장형식으로 반구조적 데이터 모델을 갖는다. XML로 기술된 데이터는 태그들 간의 포함 관계에 따라 서로 간의 관계성을 나타낸다. 예를 들어, 도서 정보를 표현하기 위해 XML을 이용하는 경우, XML 데이터에서는 "도서"라 명명된 엘리먼트가 있고, 그 엘리먼트의 자식 엘리먼트로 “제목”, “작가”와 “출판사”, “출판연도”가 있고, “작가”의 자식 엘리먼트로 “성”과 “이름”이라 명명된 엘리먼트를 포함한다라는 식으로 도서 정보 표현에 요구되는 항목들을 구조화시킬 수 있다. 이러한 정보들의 관계를 포함하여 XML 데이터에 대한 질의 처리를 하기 위해 XML에 대한 질의어에는 구조 정보가 포함될 수 있다. 예를 들어, 앞의 예에서 각 요소들의 관계는 “/도서/작가” 또는 “/도서//출판사”와 같은 경로 패턴들로 표현할 수 있다. 이러한 경로 표현식을 이용해 원하는 관계성을 지니는 정보를 추출하는 것을 선형 경로 질의(linear path query)라고 한다. 뿐만 아니라, 이러한 여러 선형 경로 질의들을 묶어서 좀 더 복잡한 패턴에 대한 질의를 수행할 수도 있다. 예를 들어, 민음사에서 출판한 책의 제목들을 나열하라는 질의는 “/도서[./출판사=”민음사]”라는 조건 경로 표현식과 “/도서/제목”이라는 경로 표현식을 합쳐 “/도서[./출판사=“민음사”]/제목”와 같은 형식으로 표현한다. 이러한 유형의 질의는 나뭇가지처럼 갈라진 형태의 관계성을 갖게 됨에 따라 가지 패턴 질의(twig pattern query)라 한다. 이 가지 패턴은 XML 데이터에 대한 가장 빈번한 형태의 질의 패턴이다. 이러한 가지 패턴의 질의 처리는 일반적으로 1) 가지 패턴을 선형 경로 패턴들로 분해하고, 2) 각 선형 경로 패턴 질의를 처리하여 그 결과를 구한 후, 3) 이들 선형 경로 패턴 질의의 결과들을 조인(join)하는 3 단계로 수행된다.
전체론적 가지 패턴 조인(Holistic Twig Pattern Join) 방법은 가지 패턴의 질의 처리를 입출력 최적으로 수행하도록 고안된 조인 방법이다. 이 방법은 선형 경로 패턴 질의의 결과를 구할 때에 실제 조인되어 최종 결과가 될 수 있는 경로 패턴의 질의의 결과는 미리 배제하는 방식이다. 이 방법은 또한 각 엘리먼트의 리스트들을 순차적으로 한번만 읽고 최종 결과를 낼 수 있어 입출력에 대하여 최적화되어 있다. 본 발명에서는 각 가지 패턴 질의들의 처리에 이 전체론적 가지 패턴 조인 기법을 이용하였다.
XML 스트림 처리는 일련의 작은 크기(수~수십KB)의 XML 문서들의 연속을 실시간으로 처리하는 과정으로, 스트림 처리는 데이터가 여러 데이터 소스로부터 지속적으로 생성됨에 따라 데이터의 숫자에 제한이 없고, 질의들은 미리 준비될 수 있으며, 새로 생성되는 스트림 데이터에 대한 질의 처리가 실시간으로 이루어져야 하는 특징을 가지는 작업이다.
YFilter는 “Path sharing and predicate evaluation for high performance xml filtering, Y. DIAO et al, ACM Translations on Database System, 28(4): 467-516, 2003.”의 논문에 공개된 기술로 XML 스트림 데이터를 처리하는데 있어, 여러 선형 경로 패턴들에게서 공통되어 출현하는 부분 경로들을 공유할 수 있도록 비결정적 유한 오토마타 (NFA:Nondeterministic Finite Automata) 형태로 변환하여 필터링하는 기법이다. 이 기법은 작은 크기의 XML 데이터들이 연속인 입력으로 들어오는 스트림 환경을 고려한 기술로써 메모리 기반으로 빠른 필터링 속도를 보장한다. 그러나 상기 공개발명은 수십~수백 KB 정도의 작은 크기의 XML 문서들이 연속적으로 들어오는 스트림 데이터에 대한 복수 개의 XML 경로 질의 처리를 단일 노드의 메모리 상에서 처리하는 기술에 본 발명에서 목표로 하는 한 파일이 100GB 이상이 되는 대용량 XML 문서의 처리를 할 수 없는 문제점이 있다.
이에 따라 대용량 XML 문서를 동일 크기의 블록 단위로 문서의 구조 정보 손실 없이 분할하는 방법과, 그 블록에 대한 다수의 경로 패턴 질의 수행 기능, 또한 다수의 가지 패턴 질의들을 복수개의 컴퓨터에서 수행하는데 있어 질의 처리 작업의 효율적인 분산 처리 방법에 관한 발명이 요망된다.
미국특허번호 US7,756,919(출원일: 2004.06.18)의 “Large-scale data processing in a distributed and parallel processing environment”는 맵리듀스라 명명된 데이터 레코드를 병렬처리하기 위한 발명이다. 이 발명에서는 입력된 파일을 여러 블록들로 나누고 각 블록 내 데이터를 키와 값의 쌍으로 읽어들여 Map과 Reduce 함수로 이를 처리하는 프로그래밍 모델과 Map과 Reduce 함수를 분산된 컴퓨터들에서 수행하는 분산/병렬 처리 방법에 관한 것이다.
맵리듀스는 초기 대용량의 웹페이지 정보를 효율적으로 분석하여 웹 검색 시스템의 성능을 향상시키기 위하여 고안된 S/W 프레임워크로 분산 파일 시스템에 저장된 대용량 데이터를 분산 컴퓨팅 환경에서 병렬 처리할 수 있도록 하는 기술이다. 맵리듀스는 고정 크기로 분할되어, 분산 저장된 파일 조각들을 각 컴퓨팅 노드들이 키와 값의 쌍으로 읽어 들여 Map 함수를 수행하여 다시 또 다른 키와 값 쌍의 형태로 중간 결과를 생성한다. 이 후 중간 결과들은 다시 키 값을 기준으로 그룹핑된 후 Reduce 함수를 통해 집계되어 최종 결과를 생성한다. Hadoop은 이러한 패러다임을 따라 작성된 공개 소프트웨어이며 전체적인 시스템 구성은 원래의 맵리듀스와 동일하다.
그러나 상기 특허발명은 데이터를 키와 값의 쌍으로만 읽어 들이고, 파일을 문서의 구조 정보의 고려 없이 고정 크기로 분할하고, 단일 질의 처리만을 고안한 발명으로 트리 모델의 구조 정보를 가지는 대용량 XML을 대상으로 하여 다수의 가지 패턴 질의들을 동시에 병렬 처리하는데에는 한계가 있는 발명이다.
따라서, 대용량 XML 파일을 구조 정보 손실 없이 분할하여 병렬 처리하고, 가지 패턴 사이에 공통된 단일 경로 해답들을 공유하는 기술을 적용해 입출력 비용을 큰 폭으로 줄일 수 있고, 또한 여러 차례 반복 수행해야 하는 다수의 가지 패턴 질의를 두 단계의 맵리듀스 작업으로 분산환경에서 병렬적으로 수행함으로써 데이터 분석의 효율을 높일 수 있는 발명이 요망된다.
본 발명에서는 다수의 가지 패턴 질의들을 처리하기 위하여 맵리듀스에 기반한 분산/병렬 처리 기법을 제공한다. 하지만, 이때 단순히 맵리듀스를 가지고 XML에 대한 가지 패턴질의 처리를 하는 경우 다음과 같은 문제점들이 존재한다.
1) 맵리듀스에서는 고정 크기의 블록들로 파일을 분할, 저장하고 블록 내 데이터를 키와 값의 쌍들 형태로 읽어 처리한다. 하지만, XML 파일을 단순히 고정 크기로 여러 파일조각들로 분할하는 경우 XML 특유의 구조 정보인 엘리먼트 간 관계 정보를 손실함에 따라 질의 처리가 불가능하다.
2) 하나의 가지 패턴 질의를 하나의 맵리듀스 과정으로 구현하는 경우, n개의 질의 처리를 수행하는데 있어 n 번의 맵리듀스 과정이 수행되며, 이는 서로 유사한 연산을 반복 수행하고, 동일 데이터를 반복 읽기를 하여 비효율적이다. 따라서 가급적 적은 수의 맵리듀스 과정으로 많은 가지 패턴 질의들을 한 번에 처리할 수 있는 방법이 필요하다.
3) 다수의 가지 패턴 질의들 간에는 서로 공유되는 부분이 많으며, 이에 따라 빠른 처리를 위해서는 중간 결과들의 결과들을 질의들 간에 서로 공유하여, 공통되는 패턴에 대한 반복 처리를 없애는 방법이 필요하다.
4) 다수의 가지 패턴 질의들을 처리함에 따라 다수의 가지 패턴 조인 연산들을 여러 노드들에 나누어 실행해야 한다. 이때 이 조인 연산들을 이보다 작은 수의 노드들에 균형있게 배분하여, 각 노드가 동일한 작업량을 가지고 서로 같은 시점에 종료되도록 해야 가장 빠른 질의 처리 시간을 얻을 수 있다. 이때 각 노드들에 어떻게 가지 패턴 질의들을 균형 있게 배분하는지에 대한 해결책이 필요하다.
미국특허번호 US7,756,919(출원일: 2004.06.18)
Path sharing and predicate evaluation for high performance xml filtering, Y. DIAO et al, ACM Translations on Database System, 28(4): 467-516, 2003.
본 발명은 상기 종래기술의 문제점을 해결하기 위한 것으로서, 본 발명의 목적은, 대용량 XML 데이터에 대한 다수의 가지 패턴 질의들을 효율적으로 처리하는 방법, 특히 과학 데이터의 분석이나 다양한 시스템의 기록 보존 (Logging)의 목적으로 생성되는 수백 기가바이트 이상의 XML 데이터는 지속적으로 생성되고, 또 주기적으로 갱신되는 특징이 있어 빠른 질의 처리를 요구하는데, 이러한 대용량 XML 데이터에 대하여 많은 가지 패턴 질의들을 동시에 분산/병렬 처리하는 시스템 및 그 방법을 제공하는데 있다.
상기 본 발명의 목적을 달성하기 위한 기술적 해결 수단으로서, 본 발명의 제1 관점으로, 사용자들로부터 가지 패턴 질의들을 및 대용량 XML 파일 입력 받기 위한 입력부와; 상기 입력부에 입력된 가지 패턴 질의들을 선형 경로 패턴들로 분해하고, 이들을 이용하여 질의 인덱스를 생성하고, 상기 대용량 XML 파일을 다수의 컴퓨터들에서 병렬처리할 수 있도록 고정 크기의 블록 단위로 분할하여 다수의 XML 데이터 블록들을 생성하고, 이를 분산 파일 시스템에 적재시키기 위한 전처리 및 데이터 적재부와; 상기 분할된 XML 데이터 블록들을 입력 받아 질의 인덱스를 이용해 맵 단계에서 선형경로 패턴들에 대한 해답을 얻고, 리듀스 단계에서 각 선형경로 패턴들에 대한 해답의 크기를 계산하기 위한 제1 맵리듀스 작업부와; 가지 패턴 조인 작업을 실시간으로 작업량이 서로 균등하게 여러 컴퓨팅 노드들에 분배하고, 여러 노드들에 할당된 가지 패턴 조인 연산들에 대하여 이들이 입력으로 취할 선형 경로의 해답들을 맵 단계에서 실행 시간에 적절히 전송하고, 리듀스 단계에서는 각 리듀서에게 할당된 가지 패턴 조인 연산들을 맵 단계에서 전송받은 선형 경로 패턴들의 해답들을 가지고 수행하여 최종결과(104)를 출력시키기 위한 제2 맵리듀스 작업부를 포함하는 대용량 XML 데이터에 대한 다수의 가지 패턴 질의의 동시 병렬처리시스템이 제시된다.
또한, 본 발명의 제2 관점으로, 사용자들로부터 가지 패턴 질의들을 및 대용량 XML 파일을 입력 받는 단계와; 입력된 상기 가지 패턴 질의들을 선형 경로 패턴들로 분해하는 단계와; 상기 선형 경로 패턴들로 분해된 가지 패턴 질의들을 이용하여 질의 인덱스를 생성하는 단계와; 상기 대용량 XML 파일을 다수의 컴퓨터들에서 병렬 처리할 수 있도록 고정 크기의 블록 단위로 분할하여 다수의 XML 데이터 블록들을 생성하는 단계와; 상기 다수의 XML 데이터 블록들을 분산 파일 시스템에 적재시키는 단계와; 상기 분할된 XML 데이터 블록들을 입력 받아 질의 인덱스를 이용해 제1 맵리듀스 작업부의 맵 과정에서 선형경로 패턴들에 대한 해답을 얻는 단계와; 상기 제1 맵리듀스 작업부의 리듀스 과정에서 각 선형경로 패턴들에 대한 해답의 크기를 계산하는 단계와; 가지 패턴 조인 작업을 실시간으로 작업량이 서로 균등하게 여러 컴퓨팅 노드들에 분배하는 단계와; 여러 노드들에 할당된 가지 패턴 조인 연산들에 대하여 이들이 입력으로 취할 선형 경로의 해답들을 제2 맵리듀스 작업부의 맵 과정에서 실행 시간에 적절히 전송하는 단계와; 제2 맵리듀스 작업부의 리듀스 과정에서 각 리듀서에게 할당된 가지 패턴 조인 연산들을 상기 맵 과정에서 전송받은 선형 경로 패턴들의 해답들을 가지고 수행하여 최종결과를 출력시키는 단계를 포함하는 대용량 XML 데이터에 대한 다수의 가지 패턴 질의의 동시 병렬처리방법이 제시된다.
본 발명에 의하면, 대용량 XML 데이터, 특히 하나의 대용량 XML 파일에 대하여 다수의 질의어들의 처리를 분산 환경에서 효율적으로 처리하는 방법에 관한 것으로 다수의 가지 패턴 질의들을 맵리듀스를 기반으로 동시에 분산/병렬 처리할 수 있는 효과가 있다. 또한, 다수의 가지 패턴 질의들 간에 공통되는 입력들과 그 결과들을 질의 처리 시에 공유하고, 또한 더블 슬래쉬와 와일드카드가 들어간 경로 표현들을 문서 내 유일한 경로 패턴들로 대체함으로써 중복 처리를 제거하여 전체 입출력 비용이 감소되고 이를 통해 효율적인 질의 처리가 가능한 효과가 있다. 또한, 분산 노드들 간의 가지 패턴 질의 처리를 위한 조인 연산의 작업량의 균형을 맞출 수 있는 기술을 적용해 작업량이 한 노드에 치우치는 병목현상이 일어나 전체 시스템의 성능을 떨어뜨리는 현상을 방지하여 성능 최적화를 수행할 수 있는 효과가 있다. 특히 본 발명의 이 작업 할당 기술은 질의 처리 전에 정적으로 수행되는 것이 아니라 XML 데이터가 입력된 후 각 경로 패턴에 대한 해, 즉 질의 처리의 중간 결과의 크기를 측정하여 실행 시간에 실시간으로 동작한다는 점에서 더욱 효과적이다.
도 1은 본 발명의 대용량 XML 데이터에 대한 다수의 가지 패턴 질의의 동시 병렬처리시스템의 실시예에 관한 개략적인 구성도이다.
도 2는 본 발명의 실시예 중 주요부인 전처리 및 데이터 적재부의 실시예에 관한 개략적인 구성도이다.
도 3은 본 발명에서 입력으로 하는 대용량 XML 파일을 XML 엘리먼트들 간의 구조 정보의 손실 없이 고정 크기의 블록 단위로 변환하고 이에 대응하는 레이블 파일을 같이 분산 파일 시스템에 위치시키는 기능에 대한 실시예의 개략적인 구성도이다.
도 4는 본 발명의 실시예 중 제1 맵리듀스 작업부의 동작에 관한 실시예의 개략적인 설명도이다.
도 5는 본 발명의 실시예 중 제2 맵리듀스 작업부의 동작에 관한 실시예의 개략적인 설명도이다.
도 6은 본 발명의 실시예 중 다중 질의 최적화 모듈의 상세 작동 과정의 실시예를 설명하기 위한 흐름도이다.
도 7은 본 발명의 실시예 중 더블 슬래시와 와일드카드가 존재하는 선형 경로 패턴을 입력 XML 문서 내에 존재하는 유일한 경로 패턴들로 변환하는 과정의 설명도이다.
이하에서, 본 발명의 실시예를 첨부한 도면을 참조하면서 상세히 설명하기로 한다. 도 1은 본 발명의 대용량 XML 데이터에 대한 다수의 가지 패턴 질의의 동시 병렬처리시스템의 실시예에 관한 개략적인 구성도이다. 도 1에 도시한 바와 같이, 본 발명의 대용량 XML 데이터에 대한 다수의 가지 패턴 질의의 동시 병렬처리시스템은, 사용자들로부터 가지 패턴 질의들을 및 대용량 XML 파일 입력 받기 위한 입력부(100)와; 상기 입력부(100)에 입력된 가지 패턴 질의들을 선형 경로 패턴들로 분해하고, 이들을 이용하여 질의 인덱스(101)를 생성하고, 상기 대용량 XML 파일을 다수의 컴퓨터들에서 병렬 처리할 수 있도록 고정 크기의 블록 단위로 분할하여 다수의 XML 데이터 블록(102)들을 생성하고, 이를 분산 파일 시스템에 적재시키기 위한 전처리 및 데이터 적재부(110)와; 상기 분할된 XML 데이터 블록(102)들을 입력 받아 질의 인덱스(101)를 이용해 맵 단계에서 선형경로 패턴들에 대한 해답(103)을 얻고, 리듀스 단계에서 각 선형경로 패턴들에 대한 해답의 크기를 계산하기 위한 제1 맵리듀스 작업부(120)와; 가지 패턴 조인 작업을 실시간으로 작업량이 서로 균등하게 여러 컴퓨팅 노드들에 분배하고, 여러 노드들에 할당된 가지 패턴 조인 연산들에 대하여 이들이 입력으로 취할 선형 경로의 해답(103)들을 맵 단계에서 실행 시간에 적절히 전송하고, 리듀스 단계에서는 각 리듀서에게 할당된 가지 패턴 조인 연산들을 맵 단계에서 전송받은 선형 경로 패턴들의 해답(103)들을 가지고 수행하여 최종결과(104)를 출력시키기 위한 제2 맵리듀스 작업부(130)를 포함하는 구성이다.
도 2는 본 발명의 실시예 중 전처리 및 데이터 적재부의 실시예에 관한 개략적인 구성도이다. 도 2에 도시한 바와 같이, 각 가지 패턴 질의에 대해 이를 구성하는 여러 선형 경로 패턴들로 분할하고 선형 경로 패턴들과 원래의 가지 패턴 질의 간의 대응 관계 정보를 생성하기 위한 질의 분할 모듈(200)과; 상기 선형 경로 패턴들을 가지고 비결정적 유한 오토마타로 구성되는 질의 인덱스를 생성하기 위한 질의 인덱스 작성 모듈(202)과; 대용량 XML 파일을 입력으로 받아 XML 파일들을 구조적 정보 손실 없이 고정 크기의 XML 데이터 블록들로 분할하고 또한 각 데이터 블록에 속한 XML 엘리먼트와 애트리뷰트들에 대하여 영역 기반 번호 부여 기법에 따라 부여된 레이블 값을 기재하는 레이블 블록을 작성해 분산파일 시스템에 같이 적재하기 위한 XML 데이터 분할 및 레이블링 모듈(201)을 포함하는 구성이다.
전처리 과정은 다수의 사용자들로부터 질의 처리 전에 미리 입력된 가지 패턴 질의에 대한 상기 질의 분할 모듈(200)과 질의 인덱스 작성 모듈(202)에 의한 전처리와, 대용량 XML 데이터에 대한 XML 데이터 분할 및 레이블링 모듈(201)에 의한 전처리 2 부분으로 나눌 수 있다.
상기 질의 분할 모듈(200)은 예를 들면, T1이라 ID가 부여된 T1: /A/B[C/D]/E/F[G]/H 라는 가지 패턴 질의가 주어진다면 이를 P1: /A/B/E/F/H, P2: /A/B/C/D, P3: /A/B/E/F/G 세 개의 선형 경로 패턴(P1, P2, P3)로 변한다. 그리고, 이들 간의 대응 관계 정보인T1 :== {P1, P2, P3} 또한 추출하여 별도로 저장한다. 이와 같은 방법으로 모든 가지 패턴 질의들에 대하여 선형 경로 패턴들로 분할한다.
상기 질의 인덱스 작성 모듈(202)에서 생성된 질의 인덱스는 상기 제1 맵리듀스 작업부(120)에서 XML 데이터 블록들에 대하여 선형 경로 패턴들에 대한 필터링을 수행하는데 이용된다. 본 발명에서는 이 질의 인덱스의 생성을 위하여 YFilter라는 기존 기술을 사용하였으나, 이에 한정되는 것은 아니다. 예를 들면, XML 필터링을 수행하는 다른 XML 스트림 처리 기술을 사용할 수 있다. 질의 처리를 위해 먼저 선형 경로 패턴들을 가지고 필터링을 수행하고, 이후 이 선형 경로 패턴들의 결과들을 가지 패턴 조인을 한다. 이렇게 가지 패턴 질의들을 선형 경로 패턴들로 분할하고 먼저 이들에 대한 질의 처리를 수행하는 이유는 여러 가지 패턴 질의들 간에 서로 공통적으로 나타나는 선형 경로 패턴들이 존재하는데, 이들을 각각 따로 처리하는 경우에는 공통되는 선형 경로 패턴들에 대한 반복적인 질의 처리로 인해 입출력 양과 처리 시간이 증가하기 때문이다. 질의 처리 과정 중에 모든 가지 패턴 질의들에 대하여 유일한 선형 경로 패턴들만 처리하는 것은 상기 제1 맵리듀스 작업부(120)와 상기 제2 맵리듀스 작업부(130) 사이의 중간결과의 크기를 줄여 맵리듀스 작업을 수행하는데 있어 발생하는 네트워크 및 디스크 입출력을 크게 절약하기 위함이다.
상기 XML 데이터 분할 및 레이블링 모듈(201)의 실시예에서는 XML 데이터 블록 크기의 기준을 64MB로 하였으나 이 크기는 사용자가 성능 최적화를 위해 임의로 변경할 수 있다. 또한, XML 데이터 분할 및 레이블링 모듈(201)은 XML블록 및 레이블 블록 적재 시 서로 대응되는 두 블록들을 한 분산 노드에 같이 위치시킨다. 이렇게 하는 이유는 상기 제1 맵리듀스 작업부(120)에서 같은 XML블록과 레이블 블록을 동시에 읽어야 하므로 공간 지역성(spatial locality)를 확보하기 위한 목적이다. 확보된 공간 지역성으로 네트워크 입출력 비용이 감소하는 것을 기대할 수 있다.
도 3은 본 발명에서 입력으로 하는 대용량 XML 파일을 XML 엘리먼트들 간의 구조 정보의 손실 없이 고정 크기의 블록 단위로 변환하고 이에 대응하는 레이블 파일을 같이 분산 파일 시스템에 위치시키는 기능에 대한 실시예의 개략적인 구성도이다.
먼저 원본 XML 파일(300)을 XML 데이터 블록(301)들로 분할할 때는 기본적으로 주어진 고정 크기 기준으로 분할한다. 그러나 이때 XML 파일 내부의 엘리먼트 자체가 두 블록 간의 경계에 인접하여 엘리먼트 자체가 중간에 잘리게 된다면 해당 엘리먼트를 그 태그 이름으로 구분할 수 없게 된다. 그러므로 본 발명의 XML 데이터 분할에서는 엘리먼트가 잘리지 않는 한에서 주어진 블록 크기를 기준으로 여러 XML 데이터 블록으로 분할한다. 또한 이 블록 분할에 따라 분할된 XML 데이터 블록의 경우 선행된 블록들의 구조 정보가 유실됨에 따라 XML 데이터 블록에 해당하는 레이블 블록(302)에 선행 블록들의 경로 정보를 저장한다. 레이블 블록1(302)은 첫 번째 블록이므로 루트를 표시하는 /를 나타내었고, 레이블 블록2는 두 번째 XML 데이터 블록에 대응하는 레이블 블록으로서 두 번째 XML 블록의 첫 엘리먼트인 </D>의 경로 정보인 /A/B/C/D를 가진다. 질의 처리 시에는 XML 데이터 블록을 읽을 때 대응하는 레이블 블록의 처음에 나타나는 경로 정보를 이용하여 XML 데이터 블록의 첫 엘리먼트의 구조 정보를 복원한다. 레이블 블록(302)에 이후에 표시되는 3개의 숫자들은 영역 기반 번호 부여 기법에 따라 각 엘리먼트와 애트리뷰트에 부여되는 숫자들로 각각 엘리먼트가 대표하는 영역의 시작과 끝, 그리고 해당 엘리먼트가 XML 트리 구조 상에서 위치하는 레벨 값을 의미한다. 영역 기반 번호 부여 기법에서는 XML 엘리먼트의 영역 시작 값이 B의 영역 시작 값보다 작고 A의 영역 끝 값이 B의 영역 끝 값보다 크다면 A는 B의 부모 또는 조상 관계를 가짐을 의미하며, 또한 레벨 값의 차가 1이면 부모-자식 관계이며 2 이상인 경우 조상-후손 관계를 가지는 것을 의미한다.
도 4는 본 발명의 실시예 중 제1 맵리듀스 작업부(120)의 실시예에 관한 개략적인 구성도이다. 도 4에 도시한 바와 같이, 상기 제1 맵리듀스 작업부(120)는 전처리 및 데이터 적재부(110)에서 처리하여 분할, 저장된 XML 데이터 블록들과 레이블 블록들을 입력으로 받아 질의 인덱스(204)를 사용해 선형 경로 패턴들을 처리한다. 상기 제1 맵리듀스 작업부(120)의 맵 수행 노드(400)들은 질의 인덱스(402)를 먼저 적재하고 XML블록과 해당하는 레이블 블록을 입력으로 하여 분산 파일 시스템으로부터 이들을 읽는다. 이 때 각 맵 단계에서 이용하는 질의 인덱스들은 서로 동일한 구조를 갖는다. 각 맵 단계에서는 이 질의 인덱스를 이용하여 각 XML 블록을 필터링 한 후 질의 인덱스에서 포함된 선형 경로 패턴들의 해답에 해당하는 레이블 값을 출력으로 내보낸다. 이때 출력의 형식은 개념적으로 (선형 경로 패턴의 ID, 레이블 값)이 된다. 리듀스 수행 노드(401)에서는 선형 경로 패턴의 ID별로 정리된(grouping) 선형 경로 해답 레이블들을 취합하여 선형 경로 해답들의 크기 정보(403)을 따로 기록한다.
도 5는 본 발명의 실시예 중 제2 맵리듀스 작업부(130)의 실시예에 관한 개략적인 구성도이다. 도 5에 도시한 바와 같이, 상기 제2 맵리듀스 작업부(130)에서는 상기 제1 맵리듀스 작업부(120)에서 얻은 선형 경로 해답(404)들을 입력으로 가지 패턴 조인 연산들을 수행하여 최종 결과를 계산, 출력한다. 하지만 상기 제1 맵리듀스 작업이 끝나고 제2 맵리듀스 작업이 시작하기 전에 이전에 가지 패턴 조인들을 노드들에 작업량이 서로 균등하게 분배하기 위한 다중 질의 최적화 모듈(502)이 수행된다. 상기 다중 질의 최적화 모듈(502)의 구체적인 동작 내용은 후술하는 도 6에서 상세히 설명한다. 다중 질의 최적화 모듈에 의해서 가지 패턴 조인 연산들은 각 리듀스 수행노드들에 작업량이 서로 균등하도록 분배된다. 맵 수행 노드(500)에서는 어떠한 가지 패턴 연산이 어떤 리듀스 수행 노드로 분배되었는지에 관한 정보를 기반으로 하여 입력으로 오는 선형 경로 패턴들의 해답을 이를 입력으로 하는 가지 패턴 조인 연산이 할당된 리듀스 수행 노드(501)로 전달한다. 이 과정은 맵 수행 결과의 키 값을 전달하고자 하는 리듀스 수행 노드의 ID로 대체함으로써 수행된다.
이때 한 선형 경로 패턴의 해답이 다수의 리듀스 수행 노드들로 전달되는 경우에는 이 선형 경로 패턴의 해답의 복제가 수행됨에 따라 네트워크 입출력 비용이 증가하게 되는데 다중 질의의 최적화 모듈은 이를 줄이기 위한 기술을 포함한다. 리듀스 수행 노드는 전달 받은 선형 경로 패턴들의 해답을 입력으로 하여 자신에게 할당받은 가지 패턴 조인 연산들을 수행함으로써 최종 결과를 계산, 출력한다.
도 6은 본 발명의 실시예 중 다중 질의 최적화 모듈의 실시예를 설명하기 위한 흐름도이다. 도 6에 도시한 바와 같이, 가지 패턴 질의들과 선형 경로 패턴들간의 대응 관계 정보를 읽어오는 단계(S100)와; 읽어 들인 상기 선형 경로 패턴들의 해답들의 크기 정보를 읽어오는 단계(S101)와; 각 가지 패턴 조인 연산의 비용을 선형 경로 패턴 해답의 크기를 기준으로 계산하는 단계(S102)와; 계산 결과 비용이 가장 큰 가지 패턴 질의를 찾고, 이미 배정된 가지 패턴과 공통된 선형 경로가 있다면 그 선형 경로의 크기 만큼 비용에서 제외시키는 단계(S103)와; 배정된 가지 패턴 질의가 없는 리듀스 수행 노드에 배정하는 단계(S104)와; 가지 패턴 질의가 배정되지 않은 리듀스 수행노드가 있는지 판단하는 단계(S105)와; 가지 패턴 질의가 배정되지 않은 리듀스 수행노드가 있는 경우 상기 단계(S103)으로 복귀시키고, 가지 패턴 질의가 배정되지 않은 리듀스 수행노드가 없는 경우 배정된 가지 패턴 질의의 비용이 가장 적은 리듀스 수행 노드를 찾는 단계(S106)와; 찾은 배정된 가지 패턴 질의의 비용이 가장 적은 리듀스 수행 노드가 배정받은 가지 패턴 질의 들과 공통으로 가지는 선형 경로 패턴의 해답 크기가 가장 큰 가지 패턴 질의를 찾아 해당 리듀스 수행 노드에 배정하는 단계(S107)와; 배정되지 않은 가지 패턴 질의가 있는지 판단하여 배정되지 않은 가지 패턴 질의가 있는 경우 상기 단계(S107)로 복귀시키고, 배정되지 않은 가지 패턴 질의가 없는 경우 종료시키는 단계(S108)를 포함하는 구성이다.
상기 본 발명의 실시예에서 다중 질의 최적화 모듈에서는 리듀스 수행 노드가 서로 균등하게 가지 패턴 조인 연산들을 나누어 배정받도록 함과 동시에 한 선형 경로 패턴의 해답이 여러 리듀스 수행 노드에 배정되어 네트워크 전송 비용이 증가하는 상황을 최소화하기 위하여 탐욕적 방법(greedy approach)를 이용한다.
다중 질의 최적화 모듈은 먼저 수집된 각 선형 경로 패턴의 해답의 크기 정보와 선형 경로 패턴들과 가지 패턴 질의들 간의 대응 관계 정보를 이용하여 가지 패턴 질의들의 예상되는 수행 비용을 계산한다. 본 발명의 실시예에서는 가지 패턴 질의를 처리하기 위한 방법으로 전체론적 가지 패턴 조인(holistic twig pattern join; 이하 HTJ) 기술을 사용하였다. HTJ 기법에서 조인 연산의 비용은 입력 엘리먼트들의 리스트들의 크기의 합이다. 그러므로 본 발명의 실시예에서는 가지 패턴 질의에 포함되는 선형 경로 패턴들의 해답의 크기의 합이 가지 조인 연산의 비용이 된다. 그러나 가지 패턴 조인을 수행할 수 있는 다른 기법 또한 이용하는 것이 무방하며, 질의 처리를 위해 HTJ 기법 자체에 의존하거나, 이에 한정되는 것이 아니다. 각 가지 패턴 조인 연산의 비용이 계산되면 조인 연산 비용이 큰 순서대로 리듀스 수행노드들에 가지 패턴 질의를 하나씩 배정을 한다. 이 때 먼저 리듀스 수행 노드에 배정된 가지 패턴 조인의 입력인 선형 경로 패턴들 중에 공통되는 선형 경로 패턴을 입력으로 한다면, 그 선형 경로 해답의 크기만큼은 빼고 계산한다.
모든 리듀스 수행 노드에 하나씩 가지 패턴 조인 연산들이 배정되고 난 후에는 배정된 가지 패턴 조인 연산 비용이 가장 적은 리듀스 수행노드를 선정한다. 찾은 리듀스 수행노드에 배정된 가지 패턴 질의와 공통으로 가지는 선형 경로 해답의 크기가 가장 큰 가지 패턴 질의를 찾아 해당 리듀스 수행 노드에 배정한다. 이 때 배정하는 가지 패턴 질의는 이전에 배정되지 않은 가지 패턴 질의에 한한다. 만약 배정되지 않은 가지 패턴 질의가 남아 있다면 상기 동작을 반복 수행한다.
도 7은 더블 슬래시(//)와 와일드 카드(*)를 포함하는 XPath로 기술되는 선형 경로 패턴들을 더블 슬래시와 와일드 카드가 없는 실제 문서 내에서 존재하는 유일한 선형 경로 패턴으로 변환하는 작업의 실시예를 설명하기 위한 구성도이다. 이 작업을 수행하는 이유는 선형 경로 패턴에 더블 슬래시나 와일드 카드가 존재하는 경우 XML 문서 내 엘리먼트들이 복수의 선형 경로 패턴들의 해답으로 중복되어 반복적으로 나타날 수 있고 이로 인해 선형 경로 해답으로 나타나는 중간 결과의 크기가 커져 결과적으로 이를 반복적으로 처리하기 위해 네트워크 및 디스크 입출력 비용이 크게 증가하기 때문이다. 본 발명에서는 이의 해결을 위해 질의 분할 모듈(200)에서 가지 패턴 질의들을 선형 경로 패턴들로 분할하는데 있어, 더블 슬래시나 와일드 카드를 포함하는 선형 경로 패턴들을 문서 내 존재하는 유일 경로 패턴으로 변환함으로써 상기 제1 맵리듀스 작업부(120)에서 XML 문서의 모든 엘리먼트들이 많아야 단 선형 경로 패턴의 처리 결과가 되도록 한다.
경로 패턴의 변환 과정은 다음과 같다. 경로 추출부(704)를 이용해 먼저 전처리 과정 중에 원본 XML 파일 내에 존재하는 유일한 경로 패턴(701)들을 추출한다. 추출된 유일 경로 패턴들은 탐색의 편의성을 위해 역순으로 해시 테이블에 저장한다. 그리고 유일 경로 변환부(705)에서 질의 분할 모듈(200)이 가지 패턴 질의들로부터 분할한 더블 슬래시와 와일드 카드를 포함하는 선형 경로 패턴(702)들을 이 해시 테이블과 비교하여 유일한 경로 패턴들로 변환(703)하고, 원래의 선형 경로 패턴과 문서 내 유일한 선형 경로 패턴 간의 대응 관계를 설정한다. 이 대응 관계는 상기 제2 맵리듀스 작업부(130)의 맵 수행(500) 시 가지 패턴 조인 연산을 수행할 선형 경 패턴의 해를 결정하는데 이용한다.
추가적으로 XML 질의어인 XPath의 문법 중에 더블 슬래쉬(//)나 와일드 카드(*)가 존재하는데 이 심볼들이 질의어에 이용되는 경우에는 하나의 선형 경로 패턴이 XPath로 작성된 여러 경로 패턴에 중복하여 대응되는 경우가 존재한다. 가령 /A/B/C 라는 선형 경로 상의 마지막 엘리먼트인 C는 XPath로 작성된 경로 표현 //C, //B/C, A/B/C, A//C, A/*/C, *//C, A/B/* 모두의 해답이 될 수 있다. 이때 XPath 로 작성된 각 경로 표현들을 모두 서로 별개의 질의 패턴들로 인식하고, 각 경로 표현에 대해 질의 결과들을 따로따로 취급한다면, 결국엔 동일한 C 엘리먼트들을 반복해서 추출함에 따라 처리 시간 및 I/O의 낭비를 초래한다.
본 발명에서는 이 문제를 해결하고자 더블 슬래쉬나 와일드 카드가 나타나는 선형 경로 패턴에 대해 XML 문서상에 실제로 존재하는 유일한 경로 패턴으로 대체하여 줌으로써 XML 데이터의 엘리먼트들이 여러 선형 경로 패턴들의 해답으로 중복되어 처리, 출력되는 현상을 제거하고, 이를 통해 각 맵리듀스 작업 사이의 발생하는 입출력 비용을 크게 감소시킨다.
상술한 본 발명의 실시예는 본 발명의 다양한 실시예 중 일부에 불과하다. 본 발명의 기술적 사상에 포함하는 다양한 실시예가 본 발명의 보호 범위에 해당함은 당연하다.
100 : 입력부
110 : 전처리 및 데이터 적재부
120 : 제1 맵리듀스 작업부
130 : 제2 맵리듀스 작업부
200 : 질의 분할 모듈
201 : XML 데이터 분할 및 레이블링 모듈
202 : 질의 인덱스 작성 모듈

Claims (11)

  1. 사용자들로부터 가지 패턴 질의들 및 대용량 XML 파일을 입력 받기 위한 입력부와; 상기 입력부에 입력된 가지 패턴 질의들을 선형 경로 패턴들을 이용하여 질의 인덱스를 생성하고, 상기 대용량 XML 파일로부터 다수의 XML 데이터 블록들을 생성하여 분산 파일 시스템에 적재시키기 위한 전처리 및 데이터 적재부와; 상기 XML 데이터 블록들을 입력 받아 선형경로 패턴들에 대한 해답을 얻고, 상기 선형경로 패턴들에 대한 해답의 크기를 계산하기 위한 제1 맵리듀스 작업부와; 선형 경로 패턴들의 해답들을 가지고 가지 패턴 조인 연산을 수행하여 최종 결과를 출력시키기 위한 제2 맵리듀스 작업부;를 포함하는 대용량 XML 데이터에 대한 다수의 가지 패턴 질의의 동시 병렬처리시스템.
  2. 청구항 1에 있어서,
    상기 전처리 및 데이터 적재부는, 상기 대용량 XML 파일을 고정된 크기의 블록단위로 나누어 분산 파일 시스템에 저장하고, 분할된 각 XML 데이터 블록에 속한 XML 엘리먼트와 애트리뷰트에 대해 레이블번호를 부여하고 이들 레이블 번호를 별도의 블록으로 작성하여 XML 데이터 블록과 동일한 컴퓨팅 노드에 저장하고, 대용량 XML 파일을 블록단위로 나누어 저장할 때 XML의 구조적 정보가 손실이 되지 않도록 지정된 블록 크기 내에 가장 마지막에 위치하는 텍스트 값을 기준으로 블록을 분할하고, 분할되어 새로 시작되는 다음 블록에 대해서 처음 출현하는 엘리먼트의 루트로부터 해당 엘리먼트까지의 선형 경로 패턴을 문자열 값으로 레이블 번호와 같이 기록하는 것을 특징으로 하는 대용량 XML 데이터에 대한 다수의 가지 패턴 질의의 동시 병렬처리시스템.
  3. 청구항 1에 있어서,
    상기 제1 맵리듀스 작업부는, 상기 XML 데이터 블록들을 입력으로 하여 맵 단계에서 상기 질의 인덱스를 이용해 각 XML 데이터 블록들로부터 선형 경로 패턴들의 해답을 찾아내고, 리듀스 단계에서 각 선형 경로 패턴들의 해답의 크기를 계산하는 것을 특징으로 하는 대용량 XML 데이터에 대한 다수의 가지 패턴 질의의 동시 병렬처리시스템.
  4. 청구항 3에 있어서,
    상기 제2 맵 리듀스 작업부는, 상기 선형 경로 패턴들의 해답들을 입력받아 맵 단계에서 각 분산 노드에 배치된 가지 패턴 질의들을 확인하고, 상기 가지 패턴 질의들을 처리하기 위해 필요한 선형 경로 패턴들을 해당 노드에 보내주고, 리듀스 단계에서 실제로 전달 받은 선형 경로 패턴과 선형 경로 패턴-가지 패턴 질의 간의 대응 관계 정보를 이용하여 전체론적 가지 패턴 조인을 수행한 후 최종 결과를 분산 파일 시스템에 저장하는 것을 특징으로 하는 대용량 XML 데이터에 대한 다수의 가지 패턴 질의의 동시 병렬처리시스템.
  5. 청구항 1에 있어서,
    상기 제1 맵리듀스 작업부에 의한 작업이 끝나고 상기 제2 맵리듀스 작업부의 작업이 시작하기 전에 가지 패턴 조인들을 노드들에 작업량이 서로 균등하게 분배하기 위한 작업을 수행하기 위한 다중 질의 최적화 모듈을 더 포함하는 것을 특징으로 하는 대용량 XML 데이터에 대한 다수의 가지 패턴 질의의 동시 병렬처리시스템.
  6. 입력부에서 사용자들로부터 가지 패턴 질의들 및 대용량 XML 파일을 입력 받는 단계와; 전처리 및 데이터 적재부에서 입력된 상기 가지 패턴 질의들을 선형 경로 패턴들로 분해하는 단계와; 상기 전처리 및 데이터 적재부에서 상기 선형 경로 패턴들로 분해된 가지 패턴 질의들을 이용하여 질의 인덱스를 생성하는 단계와; 상기 전처리 및 데이터 적재부에서 상기 대용량 XML 파일을 다수의 컴퓨터들에서 병렬 처리할 수 있도록 고정 크기의 블록 단위로 분할하여 다수의 XML 데이터 블록들을 생성하는 단계와; 상기 전처리 및 데이터 적재부에서 상기 다수의 XML 데이터 블록들을 분산 파일 시스템에 적재시키는 단계와; 상기 분할된 XML 데이터 블록들을 입력 받아 질의 인덱스를 이용해 제1 맵리듀스 작업부의 맵 과정에서 선형경로 패턴들에 대한 해답을 얻는 단계와; 상기 제1 맵리듀스 작업부의 리듀스 과정에서 각 선형경로 패턴들에 대한 해답의 크기를 계산하는 단계와; 다중 질의 최적화 모듈에서 가지 패턴 조인 작업을 실시간으로 작업량이 서로 균등하게 여러 컴퓨팅 노드들에 분배하는 단계와; 여러 노드들에 할당된 가지 패턴 조인 연산들에 대하여 이들이 입력으로 취할 선형 경로의 해답들을 제2 맵리듀스 작업부의 맵 과정에서 실행 시간에 적절히 전송하는 단계와; 상기 제2 맵리듀스 작업부의 리듀스 과정에서 각 리듀서에게 할당된 가지 패턴 조인 연산들을 상기 맵 과정에서 전송받은 선형 경로 패턴들의 해답들을 가지고 수행하여 최종결과를 출력시키는 단계를 포함하는 대용량 XML 데이터에 대한 다수의 가지 패턴 질의의 동시 병렬처리방법.
  7. 입력부가 사용자들로부터 가지 패턴 질의들 및 대용량 XML 파일을 입력 받는 단계와; 전처리 및 데이터 적재부가 상기 입력부에 입력된 가지 패턴 질의들을 선형 경로 패턴들을 이용하여 질의 인덱스를 생성하고, 상기 대용량 XML 파일로부터 다수의 XML 데이터 블록들을 생성하여 분산 파일 시스템에 적재시키는 단계와; 제1 맵리듀스 작업부가 상기 XML 데이터 블록들을 입력 받아 선형경로 패턴들에 대한 해답을 얻고, 상기 선형경로 패턴들에 대한 해답의 크기를 계산하는 단계와; 제2 맵리듀스 작업부가 선형 경로 패턴들의 해답들을 가지고 가지 패턴 조인 연산을 수행하여 최종 결과를 출력시키는 단계를 포함하는 대용량 XML 데이터에 대한 다수의 가지 패턴 질의의 동시 병렬처리방법.
  8. 청구항 7에 있어서,
    상기 제1 맵리듀스 작업부가 상기 XML 데이터 블록들을 입력 받아 선형경로 패턴들에 대한 해답을 얻고, 상기 선형경로 패턴들에 대한 해답의 크기를 계산하는 단계는,
    다수의 가지 패턴 질의 사이에 공통적으로 존재하는 선형 경로 패턴들을 가지고 질의 인덱스를 작성하고 이 질의 인덱스를 가지고 맵 단계에서 XML 엘리먼트에 대하여 병렬로 필터링 처리를 수행하는 단계; 선형 경로 패턴을 가지고 질의 인덱스를 작성시 //, * 로 인해 동일 엘리먼트에 대한 중복 처리 문제를 해결하기 위해 //, *가 포함한 선형 경로 패턴을 입력 XML 문서 내에 유일한 선형 경로 패턴으로 변환하는 단계; 분산 노드에 대한 균등 작업량 분배를 위하여 선형 경로 해답들의 크기를 수집하는 단계;를 포함하는 것을 특징으로 하는 대용량 XML 데이터에 대한 다수의 가지 패턴 질의의 동시 병렬처리방법.
  9. 청구항 7에 있어서,
    상기 제1 맵리듀스 작업부가 상기 XML 데이터 블록들을 입력 받아 선형경로 패턴들에 대한 해답을 얻고, 상기 선형경로 패턴들에 대한 해답의 크기를 계산하는 단계의 수행 후, 상기 제2 맵리듀스 작업부가 선형 경로 패턴들의 해답들을 가지고 가지 패턴 조인 연산을 수행하여 최종 결과를 출력시키는 단계의 수행 전에,
    다중 질의 최적화 모듈에서 가지 패턴 조인 작업을 실시간으로 작업량이 서로 균등하게 여러 컴퓨팅 노드들에 분배하는 단계를 더 포함하는 것을 특징으로 하는 대용량 XML 데이터에 대한 다수의 가지 패턴 질의의 동시 병렬처리방법.
  10. 청구항 9에 있어서,
    상기 다중 질의 최적화 모듈에서 가지 패턴 조인 작업을 실시간으로 작업량이 서로 균등하게 여러 컴퓨팅 노드들에 분배하는 단계는,
    a. 선형 경로 패턴과 가지 패턴 질의 사이의 대응 관계 정보를 읽어오는 단계;
    b. 선형 경로 해답들의 크기 정보를 읽어오는 단계; 읽어온 선형 경로 패턴의 매핑 정보와 크기 정보를 이용하여 가지 패턴 조인 연산의 비용을 계산하는 단계와;
    c. 계산된 비용이 큰 순으로 정렬하여 배정된 가지 패턴 질의가 없는 임의의 리듀스 수행 노드에 하나씩 배정하는 단계;
    d. 기 배정된 가지 패턴 질의와 공통으로 지니는 선형 경로 패턴의 경우는 계산된 비용에서 제하여 주는 단계;
    e. 할당된 가지 패턴 조인 연산이 하나도 없는 리듀스 수행노드가 없을 때까지 상기 c, d 단계를 반복하는 단계;
    f. 배정된 가지 패턴 질의의 비용이 가장 적은 리듀스 수행노드를 찾는 단계;
    g. 상기 f 단계에서 찾은 리듀스 수행노드가 배정 받은 가지 패턴 조인들과 공통적으로 가지는 선형 경로 패턴의 해답크기가 가장 큰 가지 패턴 질의를 찾아 해당 리듀스 수행 노드에 배정하는 단계;
    h. 배정되지 않은 가지 패턴 질의가 더 이상 남아있지 않을 때까지 상기 f, g 단계를 반복하는 단계;를 포함하는 것을 특징으로 하는 대용량 XML 데이터에 대한 다수의 가지 패턴 질의의 동시 병렬처리방법.
  11. 청구항 9에 있어서,
    상기 제2 맵리듀스 작업부가 선형 경로 패턴들의 해답들을 가지고 가지 패턴 조인 연산을 수행하여 최종 결과를 출력시키는 단계는,
    상기 다중질의 최적화 모듈에서 할당한 리듀스 수행 노드와 가지 패턴 질의 간의 대응 관계 정보를 참조해 각 리듀스 수행노드에게 필요한 선형 경로 해답들을 전송하는 단계; 맵 수행부에서 전송되는 (키, 값) 쌍의 키를 영역 기반 번호 기법에서의 영역 시작 값으로 하여 리듀스 수행부에서 가지 조인을 수행할 때에 별도의 정렬 과정 없이 영역 시작 값으로 정렬된 레이블 값으로 가지 조인을 입력받아 사용할 수 있게 하는 단계; 전송된 선형 경로 패턴의 해답들을 입력으로 하여 다수의 가지 패턴 조인을 처리하여 최종 결과를 내는 단계;및 가지 패턴 질의 사이에 공통으로 존재하는 선형 경로 패턴이 있고 그 가지 패턴들이 동일 리듀스 작업 노드에 할당된 경우에 해당 선형 경로 해답을 반복해서 전송하지 않고 한번만 해당 리듀스 작업 노드에 전송하는 단계;를 포함하는 것을 특징으로 하는 대용량 XML 데이터에 대한 다수의 가지 패턴 질의의 동시 병렬처리방법.
KR1020120144057A 2012-12-12 2012-12-12 대용량 xml 데이터에 대한 다수의 가지 패턴 질의의 동시 병렬처리시스템 및 그 방법 KR101450239B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020120144057A KR101450239B1 (ko) 2012-12-12 2012-12-12 대용량 xml 데이터에 대한 다수의 가지 패턴 질의의 동시 병렬처리시스템 및 그 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020120144057A KR101450239B1 (ko) 2012-12-12 2012-12-12 대용량 xml 데이터에 대한 다수의 가지 패턴 질의의 동시 병렬처리시스템 및 그 방법

Publications (2)

Publication Number Publication Date
KR20140076010A KR20140076010A (ko) 2014-06-20
KR101450239B1 true KR101450239B1 (ko) 2014-10-14

Family

ID=51128441

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020120144057A KR101450239B1 (ko) 2012-12-12 2012-12-12 대용량 xml 데이터에 대한 다수의 가지 패턴 질의의 동시 병렬처리시스템 및 그 방법

Country Status (1)

Country Link
KR (1) KR101450239B1 (ko)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101472257B1 (ko) * 2014-07-22 2014-12-11 (주)카디날정보기술 예측 논리적 데이터 지역성을 이용한 병렬질의 처리 방법 및 장치
KR102128323B1 (ko) * 2014-10-31 2020-06-30 에스케이 텔레콤주식회사 사용자 언어환경을 고려한 데이터 분석 서비스 제공 장치 및 그를 위한 컴퓨터로 읽을 수 있는 기록 매체
KR102233380B1 (ko) * 2015-11-04 2021-03-26 에스케이텔레콤 주식회사 질의 및 데이터 경로 관리장치 및 컴퓨터 프로그램
KR101668397B1 (ko) * 2015-12-24 2016-10-21 한국과학기술정보연구원 대용량 과학 데이터 즉시 분석 방법 및 장치
US20230138113A1 (en) * 2021-02-09 2023-05-04 Micro Focus Llc System for retrieval of large datasets in cloud environments

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20040036201A (ko) * 2002-10-23 2004-04-30 삼성전자주식회사 Xml 데이터 검색을 위한 질의 처리 방법

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20040036201A (ko) * 2002-10-23 2004-04-30 삼성전자주식회사 Xml 데이터 검색을 위한 질의 처리 방법

Also Published As

Publication number Publication date
KR20140076010A (ko) 2014-06-20

Similar Documents

Publication Publication Date Title
CN107622103B (zh) 管理数据查询
Ali et al. From conceptual design to performance optimization of ETL workflows: current state of research and open problems
CN106934014B (zh) 一种基于Hadoop的网络数据挖掘与分析平台及其方法
Chung et al. JackHare: a framework for SQL to NoSQL translation using MapReduce
KR101450239B1 (ko) 대용량 xml 데이터에 대한 다수의 가지 패턴 질의의 동시 병렬처리시스템 및 그 방법
CN106126601A (zh) 一种社保大数据分布式预处理方法及系统
CN104317928A (zh) 一种基于分布式数据库的业务etl方法及系统
CN105930479A (zh) 一种数据倾斜处理方法及装置
Bala et al. A Fine‐Grained Distribution Approach for ETL Processes in Big Data Environments
CN107102999A (zh) 关联分析方法和装置
Cheng et al. Efficient event correlation over distributed systems
CN103077192B (zh) 一种数据处理方法及其系统
Savitha et al. Mining of web server logs in a distributed cluster using big data technologies
Bidoit et al. Processing XML queries and updates on map/reduce clusters
CN106445645A (zh) 用于执行分布式计算任务的方法和装置
Esmaeilzadeh et al. Building wikipedia n-grams with apache spark
Fan et al. Handling distributed XML queries over large XML data based on MapReduce framework
AL-Msie'deen et al. Detecting commonality and variability in use-case diagram variants
Damigos et al. Distributed Processing of XPath Queries Using MapReduce.
Ravindra et al. Efficient processing of RDF graph pattern matching on MapReduce platforms
Wang et al. Data cube computational model with Hadoop MapReduce
Sarkar et al. MapReduce: A comprehensive study on applications, scope and challenges
Ahn et al. SigMR: MapReduce-based SPARQL query processing by signature encoding and multi-way join
Dadheech et al. Performance improvement of heterogeneous hadoop clusters using query optimization
Benhamed et al. Classification of knowledge processing by MapReduce

Legal Events

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

Payment date: 20170928

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20181002

Year of fee payment: 5