[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! SQL Lite, the database you most likely learned SQL on, is built atop 100k lines of source code. Sound like a lot? Compare that to Chromium, the engine for Google Chrome, which boasts 30+ million lines of code under the hood. Shortly after acquiring Twitter/X, the world's first trillionaire, Elon Musk, famously asked engineers to tell him how many lines of code they wrote per day, igniting a debate among engineers throughout the software and data domains. When I...

Hi fellow data professional! If you read my note on Tuesday you’ll know I’m coming off of the data engineering week from hell that seeped into my personal life, and delayed the launch of something cool I was planning to share with you; if you want to know more about that, scroll to the end of this message. Last week a flagship data source had a major problem and since it’s within my ownership area, I was the one with the knowledge and responsibility to fix it. I wanted to share the experience...

Hi fellow data professional! Hardly a work day goes by without receiving a request from a data analyst. They range from the mundane “Can you add this column?” to the occasional emergency “The data didn’t load all weekend and the leadership call starts in 15 minutes!” At the end of a jam-packed week I received an unusual request: Help with a Python script. My teammate wanted to know: Best practices How to commit to GitHub What the best way to deploy is They admitted the task was simple,...