As a data engineering person I can say that this is a great write up!
Some thoughts:
A "bubbling" topic right now is conversational analytics (i.e. talk to your data). There has been an explosion of tools in the last 6 months. YC is backing one too: https://getnao.io/
I feel like pandas is also somewhat frowned upon, the industry has moved on from that. Most SQL tools can now do everything that we could only do with pandas.
In my network everyone is talking about DuckDB. As long as you are under a 1TB it will have everything you need. I think most people should start with that vs locking themselves into something like Snowflake
estetlinus [3 hidden]5 mins ago
I love what I am hearing.
I still see a lot of engineers using pandas, but it is such a horrible tools. You usually find an abandoned notebook with 100s of ”df_final_2” with sequential wrangling, making it impossible to understand what’s happening. Notebooks are also horrible for the same reason IMO.
With chat-your-data you have Hex, Claude + MCP, snowflake, Databricks etc… everyone’s in on it.
sdpy [3 hidden]5 mins ago
Just to add, people in my network have been talking about polars (as an alternative to pandas) and other dataframe libraries. They're much easier to use now thanks to the Narwhals compatibility layer (for example, Narwhals was recently added as a dependency to scikit-learn).
ozhero [3 hidden]5 mins ago
This is an excellent well written article with just the information you need to get a basic understanding of the field.
jbonatakis [3 hidden]5 mins ago
> A data warehouse on the other hand is an OLAP database and is optimized to work on columns
A bit of a pedantic nit here: a data warehouse is a usage pattern. It’s not necessarily tied to any specific technology, however it is commonly implemented with OLAP systems like Snowflake, BigQuery, etc. But there’s nothing stopping you from building out your data warehouse in Postgres or MySQL. If you’re stitching together disparate datasets to build a unified model for analytics, you’ve got yourself a data warehouse no matter what system it lives on.
datadrivenangel [3 hidden]5 mins ago
You are pedantically correct but technically wrong, as even optimized postgres is going to suffer on analytical patterns without extensions. With extensions (DuckDB or Citus) you can do large aggregations, but regular postgres at medium/large scale (billions of rows, 100s of GB) starts having a lot of foot guns and complex babying to do analytics. A bunch of indexes and you'll be fine though.
jrhizor [3 hidden]5 mins ago
Really a great layout of the space! I like how it doesn’t try to enumerate all options.
datadrivenangel [3 hidden]5 mins ago
"Popular metadata catalog solutions are Hive Metastore, AWS Glue Data Catalog, and Unity Catalog from Databricks.
For query engine you can use, for example, Apache Spark, Trino, or Amazon Athena."
DuckDB is eating the query engines and catalogs. Really could use more coverage on how DuckDB is changing the data tools landscape.
estetlinus [3 hidden]5 mins ago
Can you suggest any good resources for your statement? I know DuckDB is hyped, but didn’t know they’re eating engines and catalogs.
flarco [3 hidden]5 mins ago
Nice guide. One addition in the ingestion section: sling (https://slingdata.io/). it's a single go binary, cli-first.
MNeverOff [3 hidden]5 mins ago
It's a good all-round primer, well written.
Would love to hear more about larger-than-memory tasks and running local Dask clusters. I processed many-a-dataset that way that would normally make pandas choke.
botswana99 [3 hidden]5 mins ago
Well, I find this post looks good, but a like lot of 'data for developers' posts it's just a list of tools. As if a collection of tools banded together actually makes your customer successful.
What's missing?
1. There's nothing about deployment. How do I take this collection of tools and code and actually deploy it into production, or actually regression test it functionally? How do I make a small change in a database table and not have a massive regression? How do you do that automatically? How do you do it quickly?
2. It's cursory on testing. One of the biggest differences from a software developer to a data engineer is that your data providers give you crap data all the time. It could break. How do you test data? How do you get adequate test coverage? These things are essential for software developers and are actually doubly essential for data engineers and building analytics systems.
3. It's what success looks like. It's not just about a collection of tech; it's about making your customers successful. What does it mean to deliver good insight? How do you do it? How do you measure customer success, and measure your success? As a team, you wouldn't talk about software engineering without mentioning DevOps or DORA metrics. There's nothing here about that.
sigh
chrisweekly [3 hidden]5 mins ago
Great post! Also, I dig your site -- it's attractive and highly usable, and the "personal" toggle in the footer is a clever affordance I haven't seen before for separating professional content.
kingjimmy [3 hidden]5 mins ago
excluding Denodo from the list sows this is more of a non-enterprise guide to data management and tools. There is only one real semantic layer that can cover operational and historical data and thats Denodo. If you use snowflake horizon or unity, all the data needs to be loaded first and not real time.
aleda145 [3 hidden]5 mins ago
I have never heard of Denodo before. "The only real semantic layer" is a bold claim. From the website it just looks like another data governance tool?
svfat [3 hidden]5 mins ago
Good to finally know the difference between a lake and a warehouse
doobiedowner [3 hidden]5 mins ago
What about PI?
michaepf [3 hidden]5 mins ago
This was great, thanks for writing it up. Even as someone in the data space for a long time, I learned quite a bit.
jpitz [3 hidden]5 mins ago
Apache Avro has 2 encodings: binary AND json.
macintux [3 hidden]5 mins ago
Are you sure? I can't find any reference indicating that.
Now I'll be thinking of "L" in ETL as "Land" and not "Load".
Although the article doesn't propose that but uses a lot of "Land" terminology.
"Load" => "load where? or FROM where?" - ambiguous
"Land" => "land where?" - clear
nadzzz [3 hidden]5 mins ago
always understood "land" as the raw data layer though, i.e only the bronze layer in the article.
Some thoughts:
A "bubbling" topic right now is conversational analytics (i.e. talk to your data). There has been an explosion of tools in the last 6 months. YC is backing one too: https://getnao.io/
I feel like pandas is also somewhat frowned upon, the industry has moved on from that. Most SQL tools can now do everything that we could only do with pandas.
In my network everyone is talking about DuckDB. As long as you are under a 1TB it will have everything you need. I think most people should start with that vs locking themselves into something like Snowflake
With chat-your-data you have Hex, Claude + MCP, snowflake, Databricks etc… everyone’s in on it.
A bit of a pedantic nit here: a data warehouse is a usage pattern. It’s not necessarily tied to any specific technology, however it is commonly implemented with OLAP systems like Snowflake, BigQuery, etc. But there’s nothing stopping you from building out your data warehouse in Postgres or MySQL. If you’re stitching together disparate datasets to build a unified model for analytics, you’ve got yourself a data warehouse no matter what system it lives on.
For query engine you can use, for example, Apache Spark, Trino, or Amazon Athena."
DuckDB is eating the query engines and catalogs. Really could use more coverage on how DuckDB is changing the data tools landscape.
sigh
Update: Huh, TIL https://avro.apache.org/docs/%2B%2Bversion%2B%2B/specificati...