See Rockset
in action

Get a product tour with a Rockset engineer

Snowflake vs StarRocks

Compare and contrast Snowflake and StarRocks by architecture, ingestion, queries, performance, and scalability.

Compare Snowflake to Rockset here

Compare StarRocks to Rockset here

Snowflake vs StarRocks Architecture

Architecture
Snowflake
StarRocks
Deployment model
SaaS - infrastructure, software and cluster ops managed by service provider
PaaS or self managed
Use of storage hierarchy
Cloud object storage for shared data accessible from any virtual warehouse
Data is stored on disk and in memory
Isolation of ingest and query
Yes - separate virtual warehouses for batch data loading, ELT jobs and queries
No, but you can limit resources for ingestion and querying separately
Separation of compute and storage
Yes
No, but StarRocks supports nodes that don't store data locally
Isolation for multiple applications
Yes - separate virtual warehouses for each workload
No

Snowflake is the data warehouse built for the cloud. Snowflake is well-known for separating storage and compute for better price performance. With Snowflake, multiple virtual warehouses can be spun up or down for batch data loading, transformations and queries all on the same shared data.

StarRocks is a high-performance OLAP database that can be deployed on the cloud or self managed. StarRocks does not separate compute and storage and offers limited options for resource isolation. It offers a robust set of features and high performance but requires considerable expertise to operate and scale.


Snowflake vs StarRocks Ingestion

Ingestion
Snowflake
StarRocks
Data sources
• Third party ETL tool to ingest data into Snowflake including Fivetran, Hevo or Striim • Bulk loading from S3, GCS, Azure Blob Storage • Sink Connector for Apache Kafka in Confluent Cloud
Streaming • Kafka • Flink Data lakes • HDFS compatible • Cloud storage
Semi structured data
Ingests JSON and XML as a VARIANT data type
Supports columns with JSON data • Does not support mixed-type columns • Support for star and snowflake schemas
Transformations and rollups
• Third party ELT/ETL tools like dbt • Simple COPY commands at data loading for column recording, omission and casts
Yes, via materialized views

Snowflake is an immutable data warehouse that is built for batch ingestion and relies heavily on the modern data stack ecosystem for data connectors and transformations. Snowflake has a number of integrations to ETL and ELT solutions including Fivetran, Hevo, Striim and dbt. While Snowflake does have support for semi-structured data in the form of a VARIANT type, it is best to structure the data for optimal query performance.

StarRocks ingests data from a variety of sources, including both batch and streaming data. StarRocks can ingest nested JSON data, but enforces type at the column level.

Snowflake vs StarRocks Performance

Performance
Snowflake
StarRocks
Updates
Data warehouse with immutable storage. Updates rewrite and merge entire partitions
While StarRocks is mutable, the update rate is slow, which is why it is most often used for append-only workloads
Indexing
No
Columnar index, limited support for inverted indexes
Query latency
Seconds to minutes on petabytes of data
50-1000ms queries on 100s of TB
Storage format
Compressed columnar format stored in cloud object storage
• StarRocks is a columnstore that organizes data into prefix indexes, per-column data blocks, and per-column indexes • All data is replicated 3 times to achieve both fault-tolerance and concurrency
Streaming ingest
• Ingests on a batch basis • Snowpipe typically ingests in minutes
Data latency is typically 1-2 seconds

Snowflake is designed for batch analytics with analysts and data scientists infrequently accessing large-scale data for trend analysis. Snowflake, like many data warehouses, is immutable and does not support frequently changing data efficiently. Snowflake uses a columnar store to return aggregations and metrics efficiently, often with query response times in the seconds to minutes on petabytes of data.

StarRocks was purpose-built for high-performance ingest, low-latency queries, and high concurrency. Optimized performance requires significant manual tuning.


Snowflake vs StarRocks Queries

Queries
Snowflake
StarRocks
Joins
Yes
Multi-table join support
Query language
SQL
SQL
Developer tooling
• SQL APIs - make SQL calls to Snowflake programmatically • UDFs for Javascript, Python, Java and SQL functions • Go, JDBC, .NET, Node.js, ODBC, PHP, Python drivers
Minimal
Visualization tools
Integrations with QuickSight, Chartio, Domo, Looker, PowerBI, Mode, Qlik, Sigma, Sisense, Tableau, ThoughtSpot and more
Compatibility with MySQL protocols enables StarRocks to work with BI tools

Snowflake supports SQL as its native query language and can perform SQL joins. Snowflake for developers introduced a number of developer tools including SQL APIs, UDFs and drivers to support application development. As Snowflake was originally built for business intelligence workloads, it integrates with a number of visualization tools for trend analysis.

StarRocks uses a high-performance vectorized SQL engine, a custom-built cost-based optimizer, and has support for materialized views.


Snowflake vs StarRocks Scalability

Scalability
Snowflake
StarRocks
Vertical scaling
Resize virtual warehouses via web interface or using DDL commands for warehouses
• Both frontend and backend nodes can be manually resized
Horizontal scaling
• Multi-cluster warehouses allocate additional clusters for higher concurrency workloads • Auto scaling policies can be set
• Both frontend and backend nodes can be manually scaled horizontally

Snowflake virtual warehouses can be scaled up for faster queries or scaled out using multi-cluster warehouses to support higher concurrency workloads. Snowflake has shared blob storage that scales automatically and independently.

StarRocks can scale up or out, but its tightly coupled compute and storage scale together for performance. This often results in resource contention and overprovisioning. Scaling StarRocks often requires deep expertise as there are many levels of the system that need to be managed.