Analytics
Databases
IoT and Machine Data
Incremental Engine
view: raw_users
view: user_alerts
Continually updated
SQL Materialized Views
Subscribe to Changes
Stream to 3rd-Party Systems

The Cloud Operational Data Store Built for
Fraud Detection

Loan eligibility rule calculation time decreased by 98.15%, dropping from 27 seconds to half a second.

Wolf Randall
Wolf Randall Director, Data Products, Vontive

Fraud Detection with Materialize

User-facing notifications

Fraud and anomaly detection

Risk Modeling

Monitoring and maintenance

Implement Real-time Fraud Detection

Why Materialize?

Fraud Detection with Ease, Scale, and Trust

undefined

Traditional Warehouses: Too Slow

undefined

Stream Processors: Too Complicated

Materialize packages the speed of stream processors into a cloud data warehouse

Streaming EngineResultsWriteRead

Streaming Engine

Read: What is a Streaming Database?  →
undefined

Event-Driven Primitives

Docs: SQL SUBSCRIBE  →

Access via standard SQL

Incrementally Maintained Views

Write complex SQL transformations as materialized views that efficiently update themselves as inputs change.

Learn More

Built for JOINs

Chevron Down

Multi-way, complex join support, even across databases - all in standard SQL.

Learn More

Sliding Windows

Chevron Down

Write queries that filter to a window of time anchored to the present, Materialize will update results as time advances.

Learn More

SQL Subscriptions

Chevron Down

Write alerts as SQL queries with filters and subscribe to new rows as they appear.

Learn More
incremental.sql
CREATE MATERIALIZED VIEW my_view AS
	SELECT userid, COUNT(api.id), COUNT(pageviews.id)
	FROM users
	JOIN pageviews on users.id = pageviews.userid
	JOIN api ON users.id = api.userId
	GROUP BY userid;
userID api_calls pageviews
VPLaKV 400 20
MN37Mt 60 9
1fT4KY 72 42
sT4QY 10 342

Incrementally Maintained Views

Write complex SQL transformations as materialized views that efficiently update themselves as inputs change.

Learn More
incremental.sql
CREATE MATERIALIZED VIEW my_view AS
	SELECT userid, COUNT(api.id), COUNT(pageviews.id)
	FROM users
	JOIN pageviews on users.id = pageviews.userid
	JOIN api ON users.id = api.userId
	GROUP BY userid;
userID api_calls pageviews
VPLaKV 400 20
MN37Mt 60 9
1fT4KY 72 42
sT4QY 10 342

Built for JOINs

Multi-way, complex join support, even across databases - all in standard SQL.

Learn More
joins.sql
SELECT DISTINCT ON (auctions.id) 
   bids.amount, 
   auctions.item,
   auctions.seller
 FROM auctions, bids
 WHERE auctions.id = bids.auction_id
 ORDER BY auctions.id,
   bids.amount DESC,
   bids.buyer;
			
amount item seller

Sliding Windows

Write queries that filter to a window of time anchored to the present, Materialize will update results as time advances.

Learn More
sliding.sql
CREATE MATERIALIZED VIEW my_window AS
	SELECT date_trunc('minute', received_at),
	COUNT(*) as order_ct, SUM(amount) as revenue
	FROM orders
	WHERE mz_now() < received_at + interval '5 minutes'
	GROUP BY 1;
minute order_ct revenue

SQL Subscriptions

Write alerts as SQL queries with filters and subscribe to new rows as they appear.

Learn More
alerting.sql
SELECT userID, email, MAX(orders.id) as last_order
  FROM users
  JOIN orders ON orders.userID = users.id
  GROUP BY userId, email
  -- Use a filter to surface users with a high % of fraud
  HAVING SUM(is_fraud) / COUNT(orders.id)::FLOAT > 0.5;
userID email last_order
REOtIb 13/12/2022
Y5KBE8 9/12/2022
Wj7JQ0 13/12/2022
tPCQ0 13/11/2022
Checkmark
Checkmark
Checkmark
Checkmark

Presents as PostgreSQL

Streaming Inputs

Built for JOINs

Active Replication

Low-Latency Serving Layer

Secure and Compliant


The Warehouse-Native Approach
to Fraud Detection.

“Our data warehouse alerts run too slowly”

“Creating and updating notification logic is a hassle”

“We don’t have the data engineers for real-time alerts”

“We can’t risk automation if our system gives bad data”

“We use other systems for our notifications”

“We need to run alerts at massive scale”

More Use Cases

Automation and Alerting

Automation and Alerting

Real-Time & User-Facing Analytics

Real-Time & User-Facing Analytics

Segmentation and Personalization

Segmentation and Personalization

ML in Production

ML in Production

Try Materialize Free