Was eine GPU-basierte Datenbank für Sie tun kann

Die SQL-Datenbank stammt aus den 1970er Jahren und ist seit den 1980er Jahren ein ANSI-Standard. Dies bedeutet jedoch nicht, dass die Technologie stillsteht. Es ändert sich immer noch und eine dieser Möglichkeiten als GPU-beschleunigte Datenbanken.

Relationale Datenbanken sind zu Datensätzen gewachsen, die in Petabyte und darüber hinaus messen. Selbst mit dem Aufkommen von 64-Bit-Computing und Terabyte Speicher für eine verbesserte Verarbeitung müssen immer noch viele Daten durchgekaut werden - und CPUs können nur so viel verwalten. Hier sind GPUs ins Spiel gekommen.

GPUs haben sich von ihrer ursprünglichen Mission, das Spielen zu beschleunigen, zu fast allem gewandelt. Nvidia hat sich meisterhaft zum Synonym für künstliche Intelligenz entwickelt, ein Prozess, der große Mengen parallel verarbeiteter Daten und andere Aufgaben erfordert, die gut parallelisiert werden können. AMD fängt an, Aufholjagd zu spielen, aber Nvidia hat einen langen Vorsprung.

Wenn es um Kerne geht, ist es nicht einmal nah. Xeon-CPUs haben maximal 22 Kerne. AMD Epyc hat 32 Kerne. Die Nvidia Volta-Architektur verfügt über 5.120 Kerne. Stellen Sie sich jetzt mehr als 5.000 Kerne vor, die parallel auf Daten ausgeführt werden, und es ist klar, warum GPUs für massive Computerprojekte so beliebt geworden sind.

So ist eine neue Klasse von Datenbanken entstanden, die von Grund auf neu geschrieben wurden, um GPUs und ihre massiven Parallelverarbeitungsfunktionen zu unterstützen und zu nutzen. Diese Datenbanken ermöglichen neue Ebenen der Datenverarbeitung, Analyse und Echtzeit-Big Data, da sie Datensätze verarbeiten können, die normale CPU-basierte Datenbanken einfach nicht können.

Die GPU-Datenbank definiert

Das Konzept einer GPU-Datenbank ist einfach genug: Es nutzt die Parallelität von GPUs, um eine massive Beschleunigung der Datenverarbeitung durchzuführen. Die GPU ist ideal geeignet, um die Verarbeitung von SQL-Abfragen zu beschleunigen, da SQL in jeder Zeile des Satzes dieselbe Operation ausführt - normalerweise eine Suche.

Sie legen jedoch nicht einfach ein paar Nvidia Tesla-Karten auf den Server, auf dem sich eine Oracle-Datenbank befindet. GPU-Datenbanken wurden von Grund auf für die parallele Verarbeitung entwickelt und geschrieben, beginnend mit SQL- JOINOperationen.

JOINs Stellen Sie eine Beziehung zwischen Spalten aus mehreren Tabellen in einer Datenbank her und sind Sie für die Durchführung aussagekräftiger Analysen von entscheidender Bedeutung. Herkömmliche Entwurfsansätze für JOINs auf älteren RDBMS-Systemen wurden vor Jahren für Single-Core-CPUs entwickelt und eignen sich nicht einmal für eine CPU, geschweige denn für eine GPU.

Über JOINs hinaus bieten GPU-Datenbanken ein erhebliches Maß an Unterstützung, einschließlich:

  • Konnektoren zu gängigen Open Source-Frameworks wie Hadoop, Kafka, HBase, Spark und Storm.
  • ODBC- und JDBC-Treiber für die Integration in vorhandene Visualisierungs- und BI-Tools wie Tableau, Power BI und Spotfire
  • APIs für Bindungen mit gängigen Programmiersprachen wie C ++, SQL, Java, Node.js und Python.

Verwendung einer GPU-Datenbank

In dieser Hinsicht konkurrieren GPU-Datenbanken nicht wirklich mit Oracle, SQL Server oder DB2. GPU-Datenbanken sind darauf ausgerichtet, Datenanalyseentscheidungen zu treffen, bei denen Unternehmen versuchen, aus großen Datenmengen in Echtzeit eine Entscheidung zu treffen, dies jedoch nicht tun können, weil zu viele Daten vorhanden sind oder weil visuelle Analysetools zu langsam sind.

Die Anbieter von GPU-Datenbanken verstehen sich nicht als Ersatz für Oracle oder eine OLTP-Datenbank wie Teradata. Anstatt auf herkömmliche RDBMS-Workloads abzuzielen, zielen GPU-Datenbanken auf die OLAP / OLTP-Welt und Big Data ab, wo die Datenmengen riesig sind und der Bedarf in Echtzeit besteht. Anstelle von Batch-Prozessen, die über Stunden oder über Nacht ausgeführt werden, können in GPU-Datenbanken Daten in Echtzeit oder stündlich dargestellt werden.

Die GPU-Datenbank sollte viele Probleme lösen, die NoSQL zu lösen versucht, aber Sie können Ihre vorhandenen strukturierten Abfragetools verwenden. Wenn Sie NoSQL verwenden, müssen Sie alle Ihre SQL-Tools neu schreiben. GPU-Datenbanken verwenden jedoch vorhandene SQL-Tools.

„Wir glauben, dass die Leute erkennen werden, dass sie mehrdimensionale Systeme erstellen und Daten aus mehreren Szenarien kombinieren können“, sagt Steve Worthington, aufstrebender Lösungsarchitekt für Technologien bei Datatrend Technologies, einem IT-Beratungsunternehmen, das die GPU-Datenbank SQream verwendet. "Medizinische Unternehmen möchten [Daten] aus mehreren Systemen entnehmen und datenbankübergreifende Analysen durchführen, da sie zuvor keine Querverweise erstellen konnten und keine Möglichkeit hatten, sich den Datenbanken anzuschließen."

Er zitiert auch Finanzinstitute, die Betrugs- und Risikoanalysen durchführen, bei denen möglicherweise nur Kreditkartenprüfungen durchgeführt werden, die jedoch über mehrere Konten hinweg überprüft werden sollen. Mit der Leistung der GPU können sie auf alle diese Informationsquellen gleichzeitig verweisen.

Für Rich Sutton, Vice President für Geodaten bei Skyhook, einem Ortungsdienstleister, bietet die Verwendung der OmniSci-GPU-Datenbank eine viel umfassendere Visualisierung geografischer Datensätze als mit einer CPU-basierten Datenbank. „Ich kann eine Milliarde Zeilen mit geringer bis keiner Latenz in OmniSci laden, anstatt einen Datensatz mit 10.000 Zeilen in einem herkömmlichen CPU-Bereich betrachten zu müssen“, sagt er. "Es ist für mich von mehreren Größenordnungen von Vorteil, den Datenverbrauch bei massiv reduzierter Latenz zu reduzieren."

Todd Mostak, CEO von OmniSci, sagte, ein Kunde habe ihm gesagt, dass die Geschwindigkeit von OmniSci „die Kosten für Neugier senkt. Sie stellen Fragen, die sie zuvor zurückgehalten haben. “ Ein Finanzdienstleistungskunde teilte ihm mit, dass eine 18-stündige Verarbeitungsabfrage in einer herkömmlichen Datenbank auf eine Subsekunde gesunken sei, während ein Telekommunikationsunternehmen ihm mitteilte, dass Anfragen, deren Ausführung Stunden dauerte, jetzt in weniger als einer Sekunde beantwortet werden.

Ein weiterer Ort für GPU-Datenbanken sind Big Data in Echtzeit, bei denen Hadoop zu kurz gekommen ist. Ami Gal, CEO des GPU-Datenbankanbieters SQream, sagt, dass ein Großteil des Versprechens von Big Data - alle Möglichkeiten zu finden, die in zig Petabyte Zeilendaten liegen - auf Hadoop nicht erreicht wurde, weil es zu langsam war.

„Spark ist ziemlich gut für das Verschieben und Transformieren von Daten geeignet. Sobald Sie jedoch große Datenmengen verarbeiten und verschieben müssen, müssen Sie sich mit Hunderttausenden von [Rechen-] Knoten befassen. Dies wird als zu viel angesehen, um in großen Datenmengen zu verarbeiten. Aber wenn Sie es mit zehn oder 15 Knoten schaffen, ist das viel effizienter “, sagt er.

Laut Worthington können GPU-basierte Server in einem Gehäuse die Anforderungen vieler CPUs an MPP-Knoten (Multiple Parallel Parallel Processing) erfüllen. „Wir können Racks mit MPP-Knoten durch ein halbes Dutzend Knoten mit jeweils zwei bis vier GPUs ersetzen. Damit können wir eine Investition von 10 Millionen US-Dollar durch eine Investition von weniger als 1 Million US-Dollar ersetzen “, sagt er.

Die GPU ist auch für Skyhook wichtig, das große geografische Datensätze visualisiert. „Wenn Sie ein paar Mal pro Minute eine Million Geräte vor Ort haben und einen Ping-Standort haben, sprechen Sie von 2 Milliarden Datenzeilen pro Tag. Das ist in einer herkömmlichen Datenbank nicht möglich. Es ist einfach nicht möglich. Mit [einer] GPU [Datenbank] gelangen Sie also dahin, wo Sie diese Daten nutzen können “, sagt Sutton.

Vor der Einführung von OmniSci musste Skyhook Daten „pyramidieren“ und nur Segmente davon zur Visualisierung verwenden. Jetzt, sagt Sutton, kann es das gesamte Datenbild betrachten. "Ich habe noch nie einen anderen realistischen Weg gesehen, um Daten für meine Art der Nutzung in Form zu bringen."

GPU-Datenbanken: Was ist verfügbar?

GPU-Datenbanken sind ein Startup-Phänomen mit Unternehmen wie Brytlyt, SQream Technologies, OmniSci, Kinetica, PG-Strom und Blazegraph.

Alle unterscheiden sich geringfügig in ihrer Funktionsweise. OmniSci führt beispielsweise die Visualisierung von Daten durch, während SQream Konnektoren für Visualisierungstools wie Tableau verwendet. Daher muss jedes einzeln bewertet werden, um die beste Anpassung für Ihre Anforderungen zu ermitteln.

Die großen Namen in RDBMS müssen erst noch berücksichtigt werden, mit Ausnahme von IBM, das einige GPU-Verarbeitungen in DB2 Blu unterstützt, einer speziellen Version von DB2 für Analytics-Workloads. Oracle und TeraData haben beide gesagt, dass sie mit Nvidia zusammenarbeiten, aber es ist noch nichts daraus geworden. Microsoft unterstützt die GPU-Beschleunigung unter SQL Server nicht. Gal von SQream sagte, er habe gehört, dass alle RDBMS-Anbieter daran arbeiten, ihren Produkten eine Art GPU-Unterstützung hinzuzufügen, aber keine weiteren Informationen hätten.