Splitgraph has been acquired by EDB! Read the blog post.

Snowflake

Snowflake is an enterprise cloud data warehouse. Seafowl's architecture is similar to Snowflake in that it's an analytical database that can store data in object storage and use a smaller metadata store to plan queries. However, they are very different in their use case and purpose.

The information on this page also applies to other cloud data warehouses like BigQuery or Redshift.

Comparison

Purpose

Snowflake's purpose is being an enterprise data warehouse that powers internal business intelligence applications and dashboards.

In comparison, Seafowl is designed for powering public-facing data-driven applications. In particular, you can only query Seafowl over HTTP. Even though Snowflake uses HTTP behind the scenes, it has JDBC and ODBC drivers, making it queryable from a variety of analytics tools.

Performance

We haven't performed any benchmarks comparing Seafowl and Snowflake. For an approximation of how Seafowl would fare against Snowflake in terms of performance, you can look at this DuckDB vs Snowflake benchmark, since Seafowl is close in single-node performance to DuckDB.

Query syntax

Snowflake is designed for analytical queries and supports certain useful constructs for this purpose, for example, PIVOT queries.

In comparison, Seafowl supports a subset of the PostgreSQL syntax.

Pricing

Snowflake, in effect, charges per minute of warehouse running time and is notoriously expensive. The cheapest Snowflake warehouse is 1 credit per hour ($2.00/h), with a minimum billing time of one minute.

Seafowl is open-source and is much cheaper to run than Snowflake. For example, you can use Fly.io to run a Seafowl deployment with a 3M row dataset that powers an interactive notebook and it will fit in Fly's free tier.

Deployment patterns

Seafowl is HTTP-first and is designed to be accessible directly from the Internet, letting your application run SQL queries on it straight from the client.

While Snowflake has query result caching, it's not designed to be exposed to the Internet. Snowflake is designed to be accessed by a few trusted BI tools and dashboards. In addition, the fact that starting and suspending a warehouse takes time means that using Snowflake for this purpose requires a warehouse to be always running, which makes it exorbitantly expensive.

On the other hand, Seafowl supports using various HTTP caches (CDNs, dedicated caches, the browser cache) to deliver query results to your end users. With Snowflake, you'd have to implement this in your backend application.

When to use Snowflake over Seafowl

  • You want a powerful and fast enterprise data warehouse
  • You want to publish internal analytics dashboards and reports and don't expect them to be viewed outside of your company
  • You want to be able to use BI tools like Tableau, Looker, Metabase, PowerBI etc.

When to use Seafowl over Snowflake

  • You're publishing a data-driven Web application (visualization, dashboard, interactive report)
  • You only anticipate querying the database over an HTTP API
  • You want a lower cost of ownership than Snowflake