MultiContext in Scalytics Connect: Ihr Schlüssel zu präzisen Dateneinblicken

February 13, 2024
-
Dr. Zoi Kaoudi
-

Willkommen zu unserem neuesten Blogbeitrag, in dem wir uns freuen, Ihnen eine leistungsstarke neue Ergänzung zu Scalytics Connect vorstellen zu können: Multikontext. In diesem Beitrag zeigen wir, wie MultiContext die Datenverarbeitung für Unternehmen revolutioniert und eine nahtlose Bereitstellung über mehrere Standorte hinweg ermöglicht und gleichzeitig den Datenschutz und die Integrität gewährleistet.

Stellen Sie sich das vor: eine Organisation mit unterschiedlichen Abteilungen, von denen jede ihre eigenen Datenverarbeitungsmodule hat. Aus Datenschutzgründen können Rohdaten nicht für Analysezwecke zentralisiert werden. Stattdessen nur aggregierte Daten kann extrahiert und weiterverarbeitet werden. Die Abteilungen A und B nutzen ihren Spark-Cluster und speichern Daten in HDFS-, CSV-Dateien und einer Datenbank mit JDBC-Verbindung, während Abteilung C einen Flink-Cluster und eine weitere Datenbank für ihre Datenverarbeitungsanforderungen verwendet.

Scalytics Connect MultiContext Explained

Und hier kommt MultiContext ins Spiel.. Mit dieser innovativen Funktion können Entwickler mühelos verschiedene Datenkontexte definieren, die auf die Bedürfnisse der einzelnen Abteilungen zugeschnitten sind. Diese Konfigurationen umfassen Informationen über die Spark- und Flink-Cluster, potenzielle JDBC-Installationen und den festgelegten Pfad zum Speichern verarbeiteter Daten. Die unterschiedlichen Systeme werden wie folgt definiert:


val context1 = new ScalyticsContext(configuration1)
  	.withPlugin(Java.basicPlugin())
  	.withPlugin(Spark.basicPlugin())
	.withPlugin(JDBC.basicPlugin())
  	.withTextFileSink("file:///path/to/output/out1")

val context2 = new ScalyticsContext(configuration2)
  	.withPlugin(Java.basicPlugin())
  	.withPlugin(Spark.basicPlugin())
	.withPlugin(JDBC.basicPlugin())
  	.withTextFileSink("hdfs:///path/to/output/out2")

val context3 = new ScalyticsContext(configuration2)
  	.withPlugin(Java.basicPlugin())
  	.withPlugin(Flink.basicPlugin())
	.withPlugin(JDBC.basicPlugin())
  	.withTextFileSink("hdfs:///path/to/output/out3")

Als Nächstes können Entwickler mithilfe des MultiContextPlanBuilders die gewünschten Datenverarbeitungsaufgaben in diesen unterschiedlichen Kontexten skizzieren.


val multiContextPlanBuilder = new MultiContextPlanBuilder(List(context1, context2, context3));

val customers = multiContextPlanBuilder
	.readTable(context1, customersDB1)
	.readTable(context2, customersDB2)
	.readTable(context3, customersDB3)

.forEach(_
/* Filter for year 2022 */
.filter(record -> record.getField(5).contains(“2022”)
)

val sales = multiContextPlanBuilder
.readTextFile(context1, salesFile1)
  	.readTextFile(context2, salesFile2)
.readTextFile(context3, salesFile3)

.forEach(_
  	.map(line -> {
       String [] vals = line.split("\\,");
       return new Record(vals[0], vals [1], Double.parseDouble(vals[2]), 1);
            	})
     /* Filter for year 2022 */
     .filter(record -> ((String)record.getField(0)).contains("2022"))

val results = sales
/* Join sales with customers data*/
.combineEach(customers, (dq1: DataQuanta[Customer], dq2: DataQuanta[Result]) => dq1.join(id, dq2, _._2))

     /* Aggregate data */
     .reduceByKey(record -> record.getField(1), (r1, r2) -> {
                	return new Record(r1.getField(0), r1.getField(1), r1.getDouble(2) + r2.getDouble(2), r1.getInt(3) + r2.getInt(3));
            	})
       /* Average */
       .map(r -> new Record(r.getField(1), r.getDouble(2)/r.getInt(3)))
	).execute()

Mit nur wenigen Codezeilen können Entwickler jetzt die Datenverarbeitung vor Ort an verschiedenen Standorten ausführen. Darüber hinaus können die Installationen an jedem Standort heterogen sein und verschiedene Cluster wie Spark oder Flink nahtlos aufnehmen. Wichtig ist, dass man denselben Job an mehrere Spark-Cluster gleichzeitig vergeben kann. Dies ist in Spark nicht möglich, da es nicht erlaubt, mehr als einen Spark-Kontext in einer einzigen JVM zu haben.

Zusammenfassend lässt sich sagen, dass MultiContext eine neue Ära der föderierten und In-situ-Datenverarbeitung einläutet und es Unternehmen ermöglicht, ihre verteilte Infrastruktur zu nutzen und gleichzeitig Datenschutz und Effizienz zu gewährleisten. Seien Sie gespannt auf weitere Updates und Einblicke vom Scalytics-Team, während wir weiterhin an Innovationen im Bereich der Vereinheitlichung von Datenverarbeitungslösungen arbeiten.

Ü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.