Guide to data tools landscape for developers (sinja.io)

76 points by OlegWock 5 hours ago

aleda145 an hour ago

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 27 minutes 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 37 minutes 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).

jbonatakis 3 hours 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 an hour 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.

ozhero 30 minutes ago

This is an excellent well written article with just the information you need to get a basic understanding of the field.

jrhizor 19 minutes ago

Really a great layout of the space! I like how it doesn’t try to enumerate all options.

datadrivenangel an hour 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 21 minutes 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 an hour ago

Nice guide. One addition in the ingestion section: sling (https://slingdata.io/). it's a single go binary, cli-first.

MNeverOff 3 hours 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 2 hours 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 hours 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 2 hours 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 an hour 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 hours ago

Good to finally know the difference between a lake and a warehouse

doobiedowner an hour ago

What about PI?

michaepf 3 hours 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 hours ago

Apache Avro has 2 encodings: binary AND json.

macintux 3 hours ago

Are you sure? I can't find any reference indicating that.

Update: Huh, TIL https://avro.apache.org/docs/%2B%2Bversion%2B%2B/specificati...

Firfi 4 hours ago

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 hours ago

always understood "land" as the raw data layer though, i.e only the bronze layer in the article.

madsaylor 4 hours ago

Data is the new oil