Use Cases
The most popular use cases for PipelineDB are realtime reporting dashboards and realtime monitoring systems. But PipelineDB can be used for any realtime analytics applications where you know the queries you want to run in advance and can express your queries in SQL.
Realtime Reporting Dashboards
Easily build realtime reporting dashboards for internal or customer-facing use. Because summary analytic data is pre-computed by PipelineDB’s continuous query engine before it is stored, any time users refresh their PipelineDB-powered dashboard their analytics will be realtime up to the second.
SELECT
day(arrival_timestamp),
referrer::text,
COUNT(DISTINCT user_id::integer)
FROM users_stream GROUP BY day, referrer;
-- How many ad impressions have we served in the last five minutes? CREATE CONTINUOUS VIEW imps WITH (max_age = '5 minutes') AS
SELECT COUNT(*) FROM imps_stream
-- Join conversions on any prior clicks that may have caused them CREATE CONTINUOUS VIEW click_throughs AS
SELECT
day(arrival_timestamp),
campaign_id, COUNT(*), COUNT(DISTINCT user_id)
FROM conversions JOIN clicks USING(user_id, campaign_id)
WHERE conversions.timestamp > clicks.timestamp
GROUP BY day, campaign_id;
Realtime Monitoring Systems
Monitor systems in realtime using continuous SQL queries and take action when certain criteria are met. Sliding window queries enable you to easily define custom time windows for systems monitoring using regular SQL and power realtime monitoring applications or dashboards.
SELECT
percentile_cont(array[90, 95, 99])
WITHIN GROUP (ORDER BY latency::integer)
FROM latency_stream;
SELECT
day(arrival_timestamp),
fss_agg(ip, 10, response_size)
FROM requests_stream GROUP BY day;
Swag for Stories
Are you using PipelineDB in production and open to sharing your use case with the world? Fill out the form below and we’ll send you a PipelineDB hoodie if your company is selected for a case study, which we’ll publish on our website and send out to the PipelineDB community.