Back to articles
PostgreSQL JSONB for Video Analytics Dashboards

PostgreSQL JSONB for Video Analytics Dashboards

via Dev.to Webdevahmet gedik

The Problem with Rigid Schemas for Analytics Video analytics data is inherently messy. One day you are tracking view counts by region, the next you need device breakdowns, then watch-time percentiles. Adding a column for every new metric leads to a table with 50 nullable columns and constant migrations. At DailyWatch , we solved this with PostgreSQL's JSONB column type. Schema Design We keep structured data in normal columns and flexible analytics in JSONB: CREATE TABLE video_analytics ( id SERIAL PRIMARY KEY , video_id TEXT NOT NULL REFERENCES videos ( video_id ), captured_at TIMESTAMPTZ NOT NULL DEFAULT NOW (), views INTEGER NOT NULL , likes INTEGER NOT NULL , metrics JSONB NOT NULL DEFAULT '{}' ); The metrics column stores everything that might change shape over time: { "regions" : { "US" : 45000 , "GB" : 12000 , "DE" : 8500 , "FR" : 6200 }, "devices" : { "mobile" : 0.62 , "desktop" : 0.31 , "tablet" : 0.07 }, "watch_time" : { "avg_seconds" : 142 , "p50" : 98 , "p95" : 340 }, "engag

Continue reading on Dev.to Webdev

Opens in a new tab

Read Full Article
8 views

Related Articles