GPU 기반 데이터베이스로 할 수있는 일

SQL 데이터베이스는 1970 년대로 거슬러 올라가며 1980 년대부터 ANSI 표준이되었지만, 그렇다고 기술이 가만히있는 것은 아닙니다. 여전히 변화하고 있으며 GPU 가속 데이터베이스와 같은 방법 중 하나입니다.

관계형 데이터베이스의 크기는 페타 바이트 이상으로 측정되는 데이터 세트로 증가했습니다. 처리 능력 향상을위한 64 비트 컴퓨팅과 테라 바이트의 메모리가 등장 했음에도 불구하고 처리해야 할 데이터는 여전히 많으며 CPU는 그 정도만 관리 할 수 ​​있습니다. 그것이 GPU가 등장한 곳입니다.

GPU는 게임 가속화라는 원래 임무에서 거의 모든 것을 가속화하는 것으로 바뀌 었습니다. Nvidia는 인공 지능, 병렬로 처리되는 방대한 양의 데이터와 잘 병렬화 될 수있는 다른 작업이 필요한 프로세스와 동의어가되기 위해 훌륭하게 선회했습니다. AMD는 캐치 업을 시작했지만 Nvidia는 긴 선두를 달리고 있습니다.

코어에 관해서는 가깝지 않습니다. Xeon CPU에는 최대 22 개의 코어가 있습니다. AMD Epyc에는 32 개의 코어가 있습니다. Nvidia Volta 아키텍처에는 5,120 개의 코어가 있습니다. 이제 데이터에서 병렬로 실행되는 5,000 개 이상의 코어를 상상해보세요. GPU가 대규모 컴퓨팅 프로젝트에 인기를 얻게 된 이유가 분명합니다.

따라서 GPU 및 대규모 병렬 처리 기능을 지원하고 수용하기 위해 처음부터 작성된 새로운 종류의 데이터베이스가 등장했습니다. 이러한 데이터베이스는 일반 CPU 기반 데이터베이스가 처리 할 수없는 데이터 세트를 처리 할 수 ​​있으므로 새로운 수준의 데이터 처리, 분석 및 실시간 빅 데이터를 가능하게합니다.

정의 된 GPU 데이터베이스

GPU 데이터베이스의 개념은 간단합니다. GPU의 병렬 처리를 사용하여 대규모 데이터 처리 가속화를 수행합니다. SQL은 세트의 모든 행에서 동일한 작업 (일반적으로 검색)을 수행하기 때문에 GPU는 SQL 쿼리 처리를 가속화하는 데 이상적입니다.

그러나 Oracle 데이터베이스를 호스팅하는 서버에 Nvidia Tesla 카드를 여러 개 넣는 것은 아닙니다. GPU 데이터베이스는 SQL JOIN작업을 시작으로 병렬 처리를 수행하도록 처음부터 설계 및 작성되었습니다 .

JOINs는 데이터베이스에있는 여러 테이블의 열간에 관계를 설정하며 의미있는 분석을 수행하는 데 중요합니다. JOIN레거시 RDBMS 시스템의 s에 대한 전통적인 설계 접근 방식은 수년 전에 단일 코어 CPU를 위해 설계되었으며 GPU보다 훨씬 적은 CPU에도 적합하지 않습니다.

JOINs 외에도 GPU 데이터베이스는 다음을 포함하여 상당한 수준의 지원을 제공합니다.

  • Hadoop, Kafka, HBase, Spark 및 Storm과 같은 인기있는 오픈 소스 프레임 워크에 대한 커넥터입니다.
  • Tableau, Power BI 및 Spotfire와 같은 기존 시각화 및 BI 도구와의 통합을위한 ODBC 및 JDBC 드라이버
  • C ++, SQL, Java, Node.js 및 Python과 같은 널리 사용되는 프로그래밍 언어로 바인딩하기위한 API입니다.

GPU 데이터베이스 사용 위치

그런 점에서 GPU 데이터베이스는 실제로 Oracle, SQL Server 또는 DB2와 경쟁하지 않습니다. GPU 데이터베이스는 기업이 방대한 양의 데이터에서 실시간으로 결정을 내리려고하지만 데이터가 너무 많거나 시각적 분석 도구가 너무 느려서 결정을 내릴 수없는 데이터 분석 의사 결정을 지향합니다.

GPU 데이터베이스 공급 업체는 스스로를 Oracle 또는 Teradata와 같은 OLTP 데이터베이스를 대체하는 것으로 보지 않습니다. 기존 RDBMS 워크로드를 대상으로하는 대신 GPU 데이터베이스는 데이터 세트가 방대하고 실시간이 필요한 OLAP / OLTP 세계와 빅 데이터를 목표로합니다. 몇 시간 또는 밤새 실행되는 배치 프로세스 대신 GPU 데이터베이스는 데이터를 실시간 또는 시간 단위로 제공 할 수있는 곳입니다.

GPU 데이터베이스는 NoSQL이 해결하려고하는 많은 문제를 해결해야하지만 기존의 구조화 된 쿼리 도구를 사용할 수 있도록합니다. NoSQL을 사용한다는 것은 모든 SQL 도구를 다시 작성하는 것을 의미하지만 GPU 데이터베이스는 기존 SQL 도구를 사용합니다.

GPU 데이터베이스 SQream을 사용하는 IT 컨설팅 업체 인 Datatrend Technologies의 신흥 기술 솔루션 아키텍트 인 Steve Worthington은“우리가 보게 될 것은 사람들이 다차원 시스템을 수행하고 여러 시나리오에서 데이터를 가져와 결합 할 수 있다는 것을 깨닫는 것입니다. "의료 회사는 여러 시스템에서 [데이터]를 가져 와서 데이터베이스 전반에 걸쳐 분석을 수행하기를 원합니다. 이전에는 상호 참조를 할 수 없었고 데이터베이스에 결합 할 방법이 없었기 때문입니다."

그는 또한 지금은 신용 카드 수표 만하고 있지만 여러 계정에 대해 수표를 원하는 금융 기관을 예로 들었습니다. GPU의 힘으로 모든 정보 소스를 한 번에 상호 참조 할 수 있습니다.

위치 서비스 제공 업체 인 Skyhook의 지리 공간 데이터 부사장 인 Rich Sutton은 OmniSci GPU 데이터베이스를 사용하여 CPU 기반 데이터베이스로 할 수있는 것보다 훨씬 더 큰 지리 데이터 세트 시각화를 제공합니다. "전통적인 CPU 공간에서 10,000 줄의 데이터 세트를 볼 필요없이 지연 시간이 거의 또는 전혀없이 OmniSci에 10 억 개의 행을로드 할 수 있습니다."라고 그는 말합니다. "대폭 감소 된 대기 시간으로 데이터 소비를 줄이는 데 많은 이점이 있습니다."

OmniSci의 CEO 인 Todd Mostak은 한 고객이 OmniSci의 속도가“호기심의 비용을 낮춰 준다”고 말했습니다. 그들은 이전에 주저했던 질문을합니다.” 한 금융 서비스 고객은 기존 데이터베이스에 대한 18 시간 처리 쿼리가 1 초 미만으로 줄어들 었다고 말한 반면, 통신 회사는 실행하는 데 몇 시간이 걸리는 쿼리가 이제 1 초 이내에 응답한다고 말했습니다.

GPU 데이터베이스를위한 또 다른 장소는 실시간 빅 데이터로, Hadoop이 부족합니다. GPU 데이터베이스 제공 업체 SQream의 CEO 인 Ami Gal은 수십 페타 바이트의 행 데이터에 존재하는 모든 기회를 찾는 빅 데이터의 약속 대부분이 너무 느려서 Hadoop에서 달성되지 못했다고 말합니다.

"Spark는 데이터 이동 및 변환에 매우 적합하지만 일단 엄청난 양의 데이터를 처리하고 이동해야하는 경우 수십만 개의 [컴퓨팅] 노드를 처리하기 시작하며 이는 대규모 데이터 세트에서 처리하기에는 너무 많은 것으로 보입니다. 그러나 10 개 또는 15 개의 노드로 할 수 있다면 훨씬 더 효율적입니다.”라고 그는 말합니다.

Worthington은 GPU 기반 서버가 하나의 캐비닛에서 많은 캐비닛의 CPU 구동 다중 병렬 처리 (MPP) 노드를 필요로하는 작업을 수행 할 수 있다고 말합니다. “MPP 노드 랙을 각각 2-4 개의 GPU가있는 6 개의 노드로 교체 할 수 있습니다. 이를 통해 1,000 만 달러의 투자를 100 만 달러 미만의 투자로 대체 할 수 있습니다.”라고 그는 말합니다.

GPU는 큰 지리적 데이터 세트를 시각화하는 Skyhook에도 중요합니다. “현장에 백만 대의 장치가 있고 1 분에 몇 번씩 위치를 핑하는 경우 하루에 20 억 개의 데이터 행을 사용하는 것입니다. 그것은 전통적인 데이터베이스에서 소비하는 것이 불가능합니다. 그것은 불가능합니다. 따라서 [a] GPU [데이터베이스]를 사용하면 해당 데이터를 사용할 수있는 위치로 이동할 수 있습니다.”라고 Sutton은 말합니다.

OmniSci를 채택하기 전에 Skyhook은 시각화를 위해 데이터의 일부만 취하여 데이터를 "피라미드 화"해야했습니다. 이제 Sutton은 전체 데이터 그림을 볼 수 있다고 말합니다. "저는 제 용도에 맞게 데이터를 형태 화하는 또 다른 현실적인 방법을 본 적이 없습니다."

GPU 데이터베이스 : 사용 가능한 항목

GPU 데이터베이스는 Brytlyt, SQream Technologies, OmniSci, Kinetica, PG-Strom 및 Blazegraph와 같은 회사에서 완전히 시작되는 현상입니다.

모두 작동 방식이 약간 다릅니다. 예를 들어 OmniSci는 데이터 시각화를 수행하는 반면 SQream은 Tableau와 같은 시각화 도구에 대한 커넥터를 사용하므로 각각을 개별적으로 평가하여 필요에 가장 적합한 것을 결정해야합니다.

분석 워크로드를위한 DB2의 특수 버전 인 DB2 Blu에서 일부 GPU 처리를 지원하는 IBM을 제외하고 RDBMS의 거물들은 아직 참여하지 않았습니다. Oracle과 TeraData는 모두 Nvidia와 협력하고 있다고 말했지만 아직 아무것도 제공하지 않았습니다. Microsoft는 SQL Server에서 GPU 가속을 지원하지 않습니다. SQream의 Gal은 모든 RDBMS 공급 업체가 제품에 GPU 지원을 추가하기 위해 노력하고 있지만 추가 정보가 없다는 소식을 들었습니다.