über die Erstellung von SQL-Engine-Quelltexten , das GPUs zur Beschleunigung der Datenverarbeitung nutzt. BlazingSQL ist keine vollwertige DBMS, sondern wird als Engine für die Analyse und Verarbeitung großer Datensätze positioniert, die in ihren Aufgaben vergleichbar ist mit . Der Code ist in Python geschrieben und unter der Apache 2.0-Lizenz.
BlazingSQL eignet sich zur Ausführung einzelner analytischer Abfragen über große Datensätze (Zehn Gigabyte), die in tabellarischen Formaten gespeichert sind (z. B. Protokolle, NetFlow-Statistiken usw.). BlazingSQL kann Abfragen aus Rohdateien in den Formaten CSV und Apache Parquet durchführen, die in Netzwerk- und Cloud-Dateisystemen wie HDSF und AWS S3 gespeichert sind, und überträgt das Ergebnis direkt in den GPU-Speicher. Durch die Parallelisierung der Vorgänge in der GPU und die Nutzung schnellerer VideSpeicher werden Abfragen in BlazingSQL bis zu schneller ausgeführt als in Apache Spark.
Für die Arbeit mit GPUs wird ein von der Firma NVIDIA unterstütztes Set von Bibliotheken , das die Entwicklung von Datenverarbeitungs- und Analyseanwendungen ermöglicht, die vollständig auf der GPU-Seite ausgeführt werden (ein wird zur Verwendung von Low-Level-CUDA-Primitiven und zur Parallelisierung von Berechnungen bereitgestellt).
BlazingSQL ermöglicht die Verwendung von SQL anstelle der API zur Datenverarbeitung. (basierend auf ), die in RAPIDS verwendet wird. BlazingSQL fungiert als zusätzliche Schicht, die über cuDF arbeitet und die Bibliothek cuIO zum Lesen von Daten von der Festplatte nutzt. SQL-Abfragen werden in Aufrufe von Funktionen cuUDF übersetzt, die es ermöglichen, Daten in die GPU zu laden und Operationen wie Zusammenführung, Aggregation und Filterung darauf auszuführen. Es wird die Erstellung verteilter Konfigurationen unterstützt, die Tausende von GPUs umfassen.
BlazingSQL vereinfacht die Datenverarbeitung erheblich – anstelle von hunderten Aufrufen von cuDF-Funktionen kommt man mit einer einzigen SQL-Abfrage aus. Der Einsatz von SQL ermöglicht die Integration von RAPIDS in bestehende Analysesysteme, ohne spezifische Handler schreiben zu müssen und ohne die Notwendigkeit, Daten in eine zusätzliche DB zu laden, während
vollständige Kompatibilität mit allen Teilen von RAPIDS gewahrt bleibt, indem die vorhandene Funktionalität in SQL übersetzt wird und die Leistung auf dem Niveau von cuDF sichergestellt wird. Zudem wird die Unterstützung der Integration mit Bibliotheken und für analytische und maschinelle Lernanwendungen gewährleistet.
Quelle: opennet.ru
