상용 GPU 데이터베이스 – Kinetica

GPU 가속화는 고성능 컴퓨팅에 혁명을 가져 왔습니다. 특히 재무 , 소매 , 물류 , 헬스케어/제약,  공공기관과 같은 업종에서 처리 집약적인 작업 부하에 대한 GPU 활용이 증가 하고 있습니다. GPU 가속은 머신러닝 , 딥러닝, 데이터 시각화 , 빠른 쿼리, 조인 및 행 단위 계산을 위한 새로운 가능성을 제시합니다.

GPU 데이터베이스가 요구 사항을 충족시킬 수 있는지 여부를 조사하고 있다면 전체 솔루션을 충족시키는 기능이 있는지 확인해야합니다. GPU 가속화 데이터베이스를 제공하는 여러 회사가 있으며, 이들이 어떻게 다른지, 조직의 요구에 어느 것이 적합한 지 완전히 이해하는 것은 어려울 수 있습니다. 의사 결정 프로세스를 돕기 위해 GPU DB가 어떻게 적용되는지에 대한 정보와 함께 GPU 가속 관계형 데이터베이스를 평가하는 데 도움이되는 체크리스트를 제공합니다.

 

 

1. 제품 완성도 및 기업 준비

GPU 데이터베이스를 선택하는 가장 중요한 측면 중 하나는 제품 완성도입니다. 병렬 처리의 이점에 직접 노출 될 수있는 다양한 GPU 호환 데이터베이스가 있지만 프로덕션 배포는 보다 강력한 기능을 필요로 합니다.

생산 가능한 데이터베이스는 하룻밤 사이에 구축되지 않으며 대기업 고객의 경우 기존 배치는 엔터프라이즈 기능이 테스트되고 사용할 수 있다는 제공합니다.

Kinetica는 GPU의 병렬 처리 성능과 벡터화된 메모리 구조, SIMD 처리를 사용하는 많은 코어 장치를 활용하도록 처음부터 작성된 최초의 데이터베이스 입니다. Kinetica는 테러리스트 및 기타 국가 안보 위협을 실시간으로 추적하고 분석하기 위해 US Army Intelligence and Security Command의 요구로 개발되었습니다. 제품 개발은 2009년에 시작되어 이 솔루션은 2012년 미 육군 INSCOM 내 실 사용 환경에 투입되었습니다.

최근 Kinetica는 USPS, GSK, PG & E, ScotiaBank 및 기타 금융, 소매 및 물류 회사와 같은 회사에서 사용되고 있습니다.

2. GPU 데이터베이스와 상호 작용
2-1. SQL 지원

SQL 지원은 기업의 IT 스택 전반에 걸쳐 통합을 수행하고 비즈니스 사용자, 분석가, 개발자, 데이터 과학자, DBA 및 시스템 설계자가 기존 기술을 활용하여 데이터에 액세스하고 분석 할 수 있게 하는 관계형 데이터베이스의 독창적인 기능입니다.

SQL을 통해 GPU 데이터베이스와 작업할 경우, 다음을 위해 ANSI SQL 표준 및 시멘틱을 지원하는 솔루션이 필요합니다.

  • CRUD 작업 :전체 데이터 변경 및 포괄적인 데이터 관리를위한 작성, 읽기, 업데이트 및 삭제 작업을 지원해야 합니다.

  • UNION, DISTINCT, GROUP BY, EXCEPT, JOINS와 같은 SQL 구문지원 : inner, full, left, right와 같은 모든 JOIN 유형을 지원해야 합니다. 단 두개의 테이블이 아닌 Multi-테이블을 지원해야 하며, 단 하나의 컬럼이 아닌 Multi-컬럼을 지원해야 합니다.

  • SUBQUERY :서브쿼리는 SELECT 문 내에 중첩된 쿼리입니다. 이들은 더 나은 유연성과 표현력, 간단한 SQL 문을 제공합니다. GPU 데이터베이스가 SUBQUERY를 지원하는지 확인하여 복잡한 비즈니스 로직을 쉽게 표현할 수 있도록하십시오.

2-2. API

SQL은 간단하지만 개발자, 프로그래머, 데이터 과학자와 같은 비즈니스 분석가는 RESTful API를 사용하여 보다 풍부한 프로그래밍 방식의 데이터베이스 액세스를 원합니다.

SQL 또는 원시 REST API를 통해 Kinetica와 상호 작용할 수 있습니다. 이를 통해 데이터베이스에 대한 보다 정교한 쿼리와 DB 작업을 수행 할 수 있습니다. 언어별 바인딩은 Java, Python, C ++, JavaScript, Node.js에서 사용할 수 있습니다. Kinetica API와 커넥터는 오픈 소스이며 GitHub에서 사용할 수 있습니다.

3. 커넥터

모든 데이터베이스는 궁극적으로 함께 모여 완전한 솔루션을 구축해야하는 도구의 생태계에 존재합니다. 적합한 커넥터를 사용하면 완전한 솔루션을 쉽게 구축할 수 있습니다.

Kinetica에는 Apache Hadoop, NiFi, Spark, Spark Streaming, Storm, Kafka용 커넥터가 포함되어 있습니다.

또한 Kinetica는 인증된 ODBC/JDBC 커넥터를 통해 Tableau , MicroStrategy, Power BI와 같은 널리 사용되는 BI 도구에 연결할 수 있습니다. Kinetica의 커넥터와 완벽한 SQL-92 쿼리 지원을 통해 Kinetica를 빠른 속도로 가속화된 BI의 대체 데이터 소스로 교체하는 것은 쉽습니다.

4. 견고성 및 보안성
4-1. 시스템 RAM/VRAM

GPU가 제공하는 고속 처리를 지원하기 위해 모든 GPU 가속 데이터베이스는 데이터를 메모리에 저장합다. 이 작업은 시스템 메모리나 GPU 자체의 vRAM에서 할 수 있습니다. vRAM에 데이터를 저장하면 전송 시간이 매우 빨라진다는 이점이 있습니다. 단점은 vRAM이 비싸고 용량이 제한된다는 것입니다. 현재 NVIDIA P100는 16GB 밖에 없습니다.

Kinetica는 시스템 RAM과 vRAM을 모두 사용할 수 있습니다. 테라바이트의 데이터인 경우 시스템 RAM을 사용하여 데이터베이스를 훨씬 더 큰 볼륨으로 확장 할 수 있습니다. 주 메모리에 저장된 데이터는 GPU에 효율적으로 공급될 수 있으며 이 프로세스는 NVLink 아키텍처를 사용하면 더욱 효율적입니다.

 

 

4-2. 보안

엔터프라이즈급 보안은 모든 데이터와 분석 솔루션을 채택하는 비즈니스에 매우 중요합니다. 고객 세부 정보, 주민등록번호, 신용카드 번호와 같은 중요한 데이터를 저장, 관리, 분석하려면 데이터 유출 및 부주의한 정보 사용을 방지하기위한 포괄적인 보안을 제공하는 솔루션이 필요합니다.

GPU 데이터베이스의 엔터프라이즈급 보안 에는 다음이 포함되어야 합니다.

  • 인증 : 인증을 위한 Open LDAP, Kerberos,  Active Directory와 통합

  • 권한 부여 : 데이터베이스와 테이블의 권한 부여를 위한 RBAC (역할 기반 액세스 제어)를 지원

  • 암호화  : SSL, PLS, AES-256으로 데이터 암호화 지원

4-3. 데이터 지속성

메모리 내 데이터 저장의 이점은 속도입니다. 약점은 전원이 나가거나 데이터베이스가 손상될 경우 데이터가 손실될 수 있다는 것입니다. 데이터베이스가 메모리 내 데이터에서 작동하고 디스크에 데이터를 보관하여 신뢰성을 확보 할 수 있다면 아주 십게 지속성을 확보하게 됩니다.

Kinetica는 GPU VRAM과 시스템 메모리에서 데이터를 관리 할 뿐만 아니라 데이터를 디스크에 유지할 수 있습니다. 다른 많은 GPU 데이터베이스에는 지속성이 없으므로 GPU 데이터베이스가 중지되면 데이터가 사라집니다. 원본 소스에서 데이터를 다시 로드해야합니다.

4-4. 다중 테이블 / 다중 컬럼 조인

데이터베이스의 GPU 가속을 살펴보면 데이터가 여러 테이블에 분산되어 있는 더 복잡한 스키마가 있음을 알 수 있습니다. 이 시나리오에서는 빠른 JOIN을 수행하는 기능이 필수적입니다. 다른 많은 GPU 데이터베이스는 조인을 수행하는 능력이 부족합니다. Kinetica를 대체하는 가장 가까운 GPU 데이터베이스 일지라도 두 테이블 만 지원하며 각 테이블에 대해 하나의 컬럼이 있는 JOIN만 지원합니다. 반면 Kinetica는 여러 컬럼과 테이블에서 left, right, inner, outer JOINS에 대한 전체 JOIN 지원을 제공합니다.

4-5. 데이터 무결성

데이터 무결성은 관계형 데이터베이스에서 데이터의 정확성을 보장하는 데 중요합니다. 데이터 정확성을 보장 할 수 없는 기술을 비즈니스에서 사용하지 않아야 합니다. Kinetica는 기본 키와 같은 데이터 무결성 구조를 지원합니다.

4-6. 스케일-아웃 분산 아키텍처

데이터의 양이 증가하고 처리 요구가 증가함에 따라 분석 시스템의 규모를 평가해야합니다.

GPU 카드 추가, 메모리, 고급 하드웨어 추가로 지금까지는 확장성을 올릴 수 있습니다. 데이터 및 작업 부하를 여러 시스템에 분산시킬 수 있는 데이터베이스는 경제적으로 하드웨어를 제한하지 않고 확장 할 수 있습니다. 수평 확장 아키텍처를 살펴볼 때 유의해야 할 몇 가지 사항이 있습니다.

  • 마스터 노드 또는 완전 분산/단순 분산 시스템은 단일 사전 노드를 사용하여 메타 데이터를 중앙에서 관리합니다. 이로 인해 리프 노드가 조회 요청, 특히 JOIN의 마스터 노드를 압도하는 성능 병목 현상이 발생할 수 있습니다. 단일 마스터 노드는 또한 단일 장애 지점을 유발합니다. 보다 견고한 솔루션은 조회 요청을 전체 클러스터에 분산시킬 수있는 분산 메타 데이터로 헤드리스 처리 기능을 제공합니다. 이러한 아키텍처는 분산 처리를 위해 기본적으로 구축된 시스템에서 사용됩니다. Kinetica는 클러스터된 다중 노드 시스템을 사용합니다. 이 아키텍처를 통해 Kinetica는 클러스터의 모든 노드에 데이터를 수집하여 Kinetica가 대량의 IoT 데이터 스트림이나 운영 시스템에서 신속한 작업을 필요로하는 사용 사례에 이상적입니다.

  • 분산 및 병렬 데이터 수집 : 분산 데이터베이스는 알고리즘 공유를 사용하여 여러 노드에서 분산 방식으로 데이터를 투영하고 헤드리스 병렬 처리를 활용하여 빠른 수집과 쿼리 성능을 제공합니다. 병목 현상 없이 완벽한 병렬 처리로 데이터를 수집, 배포 , 처리할 수 ​​있도록 ETL 도구에 의존하지 않고 쉐이딩을 지능적으로 관리하는 데이터베이스 솔루션을 선택하십시오.

4-7. 고가용성

클러스터 내의 개별 노드가 실패하면 어떻게 될까요? 전체 클러스터가 오프라인이되는 경우, 타사의 도구로 손상을 줄일 수는 있지만 보안, 업그레이드, 버전 비호환성, 고급 저장소 및 추가 기술로 인한 추가 위험과 문제가 발생합니다. 내장된 HA와 자동화된 복제로 내결함성을 보장하고 시스템을 보다 쉽게 ​​유지 관리 할 수 ​​있습니다. Kinetica는 Active/Active HA 및 클러스터 간의 자동 복제를 제공합니다. 이렇게하면 주어진 클러스터에서 단일 장애 지점을 제거하고 장애로부터 안정적이고 신속하게 복구 할 수 있습니다. USPS는 Kinetica를 2014년 11월에 데이터베이스를 최초 실사용한 이후 1초도 되지 않아 99.999%의 가용성을 달성했습니다.  관리자는 Kinetica를 계속 서비스를 유지하면서 패치, 업그레이드를 수행 할 수 있으며 매일 피크 시간대에 시스템에 충돌하는 동시 세션수가 15,000개를 초과하는 결과를 수집, 처리하고 동시에 서비스를 제공 할 수 있습니다.

5. 고급 기능
5-1. 데이터베이스 내 분석

데이터에 대한 질문이 점점 복잡 해짐에 따라 데이터 과학자들은 알고리즘과 모델링을위한 고급 도구를 모색합니다. 사용자정의 함수(UDF) 프레임워크는 데이터베이스에서 직접 데이터를 실행하는 사용자정의 알고리즘 작성과 코딩을 할 수 있습니다. 이미 계산 집약적인 작업 부하, 특히 머신러닝을 위해 GPU 가속 데이터베이스의 데이터베이스 내 분석은 이전에 생각 조차 할 수 없었던 새로운 기회를 열었습니다.

Kinetica 내의 UDF는 데이터베이스 내에서 사용자정의 계산 W 데이터 처리를 실행할 수 있습니다. 본질적으로 이는 고급 연산 – 그리드 분석을 수행하는 매우 유연한 수단을 제공합니다. BI와 AI 작업 부하는 동일한 GPU 가속 데이터베이스 플랫폼에서 함께 실행할 수 있습니다. 사용자정의 함수는 C ++, Java, Python으로 작성할 수 있습니다. 또한 Kinetica에는 머신러닝 및 딥러닝용 사용사례와 함께 번들로 TensorFlow가 함께 제공됩니다. GlaxoSmithKline, ScotiaBank와 세계 최대 유통 업체 중 하나인 고객은 고급 예측 분석을 위해 UDF 프레임 워크를 활용합니다.

5-2. 지오메트릭 공간 지원

많은 최신 스트리밍 데이터세트에는 시간 및 위치 데이터가 포함됩니다. 이러한 유형의 데이터는 시기 적절한 쿼리와 대규모 데이터세트의 시각화를 위해 애널리스트에게 고유한 과제를 제기합니다. 이러한 지형 공간 데이터세트에 대한 쿼리는 GPU의 병렬 처리에 이상적이지만 지형 공간 작업 부하를 염두에 두고 시스템을 구축해야합니다. 지리적 태그가 지정된 데이터 작업에 관련된 작업이 필요한 경우 다음 기능을 확인하십시오.

  • 기본 지리 공간 객체 지원 : 대부분의 시스템에서 개별 지점을 저장할 수 있습니다. 고급 시스템은 점, 선, 다중 선, 다각형, 다중 다각형, 지오메트리 모음, 트랙, 레이블과 같은 보다 복잡한 지형 객체를 지원해야 합니다. Kinetica는 복잡한 벡터 데이터 유형을 지원하고 지형 공간 데이터를 Geospatial 표준인 Well Known Text (WKT)로 저장합니다.

  • 기본 지리 공간 함수 : 지형 공간 데이터를 사용하면 지정되거나 임의의 영역 내에서 패턴을 찾아야합니다. 이러한 분석을 위해 별도의 지리 공간 시스템으로 데이터를 내보내는 것은 번거롭고 느립니다. GEO-JOIN, 필터, 집계, geofencing, 비디오 생성과 같은 지형 공간 기능을 실행할 수 있는 데이터베이스를 찾아 신속하게 고급 분석을 수행하십시오.

  • Geo Visualization : 대규모 데이터세트를 시각화하는 것은 웹 기반 클라이언트의 복잡한 과제입니다. Kinetica는 지리 공간 쿼리의 결과를 히트맵 또는 벡터 피쳐 오버레이로 신속하게 렌더링 할 수있는 지형 공간 시각화 파이프 라인을 포함합니다. Kinetica는 OGC 표준 웹 서비스인 Web Mapping Service(WMS)와 Keyhole Markup Language(KML)를 지원합니다. Kinetica는 또한 복잡한 기호 및 주석을 렌더링하는 기능을 지원합니다.

Kinetica의 엔터프라이즈급 GPU 데이터베이스는 수 년 동안 생산되어 왔으며 대규모 배포에서도 신뢰할 수 있고 입증되었습니다. 모든 것은 업계 표준 하드웨어를 사용하는 온 프레미스 또는 클라우드의 GPU 인스턴스를 사용하여 고객을 위한 손쉬운 배포를 위해 단일 기술로 단단히 결합됩니다.

원문 :

https://www.kinetica.com/blog/choosing-gpu-analytics-database/