Data Engineering Weekly
Data Engineering Weekly
Podcast: dbt Reimagined, Change Data Capture @ Brex, on Data Products and how to describe them

Podcast: dbt Reimagined, Change Data Capture @ Brex, on Data Products and how to describe them

In Conversation with Aswin on Data Engineering Weekly Edition #122

DBT Reimagined by Pedram Navid

Pedram's Data Based
dbt Reimagined
It was late one night, and I couldn’t sleep, so I started falling into a fantasy where constraints weren’t real and anything was possible. I started to think to myself: what would a future dbt look like? Let’s explore the fantasy together. DSLs over Templated Code…
Read more

The challenge with this, having the Jinja templating, I found out two things. One is like; it is on runtime. So you have to build it and then run some simulations to understand whether you did it correctly or not.

Jinja Templates also add cognitive load. The developers have to know how the Jinja template will work; how SQL will work, and it becomes a bit difficult to read and understand.

In this conversation with Aswin, we discuss the article "DBT Reimagined" by Pedram Navid. We talked about the strengths and weaknesses of DBT and what we would like to see in a future version of the tool.

Aswin agrees with Pedram Navid that a DSL would be better than a templated language for DBT. He also points out that the Jinja templating system can be difficult to read and understand.

I agree with both Aswin and Pedram Navid. A DSL would be a great way to improve DBT. It would make the tool more powerful and easier to use.

I'm also interested in a native programming language for DBT. It would allow developers to write their own custom functions and operators, giving them even more flexibility in using the tool.

The conversation shifts to the advantages of DSL over templated code, and they discuss other tools like SQL Mesh, Malloy, and an internal tool by Criteo. I believe that more experimentation with SQL is needed.

Overall, the article "DBT Reimagined" is a valuable contribution to discussing the future of data transformation tools. It raises some important questions about the strengths and weaknesses of DBT and offers some interesting ideas for how to improve.

Change Data Capture at Brex by Jun Zhao

Aswin provided a great definition of CDC, explaining it as a mechanism to listen to database replication logs and capture, stream, and reproduce data in real time🕒. He shared his first encounter with CDC back in 2013, working on a Proof of Concept (POC) for a bank🏦.

Aswin explains that CDC is a way to capture changes made to data in a database. This can be useful for a variety of reasons, such as:

  • Auditing: CDC can be used to track changes made to data, which can be useful for auditing purposes.

  • Compliance: CDC can be used to ensure that data complies with regulations.

  • Data replication: CDC can replicate data from one database to another.

  • Data integration: CDC can be used to integrate data from multiple sources.

Aswin also discusses some of the challenges of using the CDC, such as:

  • Complexity: CDC can be a complex process to implement.

  • Cost: CDC can be a costly process to implement.

  • Performance: CDC can impact the performance of the database.

So, in a summary of the conversation about change data capture (CDC):

  • CDC is a way to capture changes made to data in a database.

  • CDC can be used for various purposes, such as auditing, compliance, data replication, and integration.

  • CDC can be implemented using a variety of tools, such as Debezium.

  • Some of the challenges of the CDC include latency, cost, and performance.

  • CDC can’t carry business context, which can be expensive to recreate.

  • Overall, CDC is a valuable tool for data engineers.

On Data Products and How to describe them by Max Illis

The library example is close to heart for Aswin since his father started his career as a librarian! 📖

👨‍💻 Aswin highlights Max's broad definition of data products, including data sets, tables, views, APIs, and machine learning models. Anand agrees that BI dashboards can also be data products. 📊

🔍We emphasize the importance of exposing tribal knowledge and democratizing the data product world. Max's journey from skeptic to believer in data products is very admirable. 🌟

📝We dive into data products' structural and behavioral properties and Max's detailed description of build-time and runtime properties. They also appreciate the idea of reference queries to facilitate data consumption. 🧩

🚀In conclusion, Max's blog post on data products is one of the best written up on data products around! Big thanks to Max for sharing his thoughts! 🙌

Data Engineering Weekly
Data Engineering Weekly
The Weekly Data Engineering Newsletter