To be clear, this article won’t be an indictment on the popular McDonald’s sandwich. Indeed, that was in itself a brilliant idea to combat flagging Friday sales in the predominantly Catholic neighborhood of a franchise owner. Due to most of his customers choosing to abstain from meat on Fridays, franchise owner Lou Groen famously made a bet with Ray Croc over whether his fish sandwiches could sell more than Croc’s idea of the “Hula” sandwich – basically a fried pineapple ring on a bun. Groen won and the Filet-o-Fish went on the menu. The key portion to remember in this story is that when describing the Filet-o-Fish, “it is what it is” happens to be an apt phrase. It’s a fish sandwich, and no matter how you transform it – cool it, heat it, or even digest it – it will never be beef. This is precisely what made it such a successful seller to the franchise’s patrons with dietary restrictions.
I’ve talked previously about the dangers of dirty data in both the source system and in the data warehouse. A prevalent school of thought I often see within IT organizations is that bad data can just be filtered out in the report query – or even ETL. To a certain extent, they are correct. If I know I only want to see records with values A, B, and C, a filter applied to find those values will exclude any records with invalid business values in those rows. However, what it won’t do is exclude records with invalid business values in the OTHER columns. As a result, it doesn’t matter how beautiful your queries and reports are – your data still runs a high risk of being wrong. So, while you can ingest the data into your warehouse, and you can make it more palatable by applying filters in your SQL, nothing will change what it is at its core – bad data. Similarly, a fish sandwich will always be a fish sandwich. It’ll never be a steak.