[ETR #14] Build Your Staging Tables Faster/Safer


Extract. Transform. Read.

A newsletter from Pipeline: Your Data Engineering Resource

Presented by Basejump AI

Use natural language prompts to chat with your database in Basejump’s intuitive interface, or embed it directly in your application. Book your demo here.

Hi past, present or future data professional!

One thing that makes my work day easier is when I’m Google-ing (as all software developers do) a problem and I come across the holy grail of solutions: A one-line implementation.

Like anything, however, a one-liner that is too complex can become a bad thing. Think: Chained Pandas expressions that become unreadable. Or cramming a multi-line query inside of a BigQuery client method.

My favorite one line (at least in recent memory) is a clause used with SQL’s ALTER TABLE statement: RENAME TO. You may find renaming a table as compelling as schema creation. But this simple clause can be especially useful in lieu of a more dangerous phrase: CREATE OR REPLACE.

The RENAME command allows you to rename a table without having to completely recreate its contents–and risk a SQL statement failing and losing some or all of your data.

Specifically, I use RENAME TO when I want to convert a copy table with some change, like an updated schema, to a production table. I do so using these steps:

  • Create/backfill a staging table I’ll ultimately convert to prod
  • Use ALTER TABLE `dataset.production_table` RENAME TO `production_table_original`
  • Use ALTER TABLE `dataset.staging_table` RENAME TO `production_table`
  • Double-check all partitions, clustering specifications and metadata descriptions are identical between the tables

The best part is that this is a true one-liner. No chains–or headaches–involved.

To save you a headache, here are this week’s links:

If you want to read more about this method, I cover the process in more detail here.

Questions? You know where to find me: zach@pipelinetode.com.

Until next time–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! It’s baseball season in the U.S., a game defined by the "on-deck" line up. Before a player takes a big swing at the plate, they are already there, weighted bat in hand, timing the pitcher (who has to move a bit faster now thanks to the pitch clock), fully prepared for their moment. They don’t start looking for their helmet only after the umpire calls them up. In your early career perhaps you're considering "taking a big swing" by applying for that dream role at a...

Hi fellow data professional! In undergrad, in pursuit of a coveted TV internship, I once cold messaged an alum of my school using an email I found on his acting reel. When we finally got on the phone it wasn’t the warm handshake connection I was seeking; he spent time grilling me on my intentions and skills. After I hung up I thought “what a jerk.” In my yet-to-be-developed mind I thought as long as I went to the effort of getting someone on the phone they’d reward that initiative with a job,...

Hi fellow data professional! This week I’ve gotten back into something I haven’t even attempted since my college intern days: Meal prepping. Prep is a priority for me since I’m watching my son (and our pets) solo while my wife is away for work. And, I hate to say it but, I somewhat agree with Sam Altman’s controversial quote about not understanding how people parented before widespread AI adoption; when used properly, AI-generated “parental assets” like meal plans, budgets and workout...