Benchmarking Scalytics Connect

March 22, 2023
-
Dr. Zoi Kaoudi
-

Unsere Big-Data-Analyse- und föderierte Lern-Engine Blossom ist eine leistungsstarke plattformübergreifende Middleware, die verschiedene Ausführungsplattformen wie Postgres, Spark, Flink, Java Streams und Python nutzen und nahtlos integrieren kann. Beim Benchmarking haben wir festgestellt, dass Blossom in mehreren Anwendungsfällen, darunter ein beliebter Algorithmus für maschinelles Lernen, eine zentrale Big-Data-Benchmark-Aufgabe und eine relationale Abfrage, außergewöhnliche Leistung zeigt. Mit Blossom können Sie hochwertige Ergebnisse und eine zuverlässige Leistung über verschiedene Plattformen hinweg erwarten.

Blossom Sky basiert auf Apache Wayang, einem Open-Source-Projekt mit dem Ziel, eine Plattform für datenagnostische Anwendungen und dezentrale Datenverarbeitung bereitzustellen, die die Grundlage für föderiertes Lernen bilden.

Umgang mit verstreuten Daten: Ausführen einer relationalen Abfrage über mehrere Speicher hinweg

In diesem Anwendungsfall befassen wir uns mit der allgemeinen Herausforderung der Analyse von Daten, die in verschiedenen Systemen gespeichert sind, die in vielen Unternehmen vorherrscht. Mit unserer Lösung können Unternehmen und Organisationen vertrauensvoll Analysen über relationale Daten durchführen, die in mehreren Systemen gespeichert sind: Um die Fähigkeiten unseres Produkts zu testen, haben wir den bewährten TPC-H-Benchmark [1] verwendet, der fünf Datensätze/Relationen umfasst. Die Relationen "lineeitem" und "orders" sind in HDFS gespeichert, während "customer", "supplier" und "region" in Postgres und "nation" in S3 oder dem lokalen Dateisystem gespeichert sind. Unsere Tests umfassten eine Reihe von Datensatzgrößen, von 1 GB bis 100 GB, um die Skalierbarkeit und Robustheit unseres Produkts sicherzustellen.

Query/task: Wir bewerten die Leistung der komplexen SQL-TPC-H-Abfrage 5:

SELECT N_NAME, SUM(L_EXTENDEDPRICE*(1-L_DISCOUNT)) AS REVENUE
FROM CUSTOMER, ORDERS, LINEITEM, SUPPLIER, NATION, REGION
WHERE C_CUSTKEY = O_CUSTKEY AND L_ORDERKEY = O_ORDERKEY AND L_SUPPKEY = S_SUPPKEY
AND C_NATIONKEY = S_NATIONKEY AND S_NATIONKEY = N_NATIONKEY AND N_REGIONKEY = R_REGIONKEY
AND R_NAME = 'ASIA' AND O_ORDERDATE >= '1994-01-01'
AND O_ORDERDATE < DATEADD(YY, 1, cast('1994-01-01' as date))
GROUP BY N_NAME
ORDER BY REVENUE DESC

Baselines: Wir haben Blossom mit zwei weit verbreiteten Systemen zur Speicherung und Abfrage relationaler Daten verglichen: Spark und Postgres. Um einen fairen Vergleich durchzuführen, haben wir zunächst alle Datensätze auf das zu testende System (Spark oder Postgres) übertragen.

Resultat: Die Ergebnisse unserer Tests, die in Abbildung 1 dargestellt sind, zeigen die Ausführungszeit der SQL-Abfrage 5 in Sekunden. Beachten Sie, dass die Zeit, die für die Übertragung der Daten an Spark oder Postgres benötigt wird, nicht in die Ergebnisse einfließt. Wie in Abbildung 1 zu sehen ist, hat Blossom Postgres deutlich übertroffen, während die Laufzeit sehr nahe an der von Spark liegt. Es ist jedoch wichtig zu erwähnen, dass wir für die Funktion von Spark die doppelte Zeit benötigten, um Datensätze aus Postgres zu extrahieren und sie an Spark zu übertragen. Blossom erreichte diese beeindruckende Leistung durch die nahtlose Kombination von Postgres und Spark: Der Abfrageoptimierer von Blossom entschied sich, alle Selektionen und Projektionen auf die in Postgres gespeicherten Daten durchzuführen, bevor er die Daten extrahierte, um sie mit den Relationen im HDFS zu verknüpfen. Darüber hinaus entschied der Optimierer, dass die Ausführung der Verknüpfung zwischen Lineitem und Supplier in Spark von Vorteil wäre, da die Rechenlast der Verknüpfung auf mehrere Worker verteilt werden könnte. All dies geschah, ohne dass der Benutzer angeben musste, wo jeder Vorgang ausgeführt werden sollte. Mit Blossom können Unternehmen und Organisationen eine zuverlässige und hochleistungsfähige Datenanalyse-Engine erwarten, die mehrere Datensysteme nahtlos integriert.

Blossom Sky TPC results
Figure 1

Verringerung der Ausführungskosten für Aufgaben des maschinellen Lernens unter Verwendung mehrerer Systeme

In dieser Fallstudie untersuchen wir, wie Blossom die Laufzeit beschleunigen und die Ausführungskosten für Aufgaben des maschinellen Lernens senken kann, indem es mehrere Systeme nutzt. In dieser Fallstudie können alle Daten in einem einzigen Speicher gespeichert werden. In solchen Fällen lohnt es sich oft, Teile davon je nach Arbeitslast auf andere, schnellere Engines zu verschieben. Um diese Funktion zu testen, verwenden wir den stochastischen Gradientenabstieg, einen sehr beliebten Algorithmus für maschinelles Lernen, um eine Klassifizierung durchzuführen.

Datasets: Wir verwenden zwei reale Datensätze, die wir aus dem UCI-Repository für maschinelles Lernen heruntergeladen haben, nämlich higgs und rcv1. higgs besteht aus ~11 Millionen Datenpunkten mit jeweils 28 Merkmalen und rcv1 enthält ~677 Tausend Datenpunkte mit ~47 Tausend Merkmalen. Zusätzlich konstruieren wir einen synthetischen Datensatz, damit wir unser Produkt mit noch größeren Datensätzen testen können, nämlich mit 88 Millionen Datenpunkten mit jeweils 100 Merkmalen.

Query/task: Wir testen die Leistung des Trainings von Klassifizierungsmodellen für higgs und den synthetischen Datensatz sowie ein Regressionsmodell rcv1. Alle drei Trainingsmodelle verwenden stochastischen Gradientenabstieg, jedoch mit einer anderen Verlustfunktion. Wir verwenden den Hinge-Verlust zur Simulation von Support-Vektor-Maschinen für die Klassifizierungsaufgaben und den logistischen Verlust für die Regressionsaufgabe.

Baselines: Wir vergleichen Blossom mit MLlib von Apache Spark und SystemML von IBM, zwei sehr populären Bibliotheken für maschinelles Lernen.

Results: Unsere Ergebnisse, die in Abbildung 2 dargestellt sind, zeigen, dass Blossom beide Baselines um mehr als eine Größenordnung in der Laufzeitleistung für große Datensätze übertrifft. In der Tat konnten Spark und SystemML nicht einmal die Trainingsaufgabe für den synthetischen Datensatz abschließen.

Cost reduction with parallelism over multiple data processing systems
Figure 2

Der Schlüssel zum Erfolg von Blossom ist sein Optimierer, der feststellt, dass durch die Verwendung einer Mischung aus Spark und lokaler Java-Ausführung für den stochastischen Gradientenabstiegsalgorithmus die Gesamtausführungszeit erheblich verringert wird. Die Datensätze werden mit Spark vorverarbeitet und vorbereitet, während die Datenpunkte, die für die Berechnung des Gradienten verwendet werden, nach der Sampling-Phase des Gradientenabstiegs einen sehr kleinen Datensatz bilden, der vorteilhaft auf einer einzigen Maschine mit Java verarbeitet werden kann. Diese Optimierung ist ohne spezialisierte und sehr erfahrene Ingenieure nicht leicht zu erkennen, aber Blossom kann dies erreichen, ohne dass die Benutzer irgendwelche Fachkenntnisse benötigen.

Optimierung von Big Data-Analysen durch Anpassung der Plattformen an die Daten- und Aufgabenmerkmale

In dieser Fallstudie untersuchen wir, wie Blossom analytische Aufgaben durch die Anpassung von Plattformen auf der Grundlage von Daten und Aufgabenmerkmalen optimiert. Unser Ansatz besteht darin, die Plattformen je nach Art der Daten und der jeweiligen Aufgabe zu ändern, wodurch wir die Leistung und Effizienz verbessern können. Diese Fallstudie demonstriert das Potenzial der Plattformanpassung von Blossom für die Optimierung von Big-Data-Analysen.

Datasets: Wir verwenden Wikipedia-Zusammenfassungen und speichern sie in HDFS. Wir variieren die Größe des Datensatzes von 1 GB bis 800 GB.

Query/task: Wir testen unser Produkt mit einer weit verbreiteten Big-Data-Analyseaufgabe, nämlich WordCount. Dabei wird die Anzahl der einzelnen Wörter in einem Textkorpus gezählt. Verschiedene Variationen von WordCount sind in verschiedenen Text-Mining-Anwendungen nützlich, z. B. Termfrequenz, Wortwolken usw.

Baselines: Wir verwenden drei verschiedene Plattformen, auf denen Wordcount ausgeführt werden kann: Apache Spark, Apache Flink und ein Java-Programm mit einem Knoten. Anschließend stellen wir Blossom so ein, dass es für jeden Datensatz automatisch auswählen kann, welche der drei Plattformen verwendet werden soll.

Results: Unsere Ergebnisse, die in Abbildung 3 dargestellt sind, zeigen die Effektivität der Plattformanpassung von Blossom bei der Auswahl der schnellsten verfügbaren Plattform für jede Datensatzgröße in unserer WordCount-Fallstudie. Durch die Modellierung der Ausführungskosten innerhalb des Abfrageoptimierers erübrigt sich für die Benutzer die manuelle Auswahl einer Plattform für ihre Anwendung oder die Migration von einer Plattform zur anderen, um die Leistung zu steigern und die Kosten zu minimieren. Mit Blossom können sich die Benutzer auf ihre analytischen Aufgaben konzentrieren, während unsere Plattformanpassungsfunktion die Auswahl der optimalen Plattform für jede Abfrage oder Aufgabe auf der Grundlage der Daten und Abfrageeigenschaften übernimmt. Dies führt zu einer schnelleren Ausführung und verbesserten Effizienz bei Big-Data-Analysen.

Blossom selects the best execution framework for each data task based on our integrated AI
Figure 3

Fazit

Blossom Sky ist eine revolutionäre Big-Data-Analyse und föderierte Lernmaschine, die sich nahtlos in verschiedene Ausführungsplattformen integrieren lässt. Mit seiner außergewöhnlichen Leistung in Benchmarking-Tests und der Fähigkeit, verteilte, in verschiedenen Systemen gespeicherte Daten zu analysieren, ist Blossom die ultimative Lösung für Unternehmen, die ihre Datenanalyse optimieren möchten. Blossom wurde mit dem TPC-H-Benchmark getestet und hat im Vergleich zu Spark und Postgres eine unvergleichliche Skalierbarkeit und Robustheit bewiesen. Damit ist Blossom ein entscheidender Faktor für Datenverantwortliche, die der Zeit immer einen Schritt voraus sein wollen.

[1] TPC-H Homepage

Über Scalytics

Da die Anforderungen an die moderne KI-Entwicklung steigen, haben traditionelle ETL-Plattformen Schwierigkeiten, Schritt zu halten, da sie durch ihre eigenen Einschränkungen in Bezug auf Datenbewegungen und Verarbeitungsgeschwindigkeit blockiert werden. Scalytics Connect ist die Lösung der nächsten Generation, die speziell für die Optimierung von KI-Trainings durch innovative Datenintegrationsfunktionen entwickelt wurde.

Wir ermöglichen es Ihnen, datengestützte Entscheidungen in Minuten statt Tagen zu treffen
Scalytics ist basierend auf Apache Wayang, und wir sind stolz darauf, das Projekt zu unterstützen. Du kannst dir ihr öffentliches GitHub-Repo hier ansehen. Wenn Dir unsere Software gefällt - ein Star ⭐ würde viel bedeuten!

Wenn Sie professionelle Unterstützung von unserem Team von branchenführenden Experten benötigen, können Sie sich jederzeit an uns über Slack oder E-Mail wenden.
back to all articlesFollow us on Google News
Schneller zum KI-Erfolg
Kostenlose White Paper. Erfahren Sie, wie Scalytics KI und ML optimiert und Unternehmen in die Lage versetzt, schnellere KI-Erfolge zu erzielen.

Starten Sie noch heute mit Scalytics Connect

Thank you! Our team will get in touch soon.
Oops! Something went wrong while submitting the form.