A hands-on guide to building batch and streaming data pipelines with Python, Apache NiFi, Airflow, Kafka, and Spark.
Data Engineering with Python by Paul Crickard (Packt, 2020) teaches data engineering by doing. Instead of staying in theory, you install a full stack on Linux: Apache NiFi, Airflow, PostgreSQL, Elasticsearch, Kibana, Kafka, Spark, and MiNiFi. You write Python for extraction, transformation, validation, and monitoring. You build two end-to-end projects: a 311 service-request pipeline with a Kibana dashboard, then a production-hardened version with staging, data quality checks, versioning, and deployment workflows.
The book opens with fundamentals. What do data engineers actually do? How is the role different from data science? What does ETL look like in a growing business? From there it moves into infrastructure setup and core skills: reading CSV and JSON files, loading relational and NoSQL databases, cleaning messy data with pandas, and orchestrating workflows in Airflow and NiFi.
Section two shifts to production concerns. You learn staging patterns, idempotent and atomic pipeline design, version control with the NiFi Registry, monitoring through the NiFi GUI and REST API, and strategies for promoting pipelines from test to production. Section three goes beyond batch processing with a Kafka cluster, Python producers and consumers, PySpark data processing, and MiNiFi for edge and IoT data collection.
The writing is practical and example-driven. Crickard comes from a public-sector data background, and the 311 project grounds the material in real civic data. Some tool versions are dated since the 2020 release, but the operational patterns (validate before load, version your pipelines, monitor failures, separate environments) remain directly applicable. Best for analysts, ETL developers, or backend engineers moving into data engineering who want a broad, build-it-yourself introduction.