Rückblick: Kinetica analysiert Milliarden von Zeilen in Echtzeit

Im Jahr 2009 waren die zukünftigen Gründer von Kinetica leer, als sie versuchten, eine vorhandene Datenbank zu finden, die dem Geheimdienst- und Sicherheitskommando der US-Armee (INSCOM) in Fort Belvoir (Virginia) die Möglichkeit geben könnte, Millionen verschiedener Signale in Echtzeit zu verfolgen nationale Sicherheitsbedrohungen bewerten. Deshalb haben sie von Grund auf eine neue Datenbank aufgebaut, die sich auf eine massive Parallelisierung konzentriert und die Leistung von GPU und CPU kombiniert, um Daten in Raum und Zeit zu untersuchen und zu visualisieren. Bis 2014 zogen sie andere Kunden an und wurden 2016 als Kinetica eingetragen.

Die aktuelle Version dieser Datenbank ist das Herzstück von Kinetica 7, das jetzt um die Kinetica Active Analytics-Plattform erweitert wurde. Die Plattform kombiniert historische und Streaming-Datenanalyse, Standortinformationen und maschinelles Lernen in einem leistungsstarken, Cloud-fähigen Paket.

Als Referenzkunden hat Kinetica unter anderem Ovo, GSK, SoftBank, Telkomsel, Scotiabank und Caesars. Ovo verwendet Kinetica zur Personalisierung des Einzelhandels. Telkomsel, der Worldn-Mobilfunkanbieter, verwendet Kinetica für Netzwerk- und Teilnehmerinformationen. Anadarko, das kürzlich von Chevron übernommen wurde, nutzt Kinetica, um die Analyse von Ölbecken so weit zu beschleunigen, dass das Unternehmen seine 90-Milliarden-Zeilen-Vermessungsdatensätze für die 3D-Visualisierung und -Analyse nicht mehr herunterrechnen muss.

Kinetica wird häufig mit anderen GPU-Datenbanken wie OmniSci, Brytlyt, SQream DB und BlazingDB verglichen. Nach Angaben des Unternehmens konkurrieren sie jedoch in der Regel mit einer viel breiteren Palette von Lösungen, von maßgeschneiderten SMACK-Stack-Lösungen (Spark, Mesos, Akka, Cassandra und Kafka) bis hin zu den traditionelleren Plattformen für verteilte Datenverarbeitung und Data Warehousing.

Kinetica Hauptmerkmale und Architektur

Kinetica kombiniert seine verteilte, speicherinterne, GPU-beschleunigte Datenbank mit Streaming-Analyse, Standortinformationen und maschinellem Lernen. Die Datenbank ist vektorisiert, säulenförmig, speicherorientiert und für analytische (OLAP) Workloads ausgelegt, wobei jede Workload automatisch auf CPUs und GPUs verteilt wird. Kinetica verwendet SQL-92 für eine Abfragesprache, ähnlich wie PostgreSQL und MySQL, und unterstützt eine erweiterte Palette von Funktionen, einschließlich Textsuche, Zeitreihenanalyse, Standortinformationen und Diagrammanalyse.

Kinetica kann mit dem gesamten Datenkorpus arbeiten, indem Daten über GPU-Speicher, Systemspeicher, Festplatte oder SSD, HDFS und Cloud-Speicher wie Amazon S3 intelligent verwaltet werden. Laut Angaben des Unternehmens ist diese Fähigkeit zur Verwaltung aller Speicherebenen für Kinetica unter den GPU-Datenbanken einzigartig.

Mit seinen verteilten Funktionen für die parallele Aufnahme kann Kinetica Hochgeschwindigkeitsaufnahmen für Streaming-Datensätze (mit Kafka) und komplexe Analysen für Streaming- und Verlaufsdaten gleichzeitig durchführen. Sie können TensorFlow-Modelle direkt in Kinetica anhand von Daten trainieren oder vorab geschulte TensorFlow- oder Black-Box-Modelle importieren, um Schlussfolgerungen über Stapelverarbeitung, Stream-Verarbeitung oder öffentlichen Webdienst auszuführen.

Kinetica verfügt über eine robuste und GPU-beschleunigte Bibliothek von Geodatenfunktionen für On-Demand-Filterung, Aggregation, Zeitreihen, räumliche Verknüpfung und Geofence-Analyse. Mithilfe der serverseitigen Rendering-Technologie können auch unbegrenzte Geometrie, Heatmaps und Konturen angezeigt werden (da das clientseitige Rendern großer Datenmengen sehr zeitaufwändig ist).

Sie können Ihre relationalen Daten in einem nativen Diagrammkontext verwenden (indem Sie explizit Knoten, Kanten und andere Diagrammobjekte aus relationalen Daten erstellen), um geografische und nicht geografische Beziehungen zu verstehen, und Sie können eine Routenoptimierung in Echtzeit und sogar eine Analyse sozialer Netzwerke durchführen unter Verwendung der GPU-beschleunigten Graph-Algorithmen von Kinetica (unter Verwendung der kinetica.solve_graphFunktion).

Kinetica Kinetica

Installations- und Konfigurationsoptionen für Kinetica

Es gibt drei Methoden zur Installation von Kinetica. Die bevorzugte Methode ist jetzt KAgent, das die Installation und Konfiguration von Kinetica, Active Analytics Workbench (AAW) und Kubernetes, Ringen (Hochverfügbarkeit) und mehr automatisiert. Die beiden alternativen Methoden sind Docker (für tragbare Installationen von Kinetica) und die manuelle Installation über die Befehlszeile mit gängigen Linux-basierten Paketmanagern wie yumund apt.

Resourcenmanagement.  Kinetica unterstützt fünf Speicherebenen: VRAM, RAM, Festplatten-Cache, Persist und Cold Storage. Für alle Vorgänge, bei denen die GPU verwendet wird, müssen sich die Daten, auf denen sie ausgeführt werden, in der VRAM-Schicht befinden. Das Verwalten von Daten in diesen fünf Ebenen ist ein nicht triviales Problem.

Räumung ist das erzwungene Verschieben von Daten von einer höheren Ebene in eine niedrigere Ebene, um Platz für andere Daten zu schaffen, die in diese höhere Ebene verschoben werden. Jedes Objekt im System verfügt über eine Räumbarkeitsstufe, die von der Art des Objekts und den verfügbaren Ebenen darunter abhängt, in die es geräumt werden kann. Die Räumung kann als Reaktion auf eine Anforderung durchgeführt werden, die viel Datenverschiebung verursachen kann, oder proaktiv im Hintergrund, basierend auf hohen und niedrigen Wasserzeichenwerten und Räumungsprioritäten, wodurch normalerweise weniger Datenverschiebung entsteht.

Hohe Verfügbarkeit.  Kinetica HA eliminiert den einzelnen Fehlerpunkt in einem Standard-Kinetica-Cluster und bietet eine Wiederherstellung nach einem Fehler. Es wird außerhalb von Kinetica implementiert, um mehrere Replikate von Daten zu verwenden, und bietet einen schließlich konsistenten Datenspeicher. Die Kinetica HA-Lösung besteht aus vier Komponenten: einem Front-End-Load-Balancer, hochverfügbaren Prozessmanagern, einem oder mehreren Kinetica-Clustern und einer verteilten Messaging-Warteschlange.

Verwaltung.  Sie können Kinetica mit dem grafischen GAdmin-Tool, dem Linux- serviceBefehlszeilenbefehl oder KAgent verwalten. Der folgende Screenshot zeigt ein GAdmin-Dashboard für einen Cluster mit 6 Knoten.

Kinetica-Demos

Neben GAdmin und KAgent bietet Kinetica das webbasierte Visualisierungstool Reveal und die Active Analytics Workbench (AAW) zur Integration von Modellen und Algorithmen für maschinelles Lernen.

Der im obigen Screenshot gezeigte Cluster mit sechs Knoten ist derjenige, mit dem ich mehrere Kinetica-Demos untersucht habe. Der Cluster besteht aus g3.8xlarge-Instanzen, die jeweils zwei Nvidia Tesla M60-GPUs und 32 Intel Xeon E5 2686 v4-CPUs enthalten. Jede Instanz verfügt über 244 GiB RAM und 16 GiB VRAM pro GPU. Dieses Setup kann verkleinert, vergrößert und verkleinert werden, um jedem Anwendungsfall gerecht zu werden. Nachdem ich meine Tests beendet hatte, enthielt die Datenbank 413 Tabellen und 2,2 Milliarden Datensätze.

Die von mir untersuchten Demos betrafen die Prognose des finanziellen Risikos mithilfe von Optionen, das Versicherungsrisiko für Überschwemmungen in Texas, die Bewertung der Netzwerksicherheit auf der Grundlage der Verkehrsinspektion und Taxifahrten in NYC. Dabei stellte ich fest, dass im Gegensatz zu OmniScis Demos (siehe meine Rezension), bei denen alle einzelne abgeflachte Tabellen (aus Gründen der Geschwindigkeit) verwendet wurden, bei den Kinetica-Demos häufig mehrere Tabellen, Ansichten und analytische Dashboards verwendet wurden.

Finanzielle Risikoprognose mit Optionen

Diese Anwendung ist im Wesentlichen ein Proof of Concept des Finanzrisikomanagements in Echtzeit mit Kinetica. Mit einer mobilen React-App und zwei Web-Dashboards kann ein Risikomanager alle „Griechen“ (Faktoren zur Risikomessung) für sein Portfolio anzeigen und Absicherungen hinzufügen. Hinter den Kulissen werden Transaktionen in die Datenbank gestreamt und ein Black Scholes-Risikomodell für maschinelles Lernen aktualisiert die Live-Daten kontinuierlich. Im Gegensatz dazu umfasst das herkömmliche Risikomanagement das Kopieren der Transaktionsdaten in einen separaten Cluster, in dem jede Nacht Risikomodelle ausgeführt werden.

Versicherungsrisiko für katastrophale Überschwemmungen in Texas

Ziel dieser Anwendung ist es, das Risiko eines Versicherungsunternehmens für katastrophale Überschwemmungen in Texas anhand einer Tabelle mit Versicherungsnehmern und den Hurricane Harvey-Überschwemmungsgebieten zu bewerten. Die Anwendung führt neben statistischen Berechnungen auch umfangreiche Geodatenberechnungen in SQL durch.

Bewertung der Netzwerksicherheit

Diese Anwendung soll einem Netzwerksicherheitsbeauftragten helfen, ein Netzwerk vor Eindringlingen zu schützen. Die zugrunde liegende Kinetica-Tabelle kombiniert etwa 1,8 Milliarden historische Netzwerkanforderungen mit einem Echtzeit-Feed.

NYC Taxifahrten

Die New Yorker Taxifahrtsdatenbank habe ich mir auch in OmniSci angesehen. Kinetica stellt es als Datensatz bereit, den Sie laden können. das dauerte ungefähr eine Minute. Anfangs dauerte es länger, alle Diagramme nach jedem Kartenzoom in Kinetica zu aktualisieren, als ich von OmniSci in Erinnerung hatte. Dann habe ich eine Einstellung geändert, damit Kinetica keine Daten außerhalb der gezoomten Karte in den anderen Diagrammen darstellt, und die Antwortzeit ist auf den Subsekundenbereich gesunken.

Kinetica Slices und Dashboards

Einzelne Grafiken in Kinetica Reveal werden als Slices bezeichnet. Die Slices sind in Dashboards organisiert.

Der Slice-Designer ist den Designern in OmniSci und einer Reihe von BI-Produkten wie Tableau sehr ähnlich.

Ich habe den Graphanalyse-Teil von Kinetica nicht getestet, aber ich mag die Art und Weise, wie er entworfen wurde. Wenn Diagrammdatenbanken nur einen kleinen Teil dessen ausmachen, was Sie mit Ihren Daten tun müssen, ist die Wiederverwendung gespeicherter Zeilen aus den relationalen Tabellen als Kanten und Knoten absolut sinnvoll. Die Verwendung von GPUs zur Beschleunigung von Diagrammalgorithmen ist ebenfalls sinnvoll.

Wenn ich sehe, wie Kinetica maschinelles Lernen in seine GPU-Datenbank, Echtzeitanalyse und geografische Informationen integriert, verstehe ich, wohin OmniSci möchte - aber Kinetica ist bereits da. Wenn ich sehe, wie Kinetica seine Speicherebenen verwaltet, verstehe ich auch, warum Kinetica normalerweise mit Big Data und Data Warehouse-Systemen konkurriert.

Insgesamt ist Kinetica sehr beeindruckend. Es macht das, was es behauptet, und springt mit einer einzigen großen Datenbank. Ich meine, es analysiert Datenbanken mit Milliarden historischer Zeilen und Live-Feeds in Echtzeit. Ich wünschte, ich hätte ein Gefühl für die Abonnementkosten, aber das ist proprietär, wie es häufig bei Systemen dieser Größenordnung der Fall ist.

- -

Kosten: Kinetica berechnet ein Jahresabonnement basierend auf der Anzahl der speicherinternen Terabyte. Für die Datenspeicherung in anderen Ebenen werden keine Gebühren erhoben. Mit der Abonnementlizenz können Sie Kinetica überall ausführen - lokal oder in der Cloud. Die Abonnementkosten sind vollständig vorhersehbar. 30 Tage kostenlose Testversion verfügbar.

Plattform: RHEL-, CentOS-, Ubuntu-, Suse- oder Debian-Linux-Server mit mindestens acht CPU-Kernen und 8 GB RAM; Nvidia K40 oder höher GPUs; lokal, in der Cloud oder am Rande eines eingebetteten Jetson TX2-Geräts. Kinetica läuft auch auf Docker mit oder ohne GPUs.