[ETR #28] 2024 In 12 Errors You Must Avoid


Extract. Transform. Read.

A newsletter from Pipeline

Hi past, present or future data professional!

If you’ve ever seen the legendary American sitcom Seinfeld, you might be familiar with the fictional holiday the characters create, festivus, “A festival for the rest of us.” As a rejection of conventional winter holidays like Christmas/Haunnukah, a core part of festivus is the “airing of grievances.” While I have yet to attempt this in real-life, I’ve spent the past two years airing my grievances with aspects of data engineering with the intention of exposing you, the aspiring or beginning-career engineer, to niche errors that require on-the-fly problem solving.

Since, for many, it’s deep into the holiday season, I won’t take too much time listing all 12 errors; instead, here are three you’re most likely to encounter when first using technologies like Python, Airflow & SQL.

Erroneous datetime conversion

  • The problem: The vendor API & UI were in different time zones
  • The solution: Convert a timestamp to a datetime value and use the offset to subtract the correct amount of hours from UTC to generate the correct EST start time for the fetch, like I explain here

Creating Excessive Docker Images (And Killing Memory)

  • The problem: Creating a new Docker image without accounting for impacts on system memory
  • The solution: 1) Recognize that the Docker image doesn’t need to be recreated for small changes to a Python script. 2) Run Docker prune to remove unused containers, networks and images to free up memory

SQL: Using CREATE OR REPLACE TABLE() instead of INSERT()

  • The problem: Running a CREATE OR REPLACE TABLE() statement will recreate a table BUT it will also wipe useful metadata and data protection policies
  • The solution: Create a date range that encompasses the entirety of your table’s data and then run a delete statement. Personally, I use MIN() AND MAX() in a subquery

While understanding the possible errors you could encounter as a data engineer working with multiple technologies is helpful, I believe it’s just as important to cultivate a healthy mental approach to programming.

Programming is one of the coolest, most frustrating ways you can spend your time. The sooner you realize the absurdity of what we do, the sooner you’ll free yourself to make and learn from mistakes like the ones above and those I highlight in the full story.

Here’s to overcoming more bugs, blockers and annoyances in ‘25.

Happy holidays and thanks for ingesting,

-Zach Quinn

Extract. Transform. Read.

Reaching 20k+ readers on Medium and over 3k learners by email, I draw on my 4 years of experience as a Senior Data Engineer to demystify data science, cloud and programming concepts while sharing job hunt strategies so you can land and excel in data-driven roles. Subscribe for 500 words of actionable advice every Thursday.

Read more from Extract. Transform. Read.

Hi fellow data professional! This edition almost became an apology because I’ve been on a tight deadline and pre-baby morning wake up thinking/writing time has become GSD (get sh!t done) hour. Long story short: I got brought in late to a time-sensitive project that required me to speed through a planned pipeline migration. As a recovering news junkie (aka journalist), I used to live and die by deadlines. But, given the unpredictability of data-oriented work and internal deliverables, it’s...

Hi fellow data professional! For years, the opening of The Simpsons, specifically Bart writing lines on the chalkboard, has been incredibly relatable to me. Not because I’m up to mischief (none I’ll admit to here, anyway), but because I spend most days writing the same three lines of SQL over and over again. If you've ever been paranoid about a table's content, you might know what I'm talking about. It’s the aggregate COUNT(*) grouped by a date field, ordered by date DESC. The output of that...

Hi fellow data professional! In a previous newsletter, I mentioned an idea that I wanted to explore deeper. At the risk of double-quoting a la The Office’s Michael Scott quoting Wayne Gretzky (“You Miss 100% Of The Shots You Don’t Take - Waynze Gretzky - Michael Scott”), here is the idea. “To be marketable as a candidate, you don’t just want to show how you can go from A to B (requirements->pipeline). You need to go from A to C (requirements->pipeline->scale/support).” You might be asking...