← Back to case studies
Foundation workInformation Management · Dsquare · 10 weeks

From legacy database to self-service answers.

A legacy database nobody trusted, rebuilt into a clean analytics layer where anyone in the business can pull a number and know where it came from. Reports 10x faster, with zero visualization license cost.

Data Pipeline EngineeringDatabase ArchitectureBI ImplementationLegacy Modernization

10x

Faster Reports

Dramatically reduced report load times through denormalized data structure

$0

Visualization Costs

Self-hosted Superset eliminated third-party BI tool subscriptions

Unlimited

Dashboard Capacity

Team can create as many dashboards and charts as needed

Self-Service

BI Capability

Internal teams build their own visualizations without engineering support

Overview

An information management company was struggling with slow reports and limited analytics capabilities due to data locked in a legacy relational database. We built an automated pipeline using Python and Apache Airflow to transform their data into a denormalized analytics layer, paired with a self-hosted Apache Superset instance for unlimited self-service dashboards.

The Challenge

The client had years of valuable business data stored in a legacy relational database. While the RDBMS served its purpose for transactional operations, it was never designed for analytics. Report generation was painfully slow. Complex queries required multiple joins across normalized tables, leading to unacceptable load times. The organization needed better business intelligence capabilities, but their options seemed limited. Third-party BI tools came with expensive per-seat licensing. Building reports required engineering involvement for every new visualization request. The data structure itself was the bottleneck, but rebuilding the production database wasn't an option.
  • Legacy RDBMS data not optimized for analytical queries
  • Slow report load times due to complex joins
  • Limited BI capabilities constraining business decisions
  • Third-party visualization tools too expensive for the use case

Our Approach

We proposed a separation of concerns: keep the legacy database for what it does well (transactional operations), and build a dedicated analytics layer alongside it. This approach meant zero disruption to existing systems while unlocking the BI capabilities the organization needed. The key was denormalization. By pre-computing the joins and flattening the data structures at ingestion time, we could eliminate the query-time complexity that was causing slow reports. The analytics layer would be purpose-built for fast reads and flexible querying.
  • Separate analytics layer preserving legacy system integrity
  • Denormalization strategy to eliminate query-time joins
  • Zero disruption to existing operations
  • Purpose-built architecture for BI workloads

The Solution

We built an automated data pipeline using Python and Apache Airflow. The pipeline extracts data from the legacy RDBMS on a scheduled basis, applies transformations to denormalize the structure, and loads it into a dedicated analytics database. The denormalized data model was designed around the questions the business actually needed to answer. Instead of forcing analysts to understand complex table relationships, they could now query flat, intuitive tables that directly mapped to business concepts. For visualization, we deployed Apache Superset on their infrastructure. As an open-source BI platform, Superset provided enterprise-grade dashboarding capabilities without per-seat licensing costs. The team could connect to the analytics database and start building charts immediately.
  • Apache Airflow orchestrating scheduled data extraction
  • Python transformations for denormalization logic
  • Analytics database optimized for read-heavy BI queries
  • Apache Superset for self-hosted visualization

Technical Implementation

Apache Airflow manages the entire pipeline lifecycle. DAGs handle the extraction from the legacy database, transformation logic, and loading into the analytics layer. Built-in monitoring and alerting ensure the team knows immediately if something fails. The Python transformation layer is where the denormalization happens. Complex business logic, calculating aggregates, joining related entities, deriving metrics, runs once during ingestion rather than on every query. This front-loads the computational work, making downstream queries simple and fast. Superset connects directly to the analytics database. We configured data sources, set up role-based access controls, and created initial dashboard templates. From there, the client's team took over, adding new charts, building department-specific views, and even creating client-facing dashboards for external stakeholders.
  • Airflow DAGs for reliable, scheduled pipeline execution
  • Python-based transformation logic for business rules
  • Role-based access control in Superset
  • Template dashboards as starting points for team adoption

The Results

Report load times dropped dramatically. Queries that previously took minutes now return in seconds. The denormalized structure means even complex analytical questions translate to simple, fast queries against the analytics database. More significantly, the organization gained true self-service BI capability. Teams across the company can now build their own dashboards without waiting for engineering support. When someone needs a new visualization, they create it themselves in Superset. When requirements change, they update their charts directly. The self-hosted approach eliminated ongoing third-party costs. There are no per-seat fees, no usage-based charges, no vendor negotiations. The client owns their analytics infrastructure completely. They can connect additional data sources to Superset as their needs grow, building dashboards for internal teams and external clients alike.
  • Report load times reduced from minutes to seconds
  • Self-service dashboard creation across the organization
  • No ongoing third-party visualization costs
  • Extensible platform supporting both internal and client-facing dashboards

Tech stack

PythonApache AirflowApache SupersetPostgreSQL
Primastat helped us creating efficiencies in our internal processes using various AI approaches. The team is responsive and consultative to address requirements.
Raja A. · Delivery Head, Dsquare Technologies

Find out what your AI actually scores.

One week. Thirty questions. A number instead of a hope.

Get your accuracy scoreOne week · fixed scopeYou keep the eval suite either way.