At one of the conferences I went to recently, Pentaho had an awesome t-shirt that said "Data DJ." That got me thinking that data engineers are basically like DJs.
We mix different sources of records, transform streams, work in real-time, try to keep a crowd happy, and use special gear.
The gear we use to mix the records is Apache NiFi. Some of the music (data) streams from Kafka, JMS, file systems, website APIs, and other sources.
Once you get the dance floor moving, you don't want to skip a beat, have a long break of silence, or run a song much faster than the previous song. You have to mix them smoothly together, and there are many variables to account for.
This is exactly like data engineering.
Best Practices for a Good Night of Big Data Dancing
Here are ten practices to help a Big Data DJ ensure good night of big data dancing!
Use one tool to ingest all of your streams (i.e. NiFi as your mixing console).
Use schemas to evolve data as it changes without changing code (NiFi, Schema Registry).
Mix them together and output to one common format (Apache ORC).
Store them for later use (HDFS or S3).
Store a playlist for fast access (HBase).
Audit all your streams in case people don't believe your playlist (NiFi Data Provenance).
Add SQL everywhere (thanks, Apache Calcite). SQL to QueryRecords as they come in so that you can filter and change results.
Since it's ORC, NiFi will give you a quick Hive schema automagically so that you can query with Hive LLAP, Spark SQL, Zeppelin, and all your other crowd favorites (Apache Hive LLAP).
Export the NiFi XML Template (Let's share the magic set!).
Rinse and repeat. Successful night! Let's do it again next Friday.
I took this seriously and actually used NiFi to play some classical songs — not exactly dance floor fillers, but it worked for a meetup.
Okay, so that's not dance-y enough. I can trigger Sonic Pi to make custom beats!
Now once you are happy with your DJing, you are going to think you can be a music producer. That's when Part 2 on adding Streaming Analytics Manager (SAM) to your set will come in!
Can you dig it?
If you disagree or have another analogy, please comment.