Search icon
Arrow left icon
All Products
Best Sellers
New Releases
Books
Videos
Audiobooks
Learning Hub
Newsletters
Free Learning
Arrow right icon
Data Engineering with Python

You're reading from  Data Engineering with Python

Product type Book
Published in Oct 2020
Publisher Packt
ISBN-13 9781839214189
Pages 356 pages
Edition 1st Edition
Languages
Author (1):
Paul Crickard Paul Crickard
Profile icon Paul Crickard

Table of Contents (21) Chapters

Preface Section 1: Building Data Pipelines – Extract Transform, and Load
Chapter 1: What is Data Engineering? Chapter 2: Building Our Data Engineering Infrastructure Chapter 3: Reading and Writing Files Chapter 4: Working with Databases Chapter 5: Cleaning, Transforming, and Enriching Data Chapter 6: Building a 311 Data Pipeline Section 2:Deploying Data Pipelines in Production
Chapter 7: Features of a Production Pipeline Chapter 8: Version Control with the NiFi Registry Chapter 9: Monitoring Data Pipelines Chapter 10: Deploying Data Pipelines Chapter 11: Building a Production Data Pipeline Section 3:Beyond Batch – Building Real-Time Data Pipelines
Chapter 12: Building a Kafka Cluster Chapter 13: Streaming Data with Apache Kafka Chapter 14: Data Processing with Apache Spark Chapter 15: Real-Time Edge Data with MiNiFi, Kafka, and Spark Other Books You May Enjoy Appendix

Building atomic data pipelines

The final feature of a production data pipeline that we will discuss in this chapter is atomicity. Atomicity means that if a single operation in a transaction fails, then all of the operations fail. If you are inserting 1,000 records into the database, as you did in Chapter 3, Reading and Writing Files, if one record fails, then all 1,000 fail.

In SQL databases, the database will roll back all the changes if record number 500 fails, and it will no longer attempt to continue. You are now free to retry the transaction. Failures can occur for many reasons, some of which are beyond your control. If the power or the network goes down while you are inserting records, do you want those records to be saved to the database? You would then need to determine which records in a transaction succeeded and which failed and then retry only the failed records. This would be much easier than retrying the entire transaction.

In the NiFi data pipelines you have built...

lock icon The rest of the chapter is locked
Register for a free Packt account to unlock a world of extra content!
A free Packt account unlocks extra newsletters, articles, discounted offers, and much more. Start advancing your knowledge today.
Unlock this book and the full library FREE for 7 days
Get unlimited access to 7000+ expert-authored eBooks and videos courses covering every tech area you can think of
Renews at $15.99/month. Cancel anytime}