KR20170096302A - 이종 데이터 처리를 위한 분산 병렬 처리 시스템 - Google Patents

이종 데이터 처리를 위한 분산 병렬 처리 시스템 Download PDF

Info

Publication number
KR20170096302A
KR20170096302A KR1020160017512A KR20160017512A KR20170096302A KR 20170096302 A KR20170096302 A KR 20170096302A KR 1020160017512 A KR1020160017512 A KR 1020160017512A KR 20160017512 A KR20160017512 A KR 20160017512A KR 20170096302 A KR20170096302 A KR 20170096302A
Authority
KR
South Korea
Prior art keywords
query
data
cluster
servers
relational data
Prior art date
Application number
KR1020160017512A
Other languages
English (en)
Other versions
KR101828522B1 (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 KR1020160017512A priority Critical patent/KR101828522B1/ko
Publication of KR20170096302A publication Critical patent/KR20170096302A/ko
Application granted granted Critical
Publication of KR101828522B1 publication Critical patent/KR101828522B1/ko

Links

Images

Classifications

    • G06F17/30445
    • G06F17/30194
    • G06F17/30224
    • G06F17/30289
    • G06F17/30545
    • G06F17/30557
    • G06F17/30595

Landscapes

  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

이종 데이터 처리를 위한 분산 병렬 처리 시스템은 오픈소스의 NoSQL(Not Only Structured Query Language) 소프트웨어와 RDBMS(Relational Database Management System)를 이용하고 효율적인 질의 처리를 제공하는 시스템을 설계하여 저비용, 고효율의 이종 데이터 플랫폼을 제공한다.

Description

이종 데이터 처리를 위한 분산 병렬 처리 시스템{System of Parallel Distributed Processing System for Heterogeneous Data Processing}
본 발명은 분산 병렬 처리 시스템에 관한 것으로서, 특히 분산 병렬 환경에서 SQL(Structured Query Language) 기반 이종 데이터를 효율적으로 처리하기 위한 분산 병렬 미들웨어와 통신 비용 기반의 분산 병렬 질의 처리를 수행하는 이종 데이터 처리를 위한 분산 병렬 처리 시스템에 관한 것이다.
모바일 시장 및 SNS가 발전함에 따라 인터넷에 유통되는 데이터의 양은 종래와 비교할 수 없을 정도로 빠르게 증가되고 있으며, 이러한 데이터를 효율적으로 저장, 분석하기 위한 다양한 기법이 개발되고 있다.
병렬 분산 프레임워크인 맵리듀스의 오픈 소스 구현인 하둡(Hadoop)은 가장 대표적인 빅데이터 처리 NoSQL 소프트웨어로 입지를 다지고 있다.
하둡은 대량의 자료를 처리할 수 있는 큰 컴퓨터 클러스터에서 동작하는 분산 응용 프로그램을 지원하는 자바 기반의 소프트웨어 프레임 워크이며 오픈 소스 기반의 분산 컴퓨팅 플랫폼이다.
하둡은 오픈 소스 프레임워크로 분산 처리 프로그래밍 모델인 맵리듀스와 하둡 전체에서 사용되는 하둡 분산 파일 시스템(Hadoop Distributed File System, HDFS)으로 구성된다.
맵리듀스는 대량의 데이터를 여러 개의 노드로 분산하여 처리하는 프레임워크이며, HDFS는 하둡이 대량의 자료를 처리할 때 사용되는 분산 컴퓨팅 플랫폼이다.
한편, 기존 RDBMS에서 지원하는 ACID 성질과 강력한 트랜잭션 관리의 이점을 이용하기 위해 NoSQL 소프트웨어와 RDBMS의 협업을 통한 강력하고 유연한 대용량 데이터 매니지먼트 및 질의 플랫폼의 필요성이 제기되었다.
빅데이터 처리는 단순히 많은 양의 데이터를 적재하고 처리하는 방식에서 더 부가 가치가 큰 유용 정보를 거대한 데이터 집합에서 추출하는 방식으로 그 영역이 이동하고 있다. 기업들은 단순히 데이터의 적재 뿐만 아니라 데이터에서 고부가가치를 창출하는 방향으로 노선을 옮기고 있다.
이를 위해서 유연하고 강력한 데이터 처리가 가능한 RDBMS와 NoSQL의 협업이 연구되어 왔으나 고비용이 요구되거나 매니지먼트가 어려워 질의 편의성이 떨어지는 문제점이 있었다.
이와 같은 문제점을 해결하기 위하여, 본 발명은 오픈소스의 NoSQL(Not Only Structured Query Language) 소프트웨어와 RDBMS(Relational Database Management System)를 이용하고 효율적인 질의 처리를 제공하는 시스템을 설계하여 저비용, 고효율의 이종 데이터 플랫폼을 제공하는데 그 목적이 있다.
본 발명은 MySQL 상에서 효율적인 질의 처리를 위해 통신 비용 기반의 효율적인 분산 병렬 RDBMS 질의를 수행하는데 그 목적이 있다.
본 발명은 RDBMS에서 관계형 데이터를 효율적으로 Hive로 전송하기 위해 Locality를 고려한 데이터 전송 기법을 사용하여 효율적인 이종 데이터 전송을 수행하는데 그 목적이 있다.
본 발명은 SQL 기반 질의를 지원하고 NoSQL 소프트웨어에 대한 특수한 지식없이도 기존 RDBMS 사용자에 친화적 질의 처리를 지원하는데 그 목적이 있다.
상기 목적을 달성하기 위한 본 발명의 특징에 따른 이종 데이터 처리를 위한 분산 병렬 처리 시스템은,
관계형 데이터의 질의 결과를 반환하는 복수의 제1 서버에 존재하는 각 제1 테이블 위치와, 비관계형 데이터의 질의 결과를 반환하는 복수의 제2 서버에 존재하는 각 제2 테이블 위치를 포함한 메타 데이터를 저장하는 메타 데이터 모듈;
사용자가 웹 인터페이스부를 통해 관계형 데이터와 비관계형 데이터를 포함한 이종 데이터 분석 질의가 요청되면, 메타 데이터 모듈과 연동하여 요청된 이종 데이터 분석 질의에서 복수의 제1 서버에 존재하는 각 제1 테이블 위치를 반환받고, 복수의 제2 서버에 존재하는 각 제2 테이블 위치를 반환받고 각 제1 테이블 위치를 이용하여 복수의 제1 서버로 관계형 데이터를 병렬적으로 요청하여 반환받는 질의 분석 모듈;
반환받은 관계형 데이터를 통합하여 최종 관계형 데이터를 생성하는 질의 통합기; 및
최종 관계형 데이터와 비관계형 데이터를 참조하는 질의를 각 제2 테이블 위치를 이용하여 복수의 제2 서버로 요청하여 최종 질의 결과를 반환받은 후 웹 인터페이스부로 전송하는 이종 데이터 이동 모듈을 포함하는 것을 특징으로 한다.
전술한 구성에 의하여, 본 발명은 이종 데이터 처리를 지원하는 미들웨어 기반 DBMS를 제공하는 효과가 있다.
본 발명은 NoSQL 소프트웨어와 RDBMS를 이용하고 효율적인 질의 처리를 제공하는 시스템을 구성하여 저비용, 고효율의 이종 데이터 처리 플랫폼을 제공한다.
본 발명은 SQL 기반 질의를 지원하고 NoSQL 소프트웨어에 대한 특수한 지식없이도 기존 RDBMS 사용자에 친화적 질의 처리를 지원하는 효과가 있다.
도 1은 본 발명의 실시예에 따른 이종 데이터 처리를 위한 분산 병렬 처리 시스템의 구성을 나타낸 도면이다.
도 2는 본 발명의 실시예에 따른 이종 데이터 처리를 위한 분산 병렬 처리 시스템에서 질의 처리 수행 과정을 나타낸 도면이다.
도 3은 종래 기술에 따른 SQL 데이터를 HDFS에 저장하는 방법을 나타낸 도면이다.
도 4는 본 발명의 실시예에 따른 분산 병렬 환경의 분산 병렬 처리 장치에서 효율적인 관계형 데이터를 이동하는 방법을 나타낸 도면이다.
도 5는 본 발명의 실시예에 따른 단일 테이블 select를 나타낸 도면이다.
도 6은 본 발명의 실시예에 따른 다중 테이블 상에서의 join를 나타낸 도면이다.
명세서 전체에서, 어떤 부분이 어떤 구성요소를 "포함"한다고 할 때, 이는 특별히 반대되는 기재가 없는 한 다른 구성요소를 제외하는 것이 아니라 다른 구성요소를 더 포함할 수 있는 것을 의미한다.
본 발명은 오픈소스의 NoSQL(Not Only Structured Query Language) 소프트웨어와 RDBMS(Relational Database Management System)를 이용하고 효율적인 질의 처리를 제공하는 시스템을 설계하여 저비용, 고효율의 이종 데이터 플랫폼을 제공한다.
이종 데이터 처리 플랫폼을 만들기 위해서는 기존의 RDBMS를 그대로 사용하고 NoSQL이 RDBMS의 데이터를 참조 가능하도록 하고, 기존의 RDBMS와 NoSQL 소프트웨어를 그대로 사용하되 데이터 관리 및 이종 데이터 질의 처리를 지원해주는 미들웨어를 사용하며, 기존의 RDBMS와 NoSQL 소프트웨어의 소스를 모두 수정하여 통합된 프로그램을 구성한다.
본 발명은 저비용, 고효율을 가진 이종 데이터 처리 미들웨어를 구성하고, 저비용을 위해 오픈소스인 MySQL과 하둡 기반 질의 처리 플랫폼인 Hive을 이용하며, 고효율의 이종 데이터 처리를 위해 분산 병렬 처리 미들웨어를 설계하여 이를 빅데이터 처리 플랫폼으로 활용하는 방법을 제시한다. MySQL은 표준 데이터베이스 질의 언어인 SQL(Structured Query Language)을 사용하는 개방 소스의 관계형 데이터베이스 관리 시스템(RDBMS)이다.
본 발명은 MySQL 상에서 효율적인 질의 처리를 위해 통신 비용 기반의 효율적인 분산 병렬 RDBMS 질의를 수행한다.
본 발명은 RDBMS에서 관계형 데이터를 효율적으로 Hive로 전송하기 위해 Locality를 고려한 데이터 전송 기법을 사용하여 효율적인 이종 데이터 전송을 수행한다.
본 발명은 SQL 기반 질의를 지원하고 NoSQL 소프트웨어에 대한 특수한 지식없이도 기존 RDBMS 사용자에 친화적 질의 처리를 지원한다.
도 1은 본 발명의 실시예에 따른 이종 데이터 처리를 위한 분산 병렬 처리 시스템의 구성을 나타낸 도면이다.
본 발명의 실시예에 따른 이종 데이터 처리를 위한 분산 병렬 처리 시스템은 통신 모듈(101), 메타 데이터 모듈(102), 질의 분석 모듈(103). MySQL 질의 통합기(104), Hive 인터페이스부(105), 이종 데이터 이동 모듈(106), MySQL 질의 모듈(107)를 구비한 분산 병렬 처리 장치(100)와, MySQL(200), Hive(300), HDFS(400), 하둡(500)을 포함한다. Hive 인터페이스부(105), MySQL(200), Hive(300), HDFS(400), 하둡(Hadoop)(500)은 공개되어 있는 오픈 소스(Open Source)를 사용한다.
질의 분석 모듈(103)은 웹 인터페이스부(10)를 통해 요청된 질의에서 MySQL(200)에 존재하는 테이블과 Hive(300)에 존재하는 테이블을 구별해 파싱하고 MySQL 질의 모듈(107)과 Hive(300)에게 각각 소유한 테이블에 대한 질의를 요청한다. Hive(300)는 HDFS(400)와 같은 대용량 데이터 저장 시스템에 저장되어 있는 데이터들을 분석하는 역할을 수행한다.
MySQL(200)는 MySQL 서버들을 나타내고, 관계형 데이터가 저장될 노드로서 분산 병렬 처리를 위해 복수개 존재한다.
Hive(300)는 서버들을 포함한 Hive 노드를 나타내고, Hive(300)는 하둡(500) 상에서 SQL 문법으로 질의를 요청할 수 있는 프로그램으로서 비관계성 RAW를 효과적으로 분석할 수 있다.
Hive(300)의 실행 엔진은 하둡(Hadoop)(500)의 마스터(Master) 노드에 있는 잡트래커(JobTraker)와 연동되며, 분석가가 질의한 SQL문에 대하여 적절한 맵(Map)과 리듀스(Reduce) 처리가 수행될 수 있도록 한다.
HDFS(400)는 Hive(300)가 사용하는 데이터 저장고이고 하둡(500)은 비관계형 데이터를 처리할 분산 병렬 플랫폼이다.
메타 데이터 모듈(102)은 MySQL 질의 모듈(107)과 Hive(300)가 각각 어떤 테이블을 소유하고 있는지 저장하며 질의 분석 모듈(103)의 파싱에 필요한 정보를 제공한다.
MySQL 질의 통합기(104)는 MySQL 서버(200)로부터 분산 병렬적으로 반환된 질의 결과를 통합해준다. Hive 인터페이스부(105)는 Hive(300)에게 요청된 질의를 전달한다.
통신 모듈(101)은 복수의 MySQL 서버(200)와 Hive 인터페이스부(105), 웹 인터페이스부(10), MySQL 질의 통합기(104)가 유기적으로 통신할 수 있도록 통신 인터페이스를 제공한다.
MySQL 질의 모듈(107)은 복수의 MySQL 서버(200)에 질의를 병렬적으로 요청한다. 요청된 질의 결과는 MySQL 질의 통합기(104)에 통합된다.
이종 데이터 이동 모듈(106)은 이동 데이터 분석 질의가 요청되면, 분산 병렬 MySQL 질의 결과를 HDFS(400)로 이동해 Hive(300)가 이를 참조할 수 있도록 한다.
MySQL(200)와 Hive(300)는 데이터를 요구하는 질의가 요청되었을 때 질의 처리를 수행하는 방법을 도 2를 참조하여 상세하게 설명한다.
도 2는 본 발명의 실시예에 따른 이종 데이터 처리를 위한 분산 병렬 처리 시스템에서 질의 처리 수행 과정을 나타낸 도면이다.
사용자가 웹 인터페이스부(10)로부터 질의를 요청하면 통신 모듈(101)을 통해 질의 전송이 이루어진다(S100).
전송된 질의는 질의 분석 모듈(103)에서 메타 데이터 모듈(102)과 연동을 통한 검색으로 각 테이블의 위치를 반환받는다(S102).
질의 분석 모듈(103)은 메타 데이터를 기초로 요청받은 질의를 관계형 데이터만을 참조하는 질의로 분할한 후, 이를 테이블이 존재하는 복수의 MySQL 서버(200)에 요청하며 각각의 MySQL 서버(200)로부터 관계형 데이터를 반환받는다(S104).
MySQL 질의 통합기(104)는 각각의 MySQL 서버(200)에서 반환받은 데이터를 통합하여 완전한 관계형 데이터를 생성하고 이를 이종 데이터 이동 모듈(106)을 통해 Hive 노드(300)로 전달하여 Hive 노드(300)와 연동된 데이터 저장고인 HDFS(400)에 전달되는 것이다(S106).
이종 데이터 이동 모듈(106)은 관계형 데이터와 비관계형 데이터를 모두 참조하는 질의가 Hive 노드(300)로 요청되고 최종 질의 결과를 반환받으며(S108), 이를 통신 모듈(101)을 통해 웹 인터페이스부(10)로 전송하여 질의 수행을 완료한다(S110).
만약, 분산 병렬 처리 장치는 사용자가 요청한 질의가 관계형 데이터만을 참조하는 경우, 전술한 S106, S108 단계를 생략하며, MySQL 질의 통합기(104)가 통합한 관계형 데이터의 질의 결과만을 반환받아 통신 모듈(101)을 통해 웹 인터페이스부(10)로 전송한다.
또한, 분산 병렬 처리 장치는 사용자가 요청한 질의가 비관계형 데이터만을 참조하는 경우, 전술한 S102, S104, S106 단계를 생략하며 Hive(300)가 반환한 비관계형 데이터의 질의 결과만을 반환받아 통신 모듈(101)을 통해 웹 인터페이스부(10)로 전송한다.
HDFS(Hadoop Distributed File System)(400)는 하둡(500)과 Hive(300)에서 분산 데이터 처리를 위해서 데이터를 저장하기 위한 파일 시스템으로서 다중 노드에 파일을 블록 단위로 분산해 저장하며, 이를 위해 복수의 데이터 노드와 하나의 네임 노드의 구조를 사용한다. 복수의 데이터 노드에 하나의 블록을 복제해 저장하기 때문에 특정 노드의 장애시에도 전체 시스템을 정지하지 않고 장애를 복구할 수 있는 장점을 지닌다.
하나의 클라이언트(Client)에서 분산 병렬 SQL 질의 결과를 획득할 때, 모든 클러스터의 결과를 받기 위해서 필수적으로 한 클러스터에서 SQL 질의 결과의 통합을 수행해야 한다. 그러나 SQL과 NoSQL 모두의 데이터를 참조한 질의를 수행하기 위해서 분산 병렬 SQL 질의 결과를 HDFS(400)로 전송할 때 HDFS(400)의 분산 정책상 SQL 질의 결과의 통합은 불필요해진다.
도 3은 종래 기술에 따른 SQL 데이터를 HDFS에 저장하는 방법을 나타낸 도면이다.
종래의 분산 병렬 시스템은 각 클러스터(10, 20, 30)의 데이터를 취합하고 취합된 데이터를 HDFS(40)에 전송하며 이를 HDFS(40)가 다시 분산 저장한다.
이때, 클러스터 1(10)과 클러스터 3(30)은 자기가 본래 가지고 있던 데이터를 클러스터 2(20)에 전송한 후, 다시 전송받는 불필요한 네트워크 통신을 수행하고 있다.
본 발명의 분산 병렬 처리 장치(100)는 RDBMS에서 관계형 데이터를 효율적으로 Hive(300)로 전송하기 위해 Locality를 고려한 데이터 전송 기법을 사용하여 효율적인 이종 데이터 전송을 수행한다. 이를 도 4를 참조하여 상세하게 설명한다.
도 4는 본 발명의 실시예에 따른 분산 병렬 환경의 분산 병렬 처리 장치에서 효율적인 관계형 데이터를 이동하는 방법을 나타낸 도면이다.
분산 병렬 처리 장치(100)는 요청된 질의가 클라이언트에 전달될 것인지 HDFS(140)로 전송될 것인지 판단하여 HDFS(140)로 전송되는 경우 기존의 분산 병렬 SQL 질의 처리의 최종 단계인 통합 단계를 제외하고 각 클러스터(110, 120, 130)가 로컬(Local)에 위치한 HDFS(140)에 SQL 질의 결과를 전송하여 해당 문제를 해결한다.
아래는 SQL 데이터 이동 방법의 의사 코드를 나타낸다.
schedule( JobInfo job, ClusterInfo cluster ){
if( job.type == JOB_TYPE_TO_CLIENT ){
define Integer MaxValue = cluster.at(0).value
define Integer MaxIndex = 0
for i=1 to cluster.clusternum {
cluster.at(i).select( )
if( MaxValue < cluster.at(i).value ){
MaxIndex = i
MaxValue = cluster.at(i).value
}
}
cluster.at(MaxIndex).setMerger( )
for i=1 to cluster.clusternum {
cluster.at(i).result.goto(MaxIndex)
}
}
else if( job_type == JOB_TYPE_TO_HDFS){
for i=1 to cluster.clusternum {
cluster.at(i).select( )
cluster.at(i).result.toHDFS( )
}
}
}
schedule 함수는 먼저 수행이 요청된 질의의 종류를 파악한다. 요청된 질의가 관계형 데이터가 HDFS(140)로 이동할 필요가 없으며 관계형 데이터를 가장 많이 가지고 있는 클러스터(110, 120, 130)를 찾아 취합한다.
만약 요청된 질의가 이종 데이터 처리가 필요한 경우 클러스터(110, 120, 130)의 취합없이 동일 클러스터의 HDFS(140)로 이동하게 된다.
분산 병렬 처리 장치(100)는 select 질의에서 제안하는 기법을 통해 SQL 데이터를 저장한다(①). 각 클러스터(110, 120, 130)의 데이터를 로컬에 위치한 HDFS(140)에 전송하고, HDFS(140)가 분산 저장을 수행하여 데이터 이동이 완료된다(②).
본 발명의 분산 병렬 처리 장치는 MySQL(200) 상에서 효율적인 질의 처리를 위해 통신 비용 기반의 효율적인 분산 병렬 RDBMS 질의를 수행한다. 이를 도 5 및 도 6을 참조하여 상세하게 설명한다.
도 5는 본 발명의 실시예에 따른 단일 테이블 select를 나타낸 도면이고, 도 6은 본 발명의 실시예에 따른 다중 테이블 상에서의 join를 나타낸 도면이다.
질의 처리 효율을 증가시키기 위해서는 단일 질의에 소요되는 시간을 감소해야 한다. 질의 처리는 계산 시간, 데이터 로드 시간, 네트워크 통신 시간으로 이루어져 있으며 이 중 네트워크 통신 시간이 가장 많은 부분을 차지한다.
따라서, 네트워크 통신을 감소시키면 가장 효과적으로 질의 처리 효율을 증대시킬 수 있다.
MySQL(200)을 분산 병렬적으로 질의하기 위해서는 select 질의 처리와 세타 조인 질의 처리 기법이 사용되고, 이들 질의 처리를 위한 통신 비용을 기반으로 효율적으로 처리하는 방법을 이하에서 제시한다.
RDBMS에서 데이터를 분산 병렬적으로 질의하기 위해 데이터 분할 저장하는 방법은 테이블 수평 분할 기법이 있다. 테이블 수평 분할 기법이란 데이터 테이블 안의 내용을 중첩되는 열 없이 수평으로 분할해 클러스터에 저장하는 방식이다.
수평 테이블 분할 기법 상에서의 select 질의는 데이터가 존재하는 클러스터에서 질의를 전송받아 질의 결과 데이터를 선정하여 서버에 전송하면, 서버에서 이를 취합하여 결과로 반환한다.
수평 테이블 분할 기법을 이용한 분산 클러스터 상에서 단일 테이블의 select 질의 처리는 도 5에 도시된 바와 같다.
먼저, 질의 분석 모듈(103)과 MySQL 질의 통합기(104)를 포함한 분산 병렬 질의 처리기는 SQL 문이 클라이언트에서 요청되며, 이를 병렬적으로 데이터가 저장되어 있는 클러스터에게 전달된다. 이후 각 클러스터에서 처리된 질의 결과가 결합(Merging)되어 최종 결과로 생성된다. 최종 결과는 클라이언트에게 전달되어 질의 처리가 완료된다.
세타 조인이란 복수의 테이블에서 데이터를 참조해 질의를 처리하는 질의 종류이다. 세타 조인을 위해 조인 질의를 복수의 단일 테이블에 대한 select 질의들로 재구성하여 최종적으로 세타 조인 질의 결과를 도출하는 기법이 존재한다. 해당 기법은 join을 직접 수행하지 않기 때문에 필요 데이터를 메모리에 유지할 필요가 없어 범용 PC 클러스터 환경에 적합하다. 본 발명은 조인 질의를 복수의 단일 테이블에 대한 select 질의들로 재구성하여 최종적으로 세타 조인 질의 결과를 도출하는 기법을 사용한다.
도 6은 테이블 employee와 instructor를 참조하는 세타 조인의 예이다.
(ⅰ) 먼저 employee와 instructor를 참조하는 질의 중 employee 테이블에 대해 단일 테이블 select 질의를 수행한다. (ⅱ) 취합된 결과를 반환 받으면, employee와 instructor를 참조하는 질의 중 employee를 참조하는 부분을 취합 결과로 대체하여 instructor 테이블 만을 참조하는 질의로 변환하여 단일 테이블 select를 수행한다. 여기서 ω는 employee의 질의 결과이고, θ는 employee의 salary에 해당한다. (ⅲ) 마지막으로 질의 결과를 병합해 최종 결과를 획득한다.
앞서 서술한 질의 처리 기법을 수행 할 때, 단일 테이블에 대한 select 질의에서 질의 결과를 취합하는 job과, 세타 조인에서 질의를 재구성하는 job을 생성하게 된다.
이때, 해당 job을 어떤 클러스터에서 수행하는지에 따라 클러스터 간 통신 비용이 다르기 때문에 통신 비용이 적게 요구되는 클러스터를 선정하여 job을 생성할 필요가 있다. 질의를 실제로 수행하기 전에 질의 통신 비용을 정확하게 예측하는 것은 매우 힘들다.
본 발명에서 통신 비용을 예측하는 방법은 테이블에 저장된 데이터가 많은 클러스터가 데이터가 적은 클러스터보다 많은 결과를 반환할 확률이 높다는 사실에 착안한다.
통신 비용을 예측하는 방법은 분산 병렬 질의 처리기에서 해당하는 테이블에 대한 한 클러스터가 가진 데이터의 행의 수와 질의하는 열을 기반으로 통신 비용을 정의한다. 테이블 T에 대해 클러스터 i에서 j로 질의 결과를 전송할 때, 통신 비용은 다음의 [수학식 1]에 의해 계산한다.
Figure pat00001
CostT(i,j)란 테이블 T에 대해서 클러스터 i에 저장되어있는 데이터가 클러스터 j로 전송될 때 발생할 수 있는 네트워크 비용의 최대값을 의미하며, 이 비용은 테이블 T의 컬럼 수와 클러스터 i에 저장된 테이블 T의 로우 수의 곱으로 나타낸다.
CostT(i,i)는 클러스터 i에서 클러스터 i로 로컬 전송하기 때문에 네트워크 비용이 0이다. 단일 테이블에 대한 select 취합 job을 수행하면 다음의 [수학식 2]와 같은 통신 비용이 발생한다.
Figure pat00002
Costsum은 하나의 질의가 수행될 때 필요로 하는 네트워크 비용 CostT들의 합이다. MergeT는 질의 수행 과정에서 테이블 T에 대한 데이터가 합하여지는 클러스터를 나타낸다. MergeT 클러스터에서 취합한 결과 모두를 Destination 클러스터에게 전송해 주기 때문에
Figure pat00003
은 MergeT 가 전송받은
Figure pat00004
과 동일해 결론적으로
Figure pat00005
이 된다.
Figure pat00006
을 최소화하기 위해
Figure pat00007
임을 이용한다. Ta를 테이블 T를 가진 클러스터 중 가장 많은 데이터를 가진 클러스터라고 가정하고, Merge를 a 클러스터 위에서 수행하는 경우,
Figure pat00008
이 되고
Figure pat00009
이 감소하게 된다.
분산 병렬 질의 처리기는 통신 최대 비용을 예측하고 이를 줄이기 위해 테이블 T를 가진 클러스터 중 데이터를 많이 가진 클러스터 a를 찾는 것이며 만약 클러스터 a가 사용 불가능할 경우 a를 대신할 클러스터를 찾는다.
분산 병렬 질의 처리기는 두 개의 테이블을 참조하는 세타 조인 질의 재구성 job을 수행하면, 다음의 [수학식 3]을 이용하여 통신 비용을 예측한다.
Figure pat00010
먼저 참조된 테이블 T1에 대한 질의는 앞서 기술한 방식대로 T1에 대한 단일 테이블의 select 비용이 발생하며, T1 질의 결과를 이용하여 T2 테이블에 대한 질의 T2에 대한 단일 테이블의 select 비용이 발생한다.
분산 병렬 질의 처리기는 단일 테이블에 대한 select와 동일하게
Figure pat00011
임을 이용해
Figure pat00012
을 감소시킨다.
본 발명은 한정적인 메모리에 복수의 job이 할당되면 병목 현상이 발생할 수 있기 때문에 merging job 생성시에 병목 가능성을 검토해야 한다.
이를 위해서 각 클러스터는 여분의 job의 수를 사용해 병목 현상을 사전에 제거하는 알고리즘을 하기의 질의 수행 job 분산 의사 코드와 같이 나타낸다.
PreventBottlenecks( string sql )
{
schedule cluster[]
boolean permit = false
while( permit != true ){
cluster= GetScheduleBaseOnTransmitTime(sql)
permit = true
for( each cluster )
if( Bottleneck( Cancluster.NodeNum ) ) permit=false
}
if( permit ) run(sql, cluster)
else run_fail( )
}
여기서, Bottleneck 함수는 메타 정보를 이용해 해당 클러스터가 여분의 job을 생성할 수 있는 메모리가 있는지 확인한다. 만약 통신 비용 예측을 기반으로 스케줄된 job들의 위치 중 하나라도 여분의 메모리가 없다면,
Figure pat00013
를 데이터가 다음으로 많은 클러스터 번호로 바꿔 다시 스케줄이 시행된다. job들이 생성될 모든 위치에 여분의 메모리가 있다면 permit = true가 되면서 질의가 시행되고, 모든 스케줄에 대해서 여분의 메모리가 없다면 질의를 실패하고 여분의 메모리가 생길 때까지 기다린다.
이상에서 설명한 본 발명의 실시예는 장치 및/또는 방법을 통해서만 구현이 되는 것은 아니며, 본 발명의 실시예의 구성에 대응하는 기능을 실현하기 위한 프로그램, 그 프로그램이 기록된 기록 매체 등을 통해 구현될 수도 있으며, 이러한 구현은 앞서 설명한 실시예의 기재로부터 본 발명이 속하는 기술분야의 전문가라면 쉽게 구현할 수 있는 것이다.
이상에서 본 발명의 실시예에 대하여 상세하게 설명하였지만 본 발명의 권리범위는 이에 한정되는 것은 아니고 다음의 청구범위에서 정의하고 있는 본 발명의 기본 개념을 이용한 당업자의 여러 변형 및 개량 형태 또한 본 발명의 권리범위에 속하는 것이다.
100: 분산 병렬 처리 장치
101, 101a, 101b: 통신 모듈
102: 메타 데이터 모듈
103: 질의 분석 모듈
104: MySQL 질의 통합기
105: Hive 인터페이스부
106: 이종 데이터 이동 모듈
107: MySQL 질의 모듈
200: MySQL
300: Hive
400: HDFS
500: 하둡

Claims (9)

  1. 관계형 데이터의 질의 결과를 반환하는 복수의 제1 서버에 존재하는 각 제1 테이블 위치와, 비관계형 데이터의 질의 결과를 반환하는 복수의 제2 서버에 존재하는 각 제2 테이블 위치를 포함한 메타 데이터를 저장하는 메타 데이터 모듈;
    사용자가 웹 인터페이스부를 통해 상기 관계형 데이터와 상기 비관계형 데이터를 포함한 이종 데이터 분석 질의가 요청되면, 상기 메타 데이터 모듈과 연동하여 상기 요청된 이종 데이터 분석 질의에서 상기 복수의 제1 서버에 존재하는 각 제1 테이블 위치를 반환받고, 상기 복수의 제2 서버에 존재하는 각 제2 테이블 위치를 반환받고 상기 각 제1 테이블 위치를 이용하여 상기 복수의 제1 서버로 상기 관계형 데이터를 병렬적으로 요청하여 반환받는 질의 분석 모듈;
    상기 반환받은 관계형 데이터를 통합하여 최종 관계형 데이터를 생성하는 질의 통합기; 및
    상기 최종 관계형 데이터와 상기 비관계형 데이터를 참조하는 질의를 상기 각 제2 테이블 위치를 이용하여 상기 복수의 제2 서버로 요청하여 최종 질의 결과를 반환받은 후 상기 웹 인터페이스부로 전송하는 이종 데이터 이동 모듈을 포함하는 것을 특징으로 하는 이종 데이터 처리를 위한 분산 병렬 처리 시스템.
  2. 제1항에 있어서,
    상기 복수의 제1 서버는 표준 데이터베이스 질의 언어인 SQL(Structured Query Language)을 사용하는 개방 소스의 관계형 데이터베이스 관리 시스템이고, 상기 복수의 제2 서버는 하둡 상에서 SQL 문법으로 질의를 요청할 수 있으며 하둡 분산 파일 시스템(Hadoop Distributed File System, HDFS)을 데이터 저장고로 사용하는 Hive 노드인 것을 특징으로 하는 이종 데이터 처리를 위한 분산 병렬 처리 시스템.
  3. 제1항에 있어서,
    상기 질의 분석 모듈은 상기 요청된 이종 데이터 분석 질의가 상기 비관계형 데이터를 참조하지 않고 상기 관계형 데이터를 참조하는 경우 상기 복수의 제1 서버로 상기 관계형 데이터를 병렬적으로 요청하여 반환받으며 상기 비관계형 데이터를 참조하는 질의를 상기 복수의 제2 서버로 요청하지 않는 것을 특징으로 하는 이종 데이터 처리를 위한 분산 병렬 처리 시스템.
  4. 제1항에 있어서,
    상기 질의 분석 모듈은 상기 요청된 이종 데이터 분석 질의가 상기 관계형 데이터를 참조하지 않고 상기 비관계형 데이터를 참조하는 경우 상기 복수의 제1 서버로 상기 관계형 데이터를 요청하지 않으며 상기 비관계형 데이터를 참조하는 질의를 상기 복수의 제2 서버로 요청하는 것을 특징으로 하는 이종 데이터 처리를 위한 분산 병렬 처리 시스템.
  5. 제1항에 있어서,
    상기 질의 분석 모듈은 상기 요청된 이종 데이터 분석 질의가 상기 비관계형 데이터를 참조하지 않고 상기 관계형 데이터를 참조하는 경우, 상기 이종 데이터 분석 질의를 하둡 분산 파일 시스템(Hadoop Distributed File System, HDFS)로 이동하지 않으며,
    상기 질의 통합기는 상기 관계형 데이터를 가장 많이 가지고 있는 클러스터를 찾아 해당 클러스터에서 상기 관계형 데이터의 통합을 수행하는 것을 특징으로 하는 이종 데이터 처리를 위한 분산 병렬 처리 시스템.
  6. 제1항에 있어서,
    상기 질의 분석 모듈은 상기 요청된 이종 데이터 분석 질의가 이종 데이터 처리가 필요한 경우, 상기 이종 데이터 이동 모듈은 각각의 클러스터의 SQL(Structured Query Language) 데이터를 로컬에 위치한 하둡 분산 파일 시스템(Hadoop Distributed File System, HDFS)에 전송하고, 상기 HDFS에 분산 저장을 수행하여 데이터 이동이 완료되는 것을 특징으로 하는 이종 데이터 처리를 위한 분산 병렬 처리 시스템.
  7. 제1항에 있어서,
    상기 질의 분석 모듈과 상기 질의 통합기를 포함한 분산 병렬 질의 처리기는 클러스터가 가진 데이터의 행의 수와 질의하는 열을 기반으로 하기의 수학식 1에 의해 통신 비용을 예측하여 상기 통신 비용이 가장 적게 요구되는 클러스터를 선정하여 job을 생성하는 것을 특징으로 하는 이종 데이터 처리를 위한 분산 병렬 처리 시스템.
    [수학식 1]
    Figure pat00014

    여기서, CostT(i,j)란 테이블 T에 대해서 클러스터 i에 저장되어있는 데이터가 클러스터 j로 전송될 때 발생할 수 있는 네트워크 비용의 최대값을 의미하며, 이 비용은 테이블 T의 컬럼 수와 클러스터 i에 저장된 테이블 T의 로우 수의 곱으로 나타냄.
  8. 제1항에 있어서,
    상기 질의 분석 모듈과 상기 질의 통합기를 포함한 분산 병렬 질의 처리기는 단일 테이블에 대한 select 취합 job을 수행하면, 하기의 수학식 2에 의해 통신 비용을 예측하여 상기 통신 비용이 가장 적게 요구되는 클러스터를 선정하여 job을 생성하는 것을 특징으로 하는 이종 데이터 처리를 위한 분산 병렬 처리 시스템.
    [수학식 2]
    Figure pat00015

    여기서, Costsum은 하나의 질의가 수행될 때 필요로 하는 네트워크 비용 CostT들의 합이고, MergeT는 질의 수행 과정에서 테이블 T에 대한 데이터가 합하여지는 클러스터를 나타냄.
  9. 제1항에 있어서,
    상기 질의 분석 모듈과 상기 질의 통합기를 포함한 분산 병렬 질의 처리기는 두 개의 테이블을 참조하는 세타 조인 질의 재구성 job을 수행하면, 하기의 수학식 3에 의해 통신 비용을 예측하여 상기 통신 비용이 가장 적게 요구되는 클러스터를 선정하여 job을 생성하는 것을 특징으로 하는 이종 데이터 처리를 위한 분산 병렬 처리 시스템.
    [수학식 3]
    Figure pat00016
KR1020160017512A 2016-02-16 2016-02-16 이종 데이터 처리를 위한 분산 병렬 처리 시스템 KR101828522B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020160017512A KR101828522B1 (ko) 2016-02-16 2016-02-16 이종 데이터 처리를 위한 분산 병렬 처리 시스템

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020160017512A KR101828522B1 (ko) 2016-02-16 2016-02-16 이종 데이터 처리를 위한 분산 병렬 처리 시스템

Publications (2)

Publication Number Publication Date
KR20170096302A true KR20170096302A (ko) 2017-08-24
KR101828522B1 KR101828522B1 (ko) 2018-02-12

Family

ID=59758039

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020160017512A KR101828522B1 (ko) 2016-02-16 2016-02-16 이종 데이터 처리를 위한 분산 병렬 처리 시스템

Country Status (1)

Country Link
KR (1) KR101828522B1 (ko)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20190054741A (ko) * 2017-11-14 2019-05-22 주식회사 케이티 데이터의 품질 관리 방법 및 장치
WO2019189962A1 (ko) * 2018-03-27 2019-10-03 주식회사 리얼타임테크 분산 데이터베이스에서의 복제본이 존재하는 데이터에 대한 질의 병렬화 방법
KR20220088958A (ko) * 2020-12-10 2022-06-28 쿠팡 주식회사 확장 가능한 클러스터에서 연결을 관리하기 위한 시스템 및 방법

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10162851B2 (en) * 2010-04-19 2018-12-25 Salesforce.Com, Inc. Methods and systems for performing cross store joins in a multi-tenant store
US20120036146A1 (en) 2010-10-26 2012-02-09 ParElastic Corporation Apparatus for elastic database processing with heterogeneous data
MY186962A (en) 2014-07-23 2021-08-26 Mimos Berhad A system for querying heterogeneous data sources and a method thereof

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20190054741A (ko) * 2017-11-14 2019-05-22 주식회사 케이티 데이터의 품질 관리 방법 및 장치
WO2019189962A1 (ko) * 2018-03-27 2019-10-03 주식회사 리얼타임테크 분산 데이터베이스에서의 복제본이 존재하는 데이터에 대한 질의 병렬화 방법
KR20190113055A (ko) * 2018-03-27 2019-10-08 주식회사 리얼타임테크 분산 데이터베이스에서의 복제본이 존재하는 데이터에 대한 질의 병렬화 방법
KR20220088958A (ko) * 2020-12-10 2022-06-28 쿠팡 주식회사 확장 가능한 클러스터에서 연결을 관리하기 위한 시스템 및 방법
US11914624B2 (en) 2020-12-10 2024-02-27 Coupang Corp. Systems and methods for managing connections in scalable clusters

Also Published As

Publication number Publication date
KR101828522B1 (ko) 2018-02-12

Similar Documents

Publication Publication Date Title
US11567956B2 (en) Background format optimization for enhanced queries in a distributed computing cluster
US11461356B2 (en) Large scale unstructured database systems
US9990399B2 (en) Low latency query engine for apache hadoop
JP6416194B2 (ja) 半構造データのためのスケーラブルな分析プラットフォーム
US20190121809A1 (en) System and methods for distributed database query engines
CN103430144A (zh) 数据源分析
CN104063486A (zh) 一种大数据分布式存储方法和系统
KR101828522B1 (ko) 이종 데이터 처리를 위한 분산 병렬 처리 시스템
Errami et al. Spatial big data architecture: from data warehouses and data lakes to the Lakehouse
Saleem Storage, indexing, query processing, and benchmarking in centralized and distributed RDF engines: a survey
CN105550351A (zh) 旅客行程数据即席查询系统及方法
Chardonnens Big data analytics on high velocity streams
Cardinale et al. Big Data Analytic Approaches Classification.
Pal et al. SQL for Streaming, Semi-Structured, and Operational Analytics
Soliman Big Data Query Engines
Pipita Dynamic query optimization in spark
Lakhe et al. Lambda architecture for real-time Hadoop applications
Khurana et al. Big data analytics and technologies
Schek et al. The hyperdatabase project–from the vision to realizations
Özal Improving the performance of Hadoop/Hive by sharing scan and computation tasks
Leser OLAP Queries on Big Data Processing Systems
Sönmez Sunercan Data integration over horizontally partitioned databases in service-oriented data grids
Sunercan Data integration over horizontally partitioned databases in service-oriented data grids

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
GRNT Written decision to grant