2018.12.21

빅데이터 분석에 새로운 가치를 부여하는 GPU 데이터베이스의 역할

Andy Patrizio | InfoWorld
SQL 데이터베이스는 1970년대로 거슬러 올라가고, 1980년대 이후 미국국가표준협회(ANSI) 표준으로 자리잡았다. 그렇다고 해서 데이터베이스 기술이 정체 상태라는 것은 아니다. 데이터베이스 기술은 계속 변하고 있고, 그러한 변화 가운데 하나가 GPU로 가속되는 데이터베이스다. 

관계형 데이터베이스는 데이터세트가 페타바이트 이상의 단위로 측정될 정도의 규모까지 성장했다. 64비트 컴퓨팅과 테라바이트 메모리가 출현해 프로세싱 능력이 강화되었지만, 여전히 소화하기 힘든 데이터 양이다. CPU는 역량의 한계에 도달했고, 그래서 GPU가 출현하게 된 것이다.

GPU는 게이밍 가속이라는 원래의 역할에서 거의 모든 것을 가속하는 것으로 역할이 확대됐다. 엔비디아는 인공 지능의 대명사가 될 정도로 능숙하게 변신했다. AI는 방대한 양의 데이터 병렬 처리를 요구하는 프로세스다. 그리고 병렬화될 수 있는 다른 작업도 있다. AMD도 후발주자지만, 엔비디아는 이미 저 멀리 앞서나가고 있다. 

코어에 있어서는 아예 비교조차 되지 않는다. 제온 CPU는 최대 22개 코어를 가진다. 그러나 AMD 에픽은 32개 코어다. 엔비디아 볼타 아키텍처는 5,120개의 코어를 갖는다. 이제 5,000 개 이상의 코어가 데이터 상에서 병렬로 실행되는 것을 상상해보라. 왜 GPU가 대형 컴퓨트 프로젝트에서 그렇게 인기를 끄는지 분명해질 것이다. 

즉, 이제 새로운 데이터베이스 종류가 출현한 것이다. GPU와 이의 거대한 병렬 처리 능력을 지원하고 수용하기 위해 처음부터 새롭게 코딩되는 데이터베이스다. 데이터 처리, 애널리틱스, 실시간 빅데이터는 새로운 차원으로 격상된다. 일반 CPU로 구동되는 데이터베이스가 처리할 수 없는 데이터 세트를 담당하기 때문이다.  
 

GPU 데이터베이스의 정의 

GPU 데이터베이스의 개념은 매우 단순하다. GPU의 병렬 처리를 이용해 데이터의 처리 속도를 높인다. GPU는 SQL 질의 처리 가속에 이상적이다. SQL은 데이터세트의 모든 행에 대해 동일한 작업을–대개 검색– 수행하기 때문이다. 

그러나, 오라클 데이터베이스를 호스팅하는 서버에 엔비디아 테슬라 카드를 그냥 여러 개 집어 넣을 수 있는 것은 아니다. GPU 데이터베이스는 SQL 조인(JOIN) 연산부터 시작해, 병렬 프로세싱을 수행하도록 처음부터 새롭게 설계되고 코딩되었다. 

조인 구문은 데이터베이스의 여러 테이블로부터 열(columns) 사이의 관계를 설정하고, 유의미한 애널리틱스를 수행하는 데 결정적이다. 레거시 RDBMS 시스템 상의 조인을 위한 전통적 설계 방식은 여러 해 전 단일 코어 CPU를 위해 설계된 것으로, GPU는 말할 것도 없고, CPU에 대해서도 신통치 않다. 

조인 외에도, GPU데이터베이스는 예컨대 아래와 같은 실질적 지원을 제공한다. 

•    하둡(Hadoop), 카프카(Kafka), H베이스(HBase), 스파크(Spark), 스톰(Storm) 등 유명 오픈 소스 프레임워크로의 커넥터
•    태블로(Tableau), 파워 BI(Power BI), 스팟파이어(Spotfire) 등 시각화 및 BI 툴과의 통합을 위한 ODBC 및 JDBC 드라이버 
•    C++, SQL, 자바, 노드제이에스(Node.js), 파이썬 등 유명 프로그래밍 언어와의 결합을 위한 API 
 

GPU 데이터베이스가 사용되는 곳 

따라서, GPU 데이터베이스는 오라클, SQL 서버, 또는 DB2와 실질적 경쟁 관계가 아니다. GPU 데이터베이스는 데이터 애널리틱스 판단을 지향한다. 즉, 방대한 양의 데이터로부터 실시간 결정을 내리려고 하지만, 데이터 양이 너무 많고, 또는 시각 분석 툴이 너무 느려서 불가능하다는 것을 알게 되는 지점을 노리는 것이다. 

GPU 데이터베이스 사업자는 오라클 또는 테라데이터 같은 OLTP 데이터베이스를 대체하려고 하지 않는다. 전통적인 RDBMS 워크로드를 표적으로 하는 대신 GPU 데이터베이스는 방대한 데이터 세트와 실시간 니즈를 갖는 OLAP/OLTP의 세계를 겨냥한다. GPU 데이터베이스는 배치 처리가 여러 시간, 또는 하룻밤에 걸쳐 진행되는 곳이 아니라, 실시간으로 또는 한 시간 단위로 데이터가 제시될 수 있는 곳에 존재한다. 

GPU 데이터베이스는 NoSQL이 안고 있는 많은 문제들을 해결할 것이지만, 그러면서도 사용자는 기존의 구조화된 쿼리 툴을 이용할 수 있다. NoSQL을 이용한다는 것은 SQL 툴을 전부 다시 코딩해야 한다는 의미지만, GPU 데이터베이스는 기존의 SQL 툴을 활용할 수 있다.

GPU 데이터베이스인 SQream을 이용하는 IT 컨설팅 회사인 데이터트렌드 테크놀로지(Datatrend Technologies)의 신생 기술 솔루션 설계자 스티브 워싱턴은 “앞으로 사람들은 다차원 시스템을 구축할 수 있고, 다양한 시나리오에서 데이터를 수집해 취합할 수 있음을 알게 될 것이다”라고 말했다. 그러면서 “의료 회사는 다수의 시스템에서 데이터를 수집하고, 데이터베이스 여럿에 걸친 애널리틱스를 행하기를 원한다. 과거에는 상호 참조가 불가능했고, 데이터베이스를 결합할 방법이 없었다”고 설명했다. 

아울러 워싱턴은 사기 및 위험 분석을 행하는 금융기관도 단순히 신용카드 검사를 하는 것에 불과했지만, 이제 다수 계좌에 걸쳐 검사를 행하고 싶어한다고 말했다. GPU의 위력을 바탕으로, 이들은 모든 정보원을 대상으로 단번에 상호참조를 할 수 있다. 

위치정보 서비스 회사인 스카이후크(Skyhook)의 지구 공간 담당 부사장인 리치 서턴은 옴니사이(OmniSci)라는 GPU 데이터베이스를 이용해 지리적 데이터세트로 CPU 기반 데이터베이스보다 훨씬 더 거대한 시각화를 할 수 있다. 서턴은 “전통적인 CPU 공간에서 1만 줄의 데이터 세트를 관찰해야 하지만, 이제는 지연 시간 없이 옴니사이에 10억 개의 행을 넣을 수 있다. 레이턴시가 크게 줄어든 데다 데이터 소비에서도 엄청난 혜택이 있다”고 강조했다. 

옴니사이의 CEO인 토드 매스턱은 한 고객이 옴니사이의 속도가 호기심 비용을 절감한다고 하더라고 말했다. 과거에는 불가능했던 질문을 이제는 할 수 있는 것이다. 한 금융서비스 고객은 전통적 데이터베이스에서 18시간이 걸렸던 질의 처리가 이제 1초도 채 걸리지 않는다고 말했다. 한 이동통신사는 수시간이 걸려서 실행되었던 쿼리에 응답을 받기까지 1초 미만이 걸린다고 말했다.  

GPU 데이터베이스를 위한 또 다른 장소는 하둡이 실패한 실시간 빅데이터다. GPU 데이터베이스 사업자인 SQream의 CEO인 에이미 갤은 하둡에서는 수십 페타바이트의 데이터 안에 있는 모든 기회를 찾아낸다는 빅데이터의 가능성이 달성될 수 없었다고 말했다. 

갤은 “스파크(Spark)는 데이터 이동 및 변환에 대단히 적합하다. 그러나 엄청난 양의 데이터를 처리하고 이동시켜야 한다면, 수십 만 개의 컴퓨터 노드를 처리해야 한다. 따라서 너무 버겁게 느껴질 것이다. 그러나 10 또는 15개 노드로 작업할 수 있다면 훨씬 더 효율적”이라고 말했다. 

워싱턴은 GPU 기반 서버는 단 하나의 캐비닛으로 CPU로 구동되는 다중 병렬 프로세싱(multiple-parallel-processing, MPP) 노드로 구성된 수많은 캐비닛에 해당하는 일을 할 수 있다고 말했다. 그는 “수많은 MPP 노드를 6개 노드로 대체할 수 있다. 각 노드에 2~4개의 GPU가 배치된다. 1,000만 달러 투자를 100만 달러 미만의 투자로 대체하는 것”이라고 말했다. 



2018.12.21

빅데이터 분석에 새로운 가치를 부여하는 GPU 데이터베이스의 역할

Andy Patrizio | InfoWorld
SQL 데이터베이스는 1970년대로 거슬러 올라가고, 1980년대 이후 미국국가표준협회(ANSI) 표준으로 자리잡았다. 그렇다고 해서 데이터베이스 기술이 정체 상태라는 것은 아니다. 데이터베이스 기술은 계속 변하고 있고, 그러한 변화 가운데 하나가 GPU로 가속되는 데이터베이스다. 

관계형 데이터베이스는 데이터세트가 페타바이트 이상의 단위로 측정될 정도의 규모까지 성장했다. 64비트 컴퓨팅과 테라바이트 메모리가 출현해 프로세싱 능력이 강화되었지만, 여전히 소화하기 힘든 데이터 양이다. CPU는 역량의 한계에 도달했고, 그래서 GPU가 출현하게 된 것이다.

GPU는 게이밍 가속이라는 원래의 역할에서 거의 모든 것을 가속하는 것으로 역할이 확대됐다. 엔비디아는 인공 지능의 대명사가 될 정도로 능숙하게 변신했다. AI는 방대한 양의 데이터 병렬 처리를 요구하는 프로세스다. 그리고 병렬화될 수 있는 다른 작업도 있다. AMD도 후발주자지만, 엔비디아는 이미 저 멀리 앞서나가고 있다. 

코어에 있어서는 아예 비교조차 되지 않는다. 제온 CPU는 최대 22개 코어를 가진다. 그러나 AMD 에픽은 32개 코어다. 엔비디아 볼타 아키텍처는 5,120개의 코어를 갖는다. 이제 5,000 개 이상의 코어가 데이터 상에서 병렬로 실행되는 것을 상상해보라. 왜 GPU가 대형 컴퓨트 프로젝트에서 그렇게 인기를 끄는지 분명해질 것이다. 

즉, 이제 새로운 데이터베이스 종류가 출현한 것이다. GPU와 이의 거대한 병렬 처리 능력을 지원하고 수용하기 위해 처음부터 새롭게 코딩되는 데이터베이스다. 데이터 처리, 애널리틱스, 실시간 빅데이터는 새로운 차원으로 격상된다. 일반 CPU로 구동되는 데이터베이스가 처리할 수 없는 데이터 세트를 담당하기 때문이다.  
 

GPU 데이터베이스의 정의 

GPU 데이터베이스의 개념은 매우 단순하다. GPU의 병렬 처리를 이용해 데이터의 처리 속도를 높인다. GPU는 SQL 질의 처리 가속에 이상적이다. SQL은 데이터세트의 모든 행에 대해 동일한 작업을–대개 검색– 수행하기 때문이다. 

그러나, 오라클 데이터베이스를 호스팅하는 서버에 엔비디아 테슬라 카드를 그냥 여러 개 집어 넣을 수 있는 것은 아니다. GPU 데이터베이스는 SQL 조인(JOIN) 연산부터 시작해, 병렬 프로세싱을 수행하도록 처음부터 새롭게 설계되고 코딩되었다. 

조인 구문은 데이터베이스의 여러 테이블로부터 열(columns) 사이의 관계를 설정하고, 유의미한 애널리틱스를 수행하는 데 결정적이다. 레거시 RDBMS 시스템 상의 조인을 위한 전통적 설계 방식은 여러 해 전 단일 코어 CPU를 위해 설계된 것으로, GPU는 말할 것도 없고, CPU에 대해서도 신통치 않다. 

조인 외에도, GPU데이터베이스는 예컨대 아래와 같은 실질적 지원을 제공한다. 

•    하둡(Hadoop), 카프카(Kafka), H베이스(HBase), 스파크(Spark), 스톰(Storm) 등 유명 오픈 소스 프레임워크로의 커넥터
•    태블로(Tableau), 파워 BI(Power BI), 스팟파이어(Spotfire) 등 시각화 및 BI 툴과의 통합을 위한 ODBC 및 JDBC 드라이버 
•    C++, SQL, 자바, 노드제이에스(Node.js), 파이썬 등 유명 프로그래밍 언어와의 결합을 위한 API 
 

GPU 데이터베이스가 사용되는 곳 

따라서, GPU 데이터베이스는 오라클, SQL 서버, 또는 DB2와 실질적 경쟁 관계가 아니다. GPU 데이터베이스는 데이터 애널리틱스 판단을 지향한다. 즉, 방대한 양의 데이터로부터 실시간 결정을 내리려고 하지만, 데이터 양이 너무 많고, 또는 시각 분석 툴이 너무 느려서 불가능하다는 것을 알게 되는 지점을 노리는 것이다. 

GPU 데이터베이스 사업자는 오라클 또는 테라데이터 같은 OLTP 데이터베이스를 대체하려고 하지 않는다. 전통적인 RDBMS 워크로드를 표적으로 하는 대신 GPU 데이터베이스는 방대한 데이터 세트와 실시간 니즈를 갖는 OLAP/OLTP의 세계를 겨냥한다. GPU 데이터베이스는 배치 처리가 여러 시간, 또는 하룻밤에 걸쳐 진행되는 곳이 아니라, 실시간으로 또는 한 시간 단위로 데이터가 제시될 수 있는 곳에 존재한다. 

GPU 데이터베이스는 NoSQL이 안고 있는 많은 문제들을 해결할 것이지만, 그러면서도 사용자는 기존의 구조화된 쿼리 툴을 이용할 수 있다. NoSQL을 이용한다는 것은 SQL 툴을 전부 다시 코딩해야 한다는 의미지만, GPU 데이터베이스는 기존의 SQL 툴을 활용할 수 있다.

GPU 데이터베이스인 SQream을 이용하는 IT 컨설팅 회사인 데이터트렌드 테크놀로지(Datatrend Technologies)의 신생 기술 솔루션 설계자 스티브 워싱턴은 “앞으로 사람들은 다차원 시스템을 구축할 수 있고, 다양한 시나리오에서 데이터를 수집해 취합할 수 있음을 알게 될 것이다”라고 말했다. 그러면서 “의료 회사는 다수의 시스템에서 데이터를 수집하고, 데이터베이스 여럿에 걸친 애널리틱스를 행하기를 원한다. 과거에는 상호 참조가 불가능했고, 데이터베이스를 결합할 방법이 없었다”고 설명했다. 

아울러 워싱턴은 사기 및 위험 분석을 행하는 금융기관도 단순히 신용카드 검사를 하는 것에 불과했지만, 이제 다수 계좌에 걸쳐 검사를 행하고 싶어한다고 말했다. GPU의 위력을 바탕으로, 이들은 모든 정보원을 대상으로 단번에 상호참조를 할 수 있다. 

위치정보 서비스 회사인 스카이후크(Skyhook)의 지구 공간 담당 부사장인 리치 서턴은 옴니사이(OmniSci)라는 GPU 데이터베이스를 이용해 지리적 데이터세트로 CPU 기반 데이터베이스보다 훨씬 더 거대한 시각화를 할 수 있다. 서턴은 “전통적인 CPU 공간에서 1만 줄의 데이터 세트를 관찰해야 하지만, 이제는 지연 시간 없이 옴니사이에 10억 개의 행을 넣을 수 있다. 레이턴시가 크게 줄어든 데다 데이터 소비에서도 엄청난 혜택이 있다”고 강조했다. 

옴니사이의 CEO인 토드 매스턱은 한 고객이 옴니사이의 속도가 호기심 비용을 절감한다고 하더라고 말했다. 과거에는 불가능했던 질문을 이제는 할 수 있는 것이다. 한 금융서비스 고객은 전통적 데이터베이스에서 18시간이 걸렸던 질의 처리가 이제 1초도 채 걸리지 않는다고 말했다. 한 이동통신사는 수시간이 걸려서 실행되었던 쿼리에 응답을 받기까지 1초 미만이 걸린다고 말했다.  

GPU 데이터베이스를 위한 또 다른 장소는 하둡이 실패한 실시간 빅데이터다. GPU 데이터베이스 사업자인 SQream의 CEO인 에이미 갤은 하둡에서는 수십 페타바이트의 데이터 안에 있는 모든 기회를 찾아낸다는 빅데이터의 가능성이 달성될 수 없었다고 말했다. 

갤은 “스파크(Spark)는 데이터 이동 및 변환에 대단히 적합하다. 그러나 엄청난 양의 데이터를 처리하고 이동시켜야 한다면, 수십 만 개의 컴퓨터 노드를 처리해야 한다. 따라서 너무 버겁게 느껴질 것이다. 그러나 10 또는 15개 노드로 작업할 수 있다면 훨씬 더 효율적”이라고 말했다. 

워싱턴은 GPU 기반 서버는 단 하나의 캐비닛으로 CPU로 구동되는 다중 병렬 프로세싱(multiple-parallel-processing, MPP) 노드로 구성된 수많은 캐비닛에 해당하는 일을 할 수 있다고 말했다. 그는 “수많은 MPP 노드를 6개 노드로 대체할 수 있다. 각 노드에 2~4개의 GPU가 배치된다. 1,000만 달러 투자를 100만 달러 미만의 투자로 대체하는 것”이라고 말했다. 



X