What is Materialize?

Materialize is the Cloud Operational Data Store that delivers the speed of streaming with the ease of a data warehouse. With Materialize, organizations can use SQL to transform, deliver, and act on fast-changing data.

To keeps results up-to-date as new data arrives, Materialize incrementally updates results as it ingests data rather than recalculating results from scratch.

Try it out! 🚀

  1. Sign up for a free trial account or download the Materialize Emulator Docker image.
  2. Follow the quickstart guide to learn the basics.
  3. Connect your own data sources and start building.

Get Started

Key features

Materialize combines the accessibility of SQL databases with a streaming engine that is horizontally scalable, highly available, and strongly consistent.

Incremental updates

In traditional databases, materialized views help you avoid re-running heavy queries, typically by caching queries to serve results faster. But you have to make a compromise between the freshness of the results, the cost of refreshing the view, and the complexity of the SQL statements you can use.

In Materialize, you don’t have to make such compromises. Materialize supports incrementally updated view results that are always fresh (even when using complex SQL statements, like multi-way joins with aggregations) for both:

How? Its engine is built on Timely and Differential Dataflow — data processing frameworks backed by many years of research and optimized for this exact purpose.

Standard SQL support

Materialize follows the SQL standard (SQL-92) implementation, so you interact with it like any relational database: using SQL. You can build complex analytical workloads using any type of join (including non-windowed joins and joins on arbitrary conditions), but you can also leverage exciting new SQL patterns enabled by streaming like Change Data Capture (CDC), temporal filters, and subscriptions.

Real-time data ingestion

Materialize provides native connectors that allow ingesting data from various external systems:

For more information, see Ingest Data and Integrations.

PostgreSQL wire-compatibility

Every database needs a protocol to standardize communication with the outside world. Materialize uses the PostgreSQL wire protocol, which allows it to integrate out-of-the-box with many SQL clients and other tools in the data ecosystem that support PostgreSQL — like dbt.

Don’t see the a tool that you’d like to use with Materialize listed under Tools and integrations? Let us know by submitting a feature request!

Strong consistency guarantees

By default, Materialize provides the highest level of transaction isolation: strict serializability. This means that it presents as if it were a single process, despite spanning a large number of threads, processes, and machines. Strict serializability avoids common pitfalls like eventual consistency and dual writes, which affect the correctness of your results. You can adjust the transaction isolation level depending on your consistency and performance requirements.

Learn more

Back to top ↑