Microsoft Fabric beschleunigt Python-UDFs und komplexe Datentypen
trending_up Trend: python-udfs

Microsoft Fabric beschleunigt Python-UDFs und komplexe Datentypen

calendar_month 28. Juni 2026

Zusammenfassung

Microsoft hat signifikante Leistungsverbesserungen für Python User Defined Functions (UDFs) und komplexe Datentypen in der Native Execution Engine (NEE) von Microsoft Fabric angekündigt. Diese Optimierungen beseitigen gravierende Performance-Flaschenhälse, die Entwickler bisher bei der Ausführung von benutzerdefiniertem Python-Code auf Spark-Clustern beeinträchtigten. Durch die native Verarbeitung direkt in der Columnar-Engine können Daten-Pipelines ohne Codeänderungen um das 2- bis 5-fache beschleunigt werden.

Was ist passiert?

Im Rahmen der neuesten Aktualisierungen für Microsoft Fabric wurde die Native Execution Engine dahingehend optimiert, dass sie nun optimierte Ausführungspfade für Python/Scala-UDFs sowie verschachtelte Datenstrukturen (wie Arrays, Maps und Structs) bereitstellt:

  • Reduzierte Serialisierung: Die Serialisierungs-Roundtrips zwischen der Java Virtual Machine (JVM) und den Python-Worker-Prozessen wurden drastisch minimiert.
  • Nativer Spalten-Support: Komplexe Datentypen werden direkt in der Columnar-Engine verarbeitet. Operationen wie explode oder der Zugriff auf Struct-Felder zwingen die Engine nicht mehr zu einem Rückfall auf langsame, zeilenbasierte Verarbeitung.
  • Transparente Integration: Bestehende Spark-Notebooks und -Jobs profitieren automatisch nach der Aktivierung der NEE in den Workspace-Einstellungen, ohne dass Anpassungen am Code vorgenommen werden müssen.

Warum es wichtig ist

Bisher mussten Datenteams bei der Nutzung von Apache Spark in Enterprise-Umgebungen häufig schmerzhafte Kompromisse eingehen. Python-UDFs waren aufgrund des JVM-Python-Wechsels extrem rechenintensiv, was Teams dazu zwang, Logik mühsam in komplexes SQL oder Scala umzuschreiben oder verschachtelte Schemata bereits beim Ingestieren zu flachzuklopfen. Die neuen Optimierungen ermöglichen es Entwicklern, die Flexibilität von Python zu nutzen, ohne dabei Leistungseinbußen hinnehmen zu müssen. Dies führt zu schnelleren ETL-Pipelines und geringeren Compute-Kosten.

Beweise

Die Leistungssteigerungen werden durch offizielle Benchmarks von Microsoft und Berichte aus der Community (u. a. durch Fabric-MVPs auf X/Twitter und LinkedIn) belegt:

  • Vektorisierte Python/Scala-UDFs: Erreichen eine bis zu 5,76-fache Beschleunigung.
  • Komplexe UDFs: Laufen je nach Komplexität der UDF 1,08- bis 2,5-mal schneller.
  • End-to-End-Workloads (TPC-DS): Zeigen eine Beschleunigung von bis zu 2,35-mal bei Abfragen mit komplexen Datentypen.
  • Community-Echo: MVPs wie Gilbert Que (Microsoft MVP) bestätigen signifikant verkürzte Ausführungszeiten in produktiven Workloads.

Analyse

Die Optimierung in Microsoft Fabric verdeutlicht einen größeren Trend in der Datenarchitektur. Moderne analytische Workloads entwickeln sich über traditionelles SQL hinaus und integrieren zunehmend künstliche Intelligenz, Machine Learning und semi-strukturierte Datenformate. Eine Engine, die nur einfache SQL-Abfragen beschleunigt, reicht nicht mehr aus. Fabric setzt darauf, die Brücke zwischen der Flexibilität von Python und der Effizienz nativer Vektorisierung auf Engine-Ebene zu schlagen. Durch den Verbleib der Daten im nativen Columnar-Format werden CPU- und Speicherengpässe eliminiert.

Praktische Erkenntnisse

  • Aktivierung der NEE: Navigieren Sie in den Einstellungen Ihres Fabric-Workspaces zu Data Engineering/Science > Spark Settings > Environment. Aktivieren Sie die Native Execution Engine im Compute-Bereich der jeweiligen Umgebung.
  • Nutzung von Vektorisierung: Schreiben Sie, wo immer möglich, standardmäßige Python-UDFs in vektorisierte UDFs (Pandas UDFs) um, da diese den größten Nutzen aus der native Ausführung ziehen.
  • Keine Schemakompromisse: Vermeiden Sie das vorzeitige Flachklopfen verschachtelter Datenstrukturen, da die NEE nun nativ mit Arrays und Structs umgehen kann.

Offene Fragen

  • Wie stark variieren die tatsächlichen Performance-Vorteile bei stark kundenspezifischen, nicht-standardmäßigen Python-Bibliotheken innerhalb von UDFs?
  • Inwiefern werden zukünftige Updates auch Nicht-Spark-Ressourcen in Fabric an die Native Execution Engine anbinden?

Quellen

  1. Microsoft Fabric Updates Blog: Improve performance for Python UDFs and complex data types
  2. Gilbert Que Twitter Post
  3. Reza Rad LinkedIn Post
  4. AzureCharts Update Entry