Requirements & constraints:
- Functional: reliable, repeatable analytics for historical reports and dashboards; support ad‑hoc investigator queries.
- Non‑functional: low and predictable dashboard latency (<5s), consistent results, minimal impact to OLTP, maintainable pipeline, reasonable cost.
High-level recommendation (primary): Move to an ETL-based analytics database (data warehouse or OLAP store) as the canonical analytics layer, with selective query pushdown and a federated query engine as transitional tooling. This gives predictable latency and strong consistency for historical analytics while minimizing OLTP load.
Why: BI dashboards typically query wide, aggregated historical data — best served by a tuned analytics DB (columnar/OLAP) with precomputed aggregates. Federation against OLTP + data lake causes cross-system joins, network/scan variability and timeouts. A warehouse provides consistent performance and easier maintenance.
Pros/cons (latency / maintenance / consistency)
- Leave federation (do nothing)
- Latency: high, variable; frequent timeouts
- Maintenance: low short-term but higher firefighting burden
- Consistency: inconsistent due to non-atomic cross-source joins and schema drift
- ETL → analytics DB (recommended)
- Latency: low and predictable for dashboards (pre-aggregations, columnar)
- Maintenance: medium — requires ETL jobs and modeling, but centralized
- Consistency: high — controlled refresh cadence, single source for analytics
- Pushdown filters (optimize queries)
- Latency: medium improvement; helpful for some queries
- Maintenance: low-medium (query tuning required)
- Consistency: neutral — still cross-source joins risk mismatches
- Query federation engine (e.g., Presto/Trino, Athena federation)
- Latency: medium; can improve by locality but still subject to slow source
- Maintenance: medium-high (infra + optimizer tuning)
- Consistency: medium — offers better planning but doesn't eliminate source inconsistency
Migration plan (phased)
- Discovery & modeling (2–4 weeks)
- Inventory BI queries, SLAs, data freshness needs.
- Identify hot tables/joins and required dimensions/metrics.
- Choose tech & design schema (2 weeks)
- Columnar DW (Snowflake, Redshift, BigQuery) or OLAP cubes depending on cost and concurrency.
- Design dimensional model and aggregate tables.
- Build ETL pipelines incrementally (4–8 weeks)
- Start with highest-impact dashboards: implement CDC or scheduled batch loads, transformations, and pre-aggregations.
- Validate row-level reconciliation and business metric parity.
- Parallel run & test (2–4 weeks)
- Point selected BI reports to DW; run side-by-side with federated results for accuracy and stakeholder sign-off.
- Implement monitoring, data quality checks, and SLA alerts.
- Optimize & expand (ongoing)
- Add more datasets, build incremental loads, materialized views.
- Introduce automated lineage and documentation.
- Decommission / hybrid strategy
- Retire federation for covered reports.
- Keep federation + pushdown for rare ad-hoc queries against OLTP with strict guardrails (query limits, read replicas).
Operational practices
- Use CI for ETL, unit tests, and row-level reconciliation.
- Define freshness SLAs (hourly/daily) per dataset.
- Implement RBAC and masks to avoid OLTP-sensitive reads.
- For urgent real-time needs, consider narrow pushdown to OLTP read replicas rather than full federation.
Conclusion
For a BI-focused data analyst team, an ETL-based analytics DB delivers the best trade-off: predictable low latency, strong consistency, and sustainable maintenance. Use selective pushdown and a federation engine only as transitional or for rare ad-hoc needs, not as the long-term backbone for dashboards.