Materialize
This page describes how to set up a connection between WarpStream and Materialize, ingest data into Materialize, and create a materialized view of this data.
Last updated
Was this helpful?
Was this helpful?
export BOOTSTRAP_HOST=<YOUR_BOOTSTRAP_BROKER> \
SASL_USERNAME=<YOUR_SASL_USERNAME> \
SASL_PASSWORD=<YOUR_SASL_PASSWORD>;warpstream kcmd -bootstrap-host $BOOTSTRAP_HOST -tls -username $SASL_USERNAME -password $SASL_PASSWORD -type create-topic -topic materialize_click_streamswarpstream kcmd -bootstrap-host $BOOTSTRAP_HOST -tls -username $SASL_USERNAME -password $SASL_PASSWORD -type produce -topic materialize_click_streams --records '{"action": "click", "user_id": "user_0", "page_id": "home"},,{"action": "hover", "user_id": "user_0", "page_id": "home"},,{"action": "scroll", "user_id": "user_0", "page_id": "home"}'CREATE SECRET warpstream_username AS 'ccun_XXXXXXXXXX';
CREATE SECRET warpstream_password AS 'ccp_XXXXXXXXXX';CREATE CONNECTION warpstream_kafka TO KAFKA (
BROKER '$BOOTSTRAP_HOST',
SASL MECHANISMS = "PLAIN",
SASL USERNAME = SECRET warpstream_username,
SASL PASSWORD = SECRET warpstream_password
);CREATE SOURCE warpstream_click_stream_source
FROM KAFKA CONNECTION warpstream_kafka (TOPIC 'materialize_click_streams')
FORMAT JSON;SELECT * FROM warpstream_click_stream_source;CREATE MATERIALIZED VIEW
warpstream_click_stream_mv
AS
SELECT (data::jsonb)['user_id'], COUNT(*)
FROM warpstream_click_stream_source
GROUP BY (data::jsonb)['user_id'];SELECT * FROM warpstream_click_stream_mv;warpstream kcmd -bootstrap-host $BOOTSTRAP_HOST -tls -username $SASL_USERNAME -password $SASL_PASSWORD -type produce -topic materialize_click_streams --records '{"action": "click", "user_id": "user_1", "page_id": "home"}'SELECT * FROM warpstream_click_stream_mv;