본문 바로가기 사이드메뉴 바로가기 주메뉴 바로가기

주메뉴영역

주메뉴영역

혁신으로 세상을 바꾸는 융복합 대학, DIGIST
Innovative University Changing the World through Convergence
이 페이지를 SNS로 퍼가기

Research

신개념 데이터 분할을 통한 고성능 데이터 처리기술 개발

  • 조회. 623
  • 등록일. 2019.05.21
  • 작성자. 홍보팀

신개념 데이터 분할을 통한 고성능 데이터 처리기술 개발
- 업계 최고 기술인 아파치 스파크 SQL보다 4.2배 빠른 처리 성능
- 복잡해지는 현대 데이터의 분석과 처리에 있어 큰 역할이 기대돼

 

 

 

방대한 데이터를 더 효율적이고 더 빠르게 처리할 수 있는 원천 기술이 DGIST에서 개발됐다. 빅데이터와 같이 커져가는 데이터를 처리할 수 있는 효율적인 기술로써 향후 그 활용이 매우 기대된다.

DGIST(총장 국양)는 정보통신융합전공 김민수 교수팀이 관계형 데이터 처리기술인 ‘GPT(Graph-based database ParTitioning)기술’을 개발했다고 21일(화) 밝혔다. 최고의 처리속도를 자랑하는 기존의 처리방식보다도 평균 4배가량 더 우수한 처리 성능을 보여 향후 관련 분야에서 활용될 수 있을 것으로 기대된다.

‘관계형 데이터’는 여러 산업분야에서 가장 많이 사용하는 데이터 형태로, 오늘날 그 규모가 커져 여러 대의 컴퓨터에 분산 저장·처리하는 기술들이 널리 사용된다. 현재 관계형 데이터를 분산 처리하는 가장 뛰어난 기술은 ‘아파치(Apache)’의 ‘스파크(Spark) SQL’로, 그 외에도 여러 처리 기술들이 많이 개발돼 왔다. 하지만 이들 기술들 모두 데이터 처리를 위해선 네트워크상에서 연결된 여러 대의 컴퓨터 사이의 많은 양의 네트워크 통신이 필요한 단점을 갖고 있다.

이에 김민수 교수팀은 관계형 데이터를 여러 대의 컴퓨터들에 기존과 다른 방식으로 저장하고 처리하는 방식을 고민했다. 그 결과 컴퓨터들 간의 네트워크 통신을 거의 발생시키지 않고도 데이터 분산 처리가 가능한 GPT 기술을 개발, 기존의 데이터 저장 및 처리 기술들이 갖던 문제의 근본적 해결에 성공했다.

처리 속도가 빨리진 이유는 데이터를 그래프 위 점과 선의 관계로 모델링했기 때문이다. 관계형 데이터를 구성하는 각 데이터 테이블을 정점(vertex)으로, 테이블들 간의 조인(join) 관계를 선(edge)으로 설정한 일종의 그래프 데이터로 모델링하고, 허브(hub) 역할을 하는 데이터 테이블을 기준으로 나머지 데이터 테이블들을 수평 분할해 각 컴퓨터에 나눠 저장했다. 이를 통해 분산 처리에도 네트워크 통신이 거의 발생하지 않는 장점을 확보했다.

이번에 개발된 김민수 교수팀의 GPT 기술은 업계 표준 벤치마크 방식인 ‘TPC-DS’를 이용한 데이터 처리성능 비교에서 아파치 스파크 SQL보다 평균 4.2배 더 빠른 처리속도를 보였다. 또한 단순한 이론적 단계를 넘어 실제 산업용 데이터 처리에 짧은 시일 내 상용화가 가능한 수준의 완성도까지 갖췄다.

DGIST 정보통신융합전공 김민수 교수는 “2010년대 초반, 빅데이터에 흥미를 갖고 시작한 연구가 방대한 양의 데이터를 처리하는 기술 연구로 이어지게 됐다”며 “이번 연구로 확보한 관계형 데이터 처리 기술은 향후 커져가고 있는 데이터의 양과 그 복잡성을 고려해 볼 때, 매우 유용하게 활용될 것으로 기대하고 있다”고 말했다.

한편, 이번 연구 결과는 DGIST 정보통신융합전공 남윤민 박사과정생이 제1저자로 참여했으며, 정보과학분야에서 권위 있는 국제학술지 ‘인포메이션 사이언스(Information Sciences)’ 4월호에 게재됐다.

 

 

 연구결과개요 

A parallel query processing system based on graph-based database partitioning
Yoon-Min Nam, Donghyoung Han, Min-Soo Kim
(Information Sciences, Published on April, 2019)

  데이터베이스 분할기법은 조인 연산에 필요한 입/출력 과부하 정도를 줄일 수 있기 때문에 질의 최적화 기법으로 널리 사용되고 있다. 특히, 분산 질의 처리 시스템에서 분할된 데이터베이스를 활용하여 특정한 조건을 만족하는 동등 조인(Equi-join)을 여러 컴퓨팅 노드간의 네트워크 통신 없이 처리할 수 있다. 즉, 각 노드가 독자적으로 자신에게 할당된 분할 테이블들로만 질의 처리가 가능한 장점 때문에 데이터베이스 규모 및 복잡성이 증가하고, 처리해야하는 질의가 복잡해질수록 효율적인 데이터베이스 분할 방법의 중요성이 더욱 강조된다.
 본 기술 이전 가장 최근에 제안된 PREF기술은 트리형태의 데이터베이스 분할 계획을 생성한다. 이 때 분할 컬럼 분포가 고유하지 않을 경우 데이터의 중복이 자식노드 방향으로 중첩되는 심각한 단점이 있다. 또한 데이터베이스의 스키마와 입력 질의가 복잡해질수록 데이터 중복량이 매우 증가하게 된다. 이때 질의 처리 시 스캔해야 하는 분할 테이블의 크기가 매우 커져 질의 처리 속도를 크게 저하시키는 심각한 단점을 가지고 있다. 그 외에도 중복 튜플
1) 제거를 위해 네트워크를 통한 데이터 재분할 연산을 수반해야 하는 경우가 발생하는데 이는 로컬 데이터 처리 비용에 비해 심각한 성능 저하를 유발한다.
  GPT 기술은 데이터 중복 정도를 최소화 하면서 분할된 데이터베이스에 대한 복잡한 질의의 처리 시 데이터 로컬리티
2)를 크게 증가시킬 수 있는 그래프 기반의 데이터베이스 분할 계획을 생성한다. GPT 기술은 멀티그래프 모델을 따르는 단 하나의 분할 계획을 생성한다. 따라서 분할 테이블이 중복 저장되는 경우가 발생하지 않는다. 또한 멀티그래프 모델의 이론적 특성으로 인해 순환구조의 분할계획을 허용하며, 하나의 분할테이블이 여러 개의 분할 컬럼을 활용한 분할 관계를 표현할 수 있다. 따라서 분할 계획의 구조적 제약으로 인해 발생하는 불필요한 데이터 중복이 없다. 또한, 해시 기반의 테이블 분할 방법을 활용하기 때문에 두 테이블 간의 부모-자식 관계에 따른 데이터 의존성이 없다.
  또한, 조인 처리 시 필요한 I/O 비용 모델을 기반으로 데이터베이스의 테이블 분할 계획을 생성할 때 어떤 테이블이 파티션 되어야 할지, 그리고 분할될 테이블의 컬럼들 중 어떤 컬럼들을 분할 컬럼으로 활용할지를 자동 결정한다. 구체적으로, 중복 저장될 테이블들을 테이블의 크기와 같은 임의의 기준으로 구분하지 않고, 분할됐을 경우 질의의 처리 시 얻을 이익 대비 저장 공간 관점에서의 추가적인 I/O 비용의 손해를 분석하는 비용 모델 분석을 통해 최적의 데이터베이스 분할 계획을 자동으로 찾는다. 
  중복데이터 제거에 있어 GPT 기술은 비트맵 정보와 같은 추가적인 메타데이터를 물리적으로 디스크에 저장하지 않고, 분할 컬럼들의 조합을 논리적 수준에서 활용하여 하나의 파티션을 여러 개의 서브파티션들로 나누어 저장한다. 이때, 분할 컬럼 조합 정보가 같은 서브파티션 내에는 중복된 튜플이 존재하지 않는다. 따라서 질의의 처리 시 중복 튜플 제거를 위한 추가적인 질의 재작성 과정 혹은 네트워크 셔플링을 활용해야 하는 재분할 과정이 필요하지 않다.
  GPT 기술의 이론적 우수성을 바탕으로 본 연구진은 세계적으로 가장 많이 사용되는 Spark SQL 시스템에 GPT 분할 저장 계획 생성 모듈과 그에 따르는 대용량 데이터 분산 저장모듈 및 질의 최적화 엔진을 구현하였다. Spark SQL/GPT 시스템은 위의 기술들을 모두 적절히 활용하여 질의 처리에 필요한 디스크 및 네트워크 I/O 비용 모두를 매우 줄일 수 있다. 따라서 동일한 질의 처리 환경에서 기존 시스템과 비교해 획기적으로 질의 처리 비용을 줄이면서, 동시에 고속으로 복잡한 질의를 처리할 수 있다.

1) 튜플(Tuple): 데이터베이스내의 주어진 목록과 관계있는 속성값의 모음. 관련 테이블에서 행한 수치 이상으로 혼합된 자료 요소를 의미. 

2) 로컬리티(Locality, 지역성): 기억 장치 내의 정보를 균일하게 접근하는 것이 아닌 어느 한순간에 특정 부분을 집중적으로 참조하는 특성

 

 연구결과문답 

Q. 이번 성과 무엇이 다른가?
기존 데이터베이스 분할 계획 생성기술은 복잡한 데이터베이스 스키마와 질의에 대해서 비효율적인 트리형태의 분할 계획을 활용하고, 데이터 분할시 데이터 의존성을 유발하는 데이터 참조 분할 방법을 사용했다. 따라서, 스키마 및 질의 복잡도가 증가할수록 심각한 데이터 중복문제와 더불이 질의 처리 성능의 큰 저하를 유발했다. 본 연구진이 개발한 GPT 기술은 그래프 기반의 데이터 분할 계획 생성 기술과 더불어 해쉬 기반의 데이터 분할 방법을 활용해 복잡한 데이터베이스 스키마 및 질의에서도 낮은 데이터 중복을 요구하면서 더욱 빠른 질의 처리 성능을 보인다.

Q. 어디에 쓸 수 있나?
복잡한 조인 처리가 요구되는 대규모 분산 데이터베이스 시스템에 적용될 수 있다. 또한 조인 연산이 필요한 머신러닝, 바이오인포메틱스, 그래프 처리 등 매우 다양한 과학 기술 분야에도 적용이 가능하다.

Q. 실용화까지 필요한 시간은?
약 1년 정도의 시간이 필요할 것으로 생각된다.

Q. 실용화를 위한 과제는?
빈번한 데이터의 업데이트를 효율적으로 처리하기 위한 연구 개발이 필요하다. 1년 이내로 완료될 것으로 예상한다.

Q. 연구를 시작한 계기는?
2010년 초반부 빅데이터 분석에 대한 수요가 급증함에 따라 이를 데이터베이스 시스템 관점으로 효율적으로 해결하기 위한 이론 연구 및 관련 기술 개발에 흥미를 느껴 연구를 시작했다. 여러 데이터베이스 시스템을 분석하고 산업계에서 요구되는 질의 처리 기술을 연구하던 중 많은 데이터베이스 시스템들이 데이터를 분산 환경에서 저장하고 처리하지만 조인연산의 상호 관계 및 스키마 특성을 고려하지 않는다는 점에 착안해 효율적인 분산 데이터베이스 저장 및 질의 처리 기법에 대한 연구를 시작했다.

Q. 어떤 의미가 있는가?
GPT 기술은 분산 시스템에서의 효율적인 데이터베이스 분할 기법을 통해 복잡한 조인 연산 처리 비용을 크게 줄임과 동시에 저장 공간 관점의 효율성 또한 지원함을 보였다. 이는 학술적인 관점뿐만 아니라 실제 산업계에서도 매우 유의미한 연구 결과라고 생각한다.
이러한 장점으로 인해 데이터베이스 분야 최고 권위의 학술대회중 하나인 IEEE ICDE 2018와 더불어 정보과학 분야 최고 권위의 국제학술지인 Information Sciences 2019년 4월호에 연속적으로 게재되었고 세계적 수준의 이론 및 기술임을 인정받았다. 

Q. 향후 목표는?
GPT 기술은 조인 연산이 필요한 수많은 분야에 적용될 수 있는 확장성이 높은 기술이다. 이를 기반으로 주요 과학 분야의 데이터 분석 기술 및 성능 향상을 이끌 수 있는 이론 및 기술 개발이 주요한 연구 목표이다.

 

 그림설명 

[그림 1] GPT 분할 기술로 생성된 그래프 기반의 데이터베이스 분할 계획

 

[그림 1]은 GPT 기술을 적용해 세계적으로 널리 활용되는 TPC-DS 벤치마크의 스키마(a) 및 질의 워크로드(b)를 기준으로 최대 두 개의 분할 컬럼을 활용할 수 있도록 생성한 그래프 기반의 데이터베이스 분할 계획이다. 본 그림에서 녹색 사각형은 허브테이블로, 주변의 파란색 테이블들과 분할 관계를 형성한다. 이 때 GPT 기술에 입력된 정보가 스키마 혹은 워크로드로 달라지며 허브 테이블이 달라지고, 따라서 주변 테이블들이 어떤 분할 컬럼을 활용해 분할 저장되어야 하는지가 달라진다. 예를 들어, 테이블 SS의 경우, 스키마 정보를 통한 분할계획(a)에서는 ‘cust/item’ 두 컬럼을 통해 분할되지만 워크로드 정보가 주어질 경우, (b)처럼 ‘date/item’ 두 컬럼을 통해 분할된다. 조인 처리 시 같은 분할컬럼을 조인컬럼으로 활용하는 모든 조인 연산에 대해 네트워크 통신 없이 고속 조인 처리가 가능하다. GPT 기술은 임의의 스키마 혹은 질의정보에 대해 위와 같은 최적의 그래프 기반 데이터베이스 분할 계획을 자동으로 찾을 수 있다.

[그림 2] 기존의 Spark SQL와 개선된 GPT 기술 시스템 구조

 

[그림 2]는 Spark SQL 구조에서 기존 엔진 모듈을 수정한 부분을 노란색, 새로 구현한 모듈들을 초록색으로 표시했다. ‘Spark SQL Front-end’ 모듈은 유저로부터 데이터베이스 분할 요청을 입력받고 요청을 처리하기 위한 각각의 모듈을 호출하는 역할을 수행한다. ‘GPT Partitioner’ 모듈은 데이터베이스 분할 요청 입력 시 자동으로 최적의 데이터베이스 분산 분할 저장 계획을 생성하며, 생성된 계획에 따라 ‘Partition Bulk Loader’ 모듈이 실제로 데이터를 여러 노드들로 구성된 분산 파일 시스템(Distributed File System)에 분할·저장한다.
 또한, 분할된 테이블의 스캔연산 시 네트워크 I/O를 없앨 수 있는 효율적인 데이터 블록 저장 방법을 기존의 분산 파일 시스템 내부에 구현했다. 또한 생성된 데이터베이스 분할 계획은 데이터 중복 저장을 최대한 줄일 수 있도록 고안됐기 때문에 질의의 처리 시 요구되는 네트워크 I/O와 더불어 중복데이터로 인해 발생하는 디스크 I/O도 줄일 수 있게 된다. ‘Spark SQL Query Processor’내 ‘GPT-aware Scan Operator’는 저장된 분할 테이블 블록들에서 질의 처리에 필요한 특정 블록들만 선택적으로 스캔한다. 이는 질의 처리에 필요한 I/O 비용을 더욱 줄일 수 있다.

 

 논문 바로가기 ► 클릭

콘텐츠 담당 담당부서  :   홍보팀 ㅣ 053-785-1135