US-Start-up
19.08.2019, 10:16 Uhr
Wie Kinetica unvorhersehbare Daten analysiert
Kinetica ist ursprünglich aus einem Auftrag des US-Militärs und der NSA heraus entstanden. Heute kombiniert das Start-up GPUs und CPUs für seine schnelle In-Memory-Datenbank. Das Unternehmen befasst sich mit «Extreme Data», unvorhersehbaren Daten jenseits von Big Data.
Digitalisierung, Industrie 4.0, Big Data und Analytics sind nur einige der Themen, die seit Jahren von vielen Herstellern promotet werden. Auch wenn etliches übertrieben wirkt angesichts der klassischen Mechanismen des Produzierens und Verkaufens von Gütern und Dienstleistungen, die ihre Gültigkeit behalten, gibt es tatsächlich zahlreiche neue Ansätze. Sie zeigen, wie man mehr aus seinen Tag für Tag, Stunde für Stunde wachsenden Datenbergen herausholen kann.
Ein Beispiel für einen solchen innovativen technologischen Ansatz ist das Start-up Kinetica, das erst 2016 in den USA gegründet wurde und doch mit seiner Lösung schon bei zahlreichen renommierten Kunden auch in anderen Regionen der Welt im Einsatz ist, darunter Konzerne wie GlaxoSmithKline, PG&E und der U.S. Postal Service, bei dem täglich mehr als 200'000 Paketsendungen und die Touren der Fahrzeuge aufgezeichnet und analysiert werden.
Bei Kinetica spricht man von «Extreme Data», die über traditionelle Daten und Big Data hinausgehen, und versteht darunter «unvorhersagbare» Daten, die erzeugt werden von Menschen oder Maschinen, in strukturierter oder unstrukturierter Form, und die statisch oder für Daten-Streaming verwendet werden und langfristig aufbewahrt werden müssen.
Die Anfänge von Kinetica liegen im Jahr 2009. Die US-Armee und die NSA waren auf der Suche nach einer Software, die geeignet war, verdächtige Personen und besonders Terroristen in Echtzeit aufzuspüren und in ihrem Verhalten digital zu verfolgen. Dazu erteilten sie den Entwicklern Amit Vij und Nima Negahban einen Consulting-Auftrag. Weil die beiden auf dem Markt nichts Passendes fanden, beschlossen sie, eine neue Datenbank zu bauen. Daraus ging schliesslich 2016 die kommerzielle Variante der Kinetica-Datenbank hervor.
Die technische Basis
Kinetica hat in Konkurrenz zu Oracle oder SAP HANA eine schnelle In-Memory-Datenbank entwickelt, die auf Basis preisgünstiger Standard-Hardware und zusammen mit einer Nvidia-GPU läuft. Laut CEO Vij ist die Lösung 100-mal schneller als traditionelle Datenbanken bei lediglich «einem Zehntel von deren Hardware-Kosten».
GPUs (Graphics Processing Units) waren ursprünglich für mathematische Berechnungen zur Wiedergabe von Bildern und Grafiken entwickelt worden, um die CPUs (Central Processing Units) zu entlasten, die solchen Aufgaben oft nicht gewachsen waren. Die Architektur von GPUs ist auf parallele Prozesse ausgelegt und kann deshalb viele Berechnungen zur gleichen Zeit vornehmen. Zum Marktführer auf diesem Sektor hat sich durch viele Innovationen Nvidia enwickelt, das heute zu den finanziell erfolgreichsten IT-Konzernen zählt und bereits mehr als zehn andere Hersteller übernommen hat, zuletzt im März 2019 den israelischen Chip-Produzenten Mellanox Technologies für 6,8 Milliarden Dollar in Cash. Nvidia ist damit zu einem der wenigen ernsthaften Konkurrenten des Chip-Marktführers Intel aufgestiegen.
Die GPU-Revolution
Kinetica setzt Nvidias CUDA-APIs für seine GPU-Karten ein, die mehrere Tausend Processing Cores enthalten und hochperformante Aufgaben erledigen können. Aus Sicht von Kinetica haben GPU-Datenbanken eine Revolution eingeläutet: «GPU-beschleunigte Datenbanken haben den Bedarf an spezialisierten Datenarchitekturen reduziert, mit denen man die Daten für Suchoperationen (Queries) restrukturieren und optimieren musste. Diese neuen Datenbanken sind besonders für die Arbeit mit Datensätzen bei IoT (Internet of Things), Webdaten und Transaktionsdaten für Unternehmen geeignet, bei denen Muster und Einblicke schnell erkannt werden müssen, und das möglichst zeitnah. Selbst NoSQL-Ansätze sind mit komplexen und zeitnahen Suchanfragen und Berechnungen überfordert. Machine Learning und Predictive Analytics sind weitere Anwendungsgebiete, bei denen fortgeschrittene Tools für Algorithmen und Modelle gefragt sind. Mit ‹User-defined Functions› (UDF) können Algorithmen und Codes für die schnelle Verarbeitung in den Datenbanken angepasst werden. Solche UDFs können in C++, Java oder Python geschrieben werden.»
Die Analysten von 451 Research beschreiben 2017 in dem Paper «Think outside the CPU: the emergence of the GPU-Powered database» den Unterschied zwischen CPU und GPU so: «Manchmal werden CPUs und GPUs dargestellt, als sei der eine Ansatz besser als der andere. In Wirklichkeit sind die beiden Architekturen sehr unterschiedlich, sodass die Gefahr besteht, Äpfel mit Birnen zu vergleichen. Allgemein gesagt ist eine CPU ein sehr guter, leistungsfähiger Prozessor, der eine Reihe von komplexen Aufgaben bewältigen kann. Eine GPU ist auf der anderen Seite ein spezialisierter Prozessor, der bestimmte Aufgaben sehr gut abarbeiten kann, aber nicht alle.»
CPUs gehen in der Regel seriell vor, sodass Aufgaben in einer bestimmten Reihenfolge erledigt werden. GPUs dagegen verarbeiten Daten parallel, wodurch bestimmte Arbeiten gleichzeitig durchgeführt werden können. GPUs sind daher nicht pe se besser als CPUs – es kommt auf den Einsatzzweck an. 451 Research zufolge können GPUs bei zusammengesetzten Aufgaben performanter sein, während sie bei Updates und Löschaufgaben wesentlich langsamer sind als CPUs.
Das Besondere an Kinetica ist vor allem die hybride Architektur aus GPU und CPU und deren Zusammenspiel mit dem Kernstück von Kinetica, einer vektorisierten säulenartigen Datenbank, die speziell für Analytics-Aufgaben entwickelt worden ist. Daten, die bei Kinetica ankommen, gehen zuerst in den Memory-Bereich und werden mit Beginn einer Query automatisch auf CPUs und GPUs verteilt. Die Daten können jedoch auch zunächst dauerhaft auf einer Festplatte abgelegt werden, bevor sie in die MMP-Architektur (Massively Parallel Processing) zur Analyse eingepflegt werden.