
Extract Deutsche Boerse public data from s3 buckets and generate a weekly parquet report with opening, closing, minimum, maximum prices, daily volume, and change from previous close.
Build a production-ready ETL pipeline in Python with pandas, starting from virtual environments and a Jupyter exploration to a tested, dockerized, well-structured design embracing functional and object-oriented patterns.
Register for an AWS account, create an IAM user with programmatic access, attach S3 full access, download credentials, configure environment variables, install the AWS CLI, and access the public dataset.
Learn to pass a date argument to a pandas etl workflow, convert a string to datetime, compute the previous day, and filter s3 data by date for targeted reporting.
Restructure the get objects function by generating a date list and, for each date, retrieving files via a prefix-filtered list, using the adapter and application layers.
Design a robust ETL workflow with object-oriented class design, single responsibility principles, and an interface for S3 bucket connectors, using a common function approach and a meta process.
Compare functional programming and object oriented approaches for ETL jobs and data pipelines, noting their respective strengths. Prefer object oriented programming for better encapsulation, extensibility, and reuse in larger projects.
Set up and configure the Sedra transformer module in a Python ETL workflow, defining source and target configs, three-bucket connectors, and core extract-transform-load steps.
Implement the list_files_in_prefix method in the as tree bucket connector, detailing input cases (prefix string, existing or missing) and outputs, exception behavior, and logging considerations.
Explore linting, a tool that analyzes Python code to flag errors and style issues, and learn how git hooks and continuous integration keep ETL pipelines clean.
Implement a guard clause in the transform_report1 to return an empty data frame when input is empty, preventing all transformations; refine notebook code with comments and Lowgar infos.
Develop unit tests for transform_report1 in a pandas etl workflow, validating an empty input dataframe yields an empty result and a valid input produces the expected dataframe report via assertions.
Refine the load method by cleaning notebook code, adding comments and logging. Build an update list with a list comprehension to extract dates.
Learn to write and run integration tests for ETL pipelines in Python, validating how modules interact with real interfaces without mocks, while reusing suitable unit tests.
Launch the entrypoint run.py with the config path, create s3 bucket connectors for source and target, and run the sedra etl job while checking logs.
Install memory profile and matplotlib, add profile decorator to methods, run and plot results to identify hot spots and timing bottlenecks for focused optimization.
Run a production ETL job with Argo workflows and a container image to load source data into the target three buckets, mounting secrets and config maps as needed.
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.