So beschleunigen Sie ETL-Prozesse durch den Einsatz von Pandas UDFs in PySpark auf EMR Clustern in der Amazon Cloud

Herausforderung

ETL-Prozesse (Extraktion, Transformation, Laden) sind essentiell für den Betrieb eines Data-Warehouses. Um so wichtiger ist es, dass diese Prozesse zuverlässig und schnell laufen. Dabei kommen ggf. komplexe mathematische Funktionen zum Einsatz, um die benötigten Transformationen durchzuführen. Sowohl das Umsetzen als auch das schnelle Ausführen dieser Funktionen kann zu einer Herausforderung werden. Im Falle einer unserer Kunden war der benötigte Zeitraum bis zur möglichen Ausführung des Prozesses so groß, dass ein zeitnahes Reporting auf der Grundlage aktueller Daten nicht möglich schien. 

Projektbeschreibung - wie hat Five1 dem Kunden weitergeholfen

User Defined Functions (UDFs) ermöglichen es, auch sehr komplexe Funktionen auf die Einträge von Tabellen (in Spark: Dataframes) anzuwenden. Gewöhnliche Spark UDFs können sehr langsam sein und ein Bottleneck in ETL Prozessen darstellen.

Eine Möglichkeit, die Performance um das 3- bis 100-fache zu verbessern, ist ein Umstieg von Spark auf Pandas UDFs. Auf dieser Seite wird dies weiter beleuchtet.

Pandas UDFs führen die Operationen und Berechnungen nicht zeilen- sondern spaltenweise durch, wodurch die Operationen vektorisiert und dadurch beschleunigt werden können. Um von Spark auf Pandas UDFs zu wechseln, muss das pandas package verwendet, aber auch die Logik der UDFs angepasst werden!

Robert Beitrag ETL Prozesse Grafik

 

Technische Highlights:

  • ETL Jobs

  • PySpark

  • Pandas UDFs

  • Laufzeitverbesserung

 

Lösungen und Ergebnis

Five1 konnte die Funktionen durch die Verwendung von UDFs für die Transformationen kompakt und verständlich umsetzen. Durch einen Umstieg von Spark auf Pandas UDFs konnte zudem die Laufzeit des ETL-Prozesses signifikant verbessert werden, wodurch ein Reporting auf der Grundlage aktuellster Daten ermöglicht werden konnte.

Kontakt aufnehmen

 

Veröffentlich am 19.6.2020

Thema: Datenstrategie, Data Warehouse, ETL-Prozesse, Transformation, Reporting, User Defined Function, Pandas, UDF, Spark