Skip to content
Notifications
Clear all

Snowflake vs Databricks for a mid-market data team - real experience

2 Posts
2 Users
0 Reactions
2 Views
(@cloud_watcher_99)
Reputable Member
Joined: 1 month ago
Posts: 172
Topic starter   [#21251]

Alright, this one’s been brewing for a while. We’re a 50-person SaaS shop with a 5-person data team. Ran our analytics stack on Snowflake for 2 years, then switched to Databricks last year for a 6-month POC before committing. The hype is real on both sides, but the reality on the ground was... enlightening.

We initially loved Snowflake’s simplicity. Getting a BI schema up and running felt like magic. But as our pipelines grew (think: 20+ dbt models, ingesting from 5+ sources), the cost predictability vanished. Our biggest shock was the auto-suspend not being the panacea we thought. We had a few long-running queries from a Looker explore that would spin up a medium warehouse and keep it warm for hours because of user activity patterns. The bill spike was silent and brutal.

Here’s the config we thought would save us, but didn’t:

```sql
CREATE WAREHOUSE analytics_wh
WAREHOUSE_SIZE = MEDIUM
AUTO_SUSPEND = 300
AUTO_RESUME = TRUE;
```

The issue? Concurrency. A few analysts running queries at once would spawn *multiple* warehouses due to our clustering setup. Snowflake support said we were “using it as designed” and suggested query optimization (which we did) and using query acceleration (which added more cost). The reality was we needed a full-time person just to babysit warehouse sizing and suspend policies.

Databricks felt like moving from a managed condo to a construction site. The initial setup on AWS was daunting – managing instance profiles, storage credentials, and cluster policies felt heavy. But once we got our Unity Catalog setup and settled on a single multi-cluster policy for interactive analysis, the cost became *so* much more linear. We pay for the compute we spin up, and it goes away completely when idle. The DBU charge is predictable. Our biggest win was converting some heavy transformation jobs from dbt on Snowflake to Spark SQL notebooks on Databricks – runtime cut by 60% for a fraction of the cost.

The trade-off? We now own more infrastructure. A poorly written Spark join can OOM a cluster and fail the job, whereas Snowflake would just… chug along. Our team had to skill up on Spark UI debugging. Vendor support from Databricks was more hands-on during the POC, but post-sales, you’re back to community and tickets like everyone else.

So, would I renew? For our team’s mix of ad-hoc analytics and production pipelines, we’re sticking with Databricks. The control over cost and performance is worth the operational overhead. But if I was leading a team of pure SQL analysts who just needed a rock-solid, set-and-forget query engine? I’d probably swallow the cost and go back to Snowflake. It’s a classic build vs. buy decision, dressed up as a data platform choice.


cost first, then scale


   
Quote
(@integration_maven_2)
Estimable Member
Joined: 4 months ago
Posts: 91
 

I'm the head of data at a 75-person B2B marketing platform. We manage a hybrid ELT pipeline using Fivetran, dbt, and a mix of reverse ETL tools, all running on Databricks. We evaluated Snowflake heavily 18 months ago but stayed put.

Here is the on-the-ground comparison from managing both in production, based on the specific pain points you mentioned.

1. **Cost Predictability & Model:** Snowflake charges for compute (per-second warehouse runtime) and storage (per-terabyte). Databricks charges for compute (DBUs per hour on a cluster) and, separately, for cloud object storage (S3/ADLS). The hidden shocker with Snowflake isn't the per-second billing, it's the warehouse concurrency scaling. As you found, multiple users or queues can trigger multiple warehouses, multiplying costs. Databricks' cost spike comes from **cluster auto-scaling**. A misconfigured `spark.databricks.cluster.profile` or an overly aggressive `max_workers` setting on a streaming job can burn through DBUs. In my last shop, a job meant for a 4-8 worker cluster scaled to 32 workers due to a data skew issue, costing ~$800 for a single run. Both require vigilant monitoring, but Snowflake's spikes felt more silent; Databricks' are louder but can be more violent.

2. **Compute Warm-up & Performance:** Snowflake's zero-management appeal is real, but cold starts matter. A suspended warehouse resuming adds 1-3 seconds of latency. Databricks cluster start-up is slower, often 5-7 minutes for a new all-purpose cluster. This makes Databricks feel worse for ad-hoc analyst queries. However, for scheduled pipeline workloads, we keep clusters configured for reuse. The key difference is caching. Snowflake's result cache is brilliant for repeated queries. Databricks uses Delta Cache (on SSDs in worker nodes), which is powerful for repeated scans of the same data files but is lost when a cluster terminates. For a dashboard hitting the same aggregates, Snowflake can be 10x faster on the second run. For a complex multi-pass ELT job, a warmed-up Databricks cluster with optimized Spark shuffles often processed data 2-3x faster than an equivalent Snowflake XL warehouse, in our tests.

3. **Operational Overhead:** Snowflake is a managed database. You don't tune knobs. Databricks is a managed Spark service. You *do* tune knobs. In Databricks, you manage cluster configurations, Spark configurations (think `spark.sql.shuffle.partitions`), and watch for driver-out-of-memory errors. Our team spent roughly 15-20% more engineering time on infrastructure tuning with Databricks compared to Snowflake. The trade-off is control. We could implement a medallion architecture in Delta Lake with `MERGE`, `VACUUM`, and `Z-Order` clustering exactly as we needed. Snowflake's simplicity meant we worked around some limitations.

4. **Ecosystem & Openness:** This was our deciding factor. Snowflake is a fantastic, closed SQL database. Databricks is an open data lake platform with a SQL engine (Photon). If your stack is purely SQL-based and your team uses standard BI tools, Snowflake is simpler. If you have data science workloads (Python libraries, MLflow), need to process unstructured data, or want to avoid vendor lock-in for storage, Databricks wins. We ingest JSON logs, run PySpark transformations, train Scikit-learn models in the same notebook, and serve results via a REST endpoint, all within the same platform. Doing that in Snowflake would require a patchwork of external services. For a pure analytics team, this is overkill. For a combined data engineering and analytics team, it's a productivity multiplier.

My pick is Databricks, but **only if** your 5-person team has at least two members comfortable with Spark/Python and your use case extends beyond analytics (machine learning, event streaming, complex data product development). If your primary workload is SQL transformations and BI dashboards for a SaaS product, and you can implement strict warehouse governance, Snowflake's simplicity likely still wins. To make a clean call, tell us: what percentage of your work is *only* SQL+BI, and does anyone on the team currently write PySpark or Scala code?


connected


   
ReplyQuote