Writing production-ready ETL pipelines in Python / Pandas (Udemy.com)
Learn how to write professional ETL pipelines using best practices in Python and Data Engineering.
Created by: Jan Schwarzlose
Last updated July 2022
What you will learn
- How to write professional ETL pipelines in Python.
- Steps to write production level Python code.
- How to apply functional programming in Data Engineering.
- How to do a proper object oriented code design.
- How to use a meta file for job control.
- Coding best practices for Python in ETL/Data Engineering.
- How to implement a pipeline in Python extracting data from an AWS S3 source, transforming and loading the data to another AWS S3 target.
How it compares
Against the other 518 rated Udemy courses in Software Development on CourseDuck:
- Rating4.3 out of 5higher than 17% of them
- Reviews894#148 of 519 by number of reviews
- Length7.1 hourslonger than 55% of them
- Last updatedJuly 2022earlier than 83% of them
Course Description
This course will show each step to write an ETL pipeline in Python from scratch to production using the necessary tools such as Python 3.9, Jupyter Notebook, Git and Github, Visual Studio Code, Docker and Docker Hub and the Python packages Pandas, boto3, pyyaml, awscli, jupyter, pylint, moto, coverage and the memory-profiler.
Two different approaches how to code in the Data Engineering field will be introduced and applied - functional and object oriented programming.
Best practices in developing Python code will be introduced and applied:
design principles
clean coding
virtual environments
project/folder setup
configuration
logging
exeption handling
linting
dependency management
performance tuning with profiling
unit testing
integration testing
dockerization
What is the goal of this course?
In the course we are going to use the Xetra dataset. Xetra stands for Exchange Electronic Trading and it is the trading platform of the Deutsche Börse Group. This dataset is derived near-time on a minute-by-minute basis from Deutsche Börse’s trading system and saved in an AWS S3 bucket available to the public for free.
The ETL Pipeline we are going to create will extract the Xetra dataset from the AWS S3 source bucket on a scheduled basis, create a report using transformations and load the transformed data to another AWS S3 target bucket.
The pipeline will be written in a way that it can be deployed easily to almost any production environment that can handle containerized applications. The production environment we are going to write the ETL pipeline for consists of a GitHub Code repository, a DockerHub Image Repository, an execution platform such as Kubernetes and an Orchestration tool such as the container-native Kubernetes workflow engine Argo Workflows or Apache Airflow.
So what can you expect in the course?
You will receive primarily practical interactive lessons where you have to code and implement the pipeline and theory lessons when needed. Furthermore you will get the python code for each lesson in the course material, the whole project on GitHub and the ready to use docker image with the application code on Docker Hub.
There will be power point slides for download for each theoretical lesson and useful links for each topic and step where you find more information and can even dive deeper.
Instructor Details
- 4.3 Rating
894 Reviews
Jan Schwarzlose
Es gibt so viele coole Tools da draußen - vor allem im Bereich Small/Large/Big Data. Ein Leben reicht garnicht aus, alle Tools zu kennen und gut darin zu sein. Aber bereits mit einem übersichtlichen und guten Toolset kann man tolle Projekte mit echtem Mehrwert umsetzen.
Ich habe 2012 die Universität als Diplomingenieur für Mechatronik abgeschlossen, wobei Programmierung vor allem im Embedded Umfeld eine wichtige Rolle spielte. Im Laufe meiner ersten Berufsjahre als Ingenieur entdeckte ich mehr und mehr meine Leidenschaft für Python vor allem mit Small/Large/Big Data.
Nach einigen Hobby-Projekten wagte ich 2016 schließlich den Schritt auch beruflich in diesem Umfeld zu arbeiten. Nun arbeite ich seit mehreren Jahren erfolgreich als Data-Engineer und hatte die Möglichkeit in tollen Projekten mitzuwirken.
Dieses Wissen möchte ich gern durch Kurse im Bereich Data-Engineering und Data-Science mit einem hohen Fokus auf die Praxis weitergeben.
----------------------------------------
English Version
There are so many cool tools out there - especially in the small / large / big data area. One life is not enough to know all tools and be proficient with them. But even with a quite small and good toolset, you can implement great projects with real value.
More Software Development courses
MATLAB Programming Simulink: Beginner to Pro with ChatGPT (2026)
5.0 (930 Reviews)
Provider: Udemy
Time: 9.6h
$10.99
Build Web Apps with Nuxt.js 3: Master TypeScript & API [New] (2026)
4.9 (635 Reviews)
Provider: Udemy
Time: 6.7h
$19.99
Terraform 101: The Ultimate Hands-On Guide [Azure Edition] (2025)
4.8 (1,975 Reviews)
Provider: Udemy
Time: 11.9h
$94.99
Reviews
By Nile Williams on 12/29/2024
I think the course was a very ambitious venture into what is a complicated process of creating a production-ready ETL job. The earlier parts of the course were great for understanding the process of moving from a quick and dirty solution to a production ready script, utilizing different programming practices. However, the testing part of the course became very difficult to follow, and at some points, impossible to follow. It felt like the instructional parts of these courses were too quick (which may be due to the complexity of the concepts) but it felt a bit too fast and unfocused.
By Abe A on 8/22/2023
Excellent course but it's certainly not for beginners that just started coding. The user should have some basics of python/pandas down, as well as have some past theory/practice in object oriented programming. Otherwise, the course is perfect. There are parts of the course where the user would need to do a bit of self study but this is normal with any course. I do see reviews saying the dataset is outdated. It's not. It's still available via the bucket that the instructor has set up. So even though the xetra public set isn't available anymore, the instructor has it in a public s3 bucket that anyone can access. The only critique I have is that I expected longer sections on testing and productionizing the pipeline, that is, more in depth on dockerization, unit testing, and orchestration. The sections on these areas were way too short. I don't expect a full dive into these areas, but I did expect more content. Regardless, excellent course. Thank you.
By Dar C. on 5/29/2023
I think this course deserve higher reviews. It's underrated!! I understand why this course get lower reviews than it should be. I think students who take this course might be in different levels. I would say this might not be for absolutely beginner level for many reasons. I would say this might lean toward intermediate level. I give 5 stars because: 1. This is my first course seeing a real end to end project. 2. Instructor speaking pace is perfect, not too fast, not too slow, just right pace to follow and think. 3. Files are given in every sections and organized. 4. A lot more other good things... My only one suggestion would be adding sections for Mac users.
By Lars Sorgalla on 4/9/2023
I like the idea of an end-to-end project and will definitely need more of this :) It's also great, that the lecturer does not cut out small mistakes. It helps to see the thinking process live and how he fixes mistakes and bugs or even oversights. What this course lacks a little, is explanations. For example he says that we need the previous days close. Then he proceeds to create a Pandas Series object and afterwards uses the shift() function. This was totally over my head, so had to do quite some research by myself. My recommendation: you should have some knowledge in Pandas and Windowed SQL functions for this course. Otherwise prepare for a lot of self-driven research. Another recommendation: Makes things different than him. This gives you a lot of practical knowledge and avoids "stupidly copying" his code. I for once did not use Pandas, but Polars for processing, as it's becoming the new kid on the block for DataFrame processing. Super fast and much more elegant than Pandas. Still lacking some features though, as it's relatively new. But so far, I was able to do everything that he was doing. Conclusion: Take the course, I recommend it. It's super valuable to have someone walking you through and end-to-end project. This is very rare. However, prepare for some self-study and pausing the video as you need to figure quite some things out by yourself.
By Robson Feichas Vieira on 12/28/2022
The content organization is great and the topics covered almost everything one should know to create professional ETL pipelines. My disapointments were lessons that looked like not planned upfront, they were confusing and full of mistakes and back-and-forth, specially while coding. That really bugged me. Anyway, congrats for creating the course and hope you improve it, it has a great foundation to become a best seller.
By Leo Savernik on 7/14/2022
This course explained in great depth to implement an ETL-pipeline in python using AWS-S3-data sources and sinks from scratch up to a production kubernetes environment and dealt with state-of-the-art software design principles, unit testing, and integration testing as well as demonstrated code evolution from sketchy implementations in Jupyter to clean modular code. Another very important part discussed was dependency management, packaging into docker, and deploying on production systems. For inexperienced software developers the course provides a wealth of wisdom, for veteran software engineers it is a well presented refresher to state-of-the-art principles. One caveat: The xetra dataset is discontinued and there's no clearly documented migration path from the xetra-dataset to the provided file dump.
By Jason Faustino on 5/31/2022
This is a good course to get your feet wet on producing production level python codes. I really had fun writing the object oriented code but I do wish that you had a more thorough walkthrough on how to implemented the code design. I also hoped you explained more on the DevOps sections as it feels rushed. I do understand that it is not a simple topic but the ideas that have been imparted will suffice. I am generally happy with this course at it gave a direction on what topics to improve, to learn, and to do in real life scenario.
By Maciej Maczka on 5/5/2022
I hoped for an ETL pipline introduction. More or less I got it. Thank you. 5/5 stars for Section 1, 2 and 3 which worked as shown. Also, parts of the course showing best practices in Python coding were awesome! 2/5 stars for section 4, 5, 6, 7 - unfortunately, I am not comfortable with the OOA and I lose understanding what actually happens in the code with this apprach. Moreover, I don't follow what is the github for and its branches, except sharing code with the world. I understand the course was not about Docker or Kubernetes purpose and details, thus I don't evaluate this part.
By Carter Hughes on 3/8/2022
The most densely informative course I have taken yet and already it allowed to more confident in my Python ETL and improve my own code. I truly feel like the testing, integration, dockerization, orchestration, etc. could be their own courses (they are from other contributors obviously) but I would enjoy more courses from this lecturer on those topics as it relates to Python pipelines. There is a lot of independent resources on using pandas, boto3, and other packages to write better code but not a lot of resources wrapping the production topics on top concisely because there are sooooo many different tools and platforms. Hope to see more from this lecturer, taking this course again to review after an update or more related courses as I mentioned.
By Arturo Lopez on 12/12/2021
I learned how to write an ETL in Python. I liked how the teacher took it step by step from quick and dirty Python code into object oriented class Python code. From there I was happy to see other needed topics such as unit testing, integration testing, profiling, and workflow. I am pleased with the course and got to see what a Data Engineer actually does in their job. Before I forget the links to other learning material that goes along with the videos was helpful as well!
Quality Score
No CourseDuck member has rated this course yet. Taken it? Give each part a thumbs up or down.
Overall Score : 86 / 100



![Build Web Apps with Nuxt.js 3: Master TypeScript & API [New]](/programming/software-development/images/6457785_5adc_4.jpg?v=1789443959)

![Terraform 101: The Ultimate Hands-On Guide [Azure Edition]](/programming/software-development/images/6208847_f60a_7.jpg?v=1791193600)
