In Lektion 4.13.2 haben Sie den Stern der Kladde mit vier Zellen Spark SQL in ein Lakehouse geschrieben und dabei nicht gefragt, was Spark eigentlich tut. Diese Lektion holt das nach. Sie ist ein Überblick, kein Spark-Kurs: Sie sollen beurteilen können, wann Spark das richtige Werkzeug ist, was in einem Notebook passiert, wenn Sie eine Zelle ausführen, und woran Sie im Ausführungsplan sehen, dass eine Abfrage teuer wird. Fabric-Notebooks sprechen mehrere Sprachen; der Kurs nimmt Spark SQL, weil Sie SQL schon sprechen.
Wofür Spark da ist
Apache Spark rechnet verteilt: Ein Programm, der Driver, zerlegt die Arbeit in Aufgaben, und viele Executors auf mehreren Rechnern erledigen sie gleichzeitig, jeder auf einem Teil der Daten. Die Daten liegen meist als Dateien in einem Datensee, in Fabric als Delta-Tabellen in OneLake. Das lohnt sich, wenn eine von drei Bedingungen gilt:
- Die Datenmenge ist zu groß für eine Datenbank, die sie in vertretbarer Zeit liest, oder zu groß, um sie dauerhaft in einer Datenbank zu halten.
- Die Daten sind keine Tabellen: Dateien in vielen Formaten, Protokolle, halbstrukturiertes JSON, das erst in Form gebracht werden muss.
- Die Umwandlung ist schwer: viele Schritte, Verknüpfungen großer Mengen, Berechnungen, die man nicht in eine SQL-Abfrage zwängen will.
Und es lohnt sich nicht, wenn die Daten in eine Datenbank passen und die Abfrage dort in Sekunden läuft. Das ist bei der Kladde der Fall: Ein paar zehntausend Buchungen je Jahr und Büro rechnet SQL Server schneller, als ein Spark-Cluster startet. Wer Spark trotzdem nimmt, zahlt mit Startzeit, Rechenleistung der Kapazität und einer zweiten Sprache im Team. In Fabric gibt es für kleine Mengen ausdrücklich den Weg ohne Spark: Notebooks kennen neben dem Spark-Kern einen Python-Kern und einen T-SQL-Kern, und das Warehouse rechnet mit T-SQL.
Für die Kladde ist Spark also ein Werkzeug, das Sie kennen sollten, nicht eines, das sie braucht. In Lektion 4.13.5 schreiben Sie diese Abwägung in ein ADR.