Export dashboard as PDF for board reporting

Databricks reduces the gap between raw data and actionable business insight from days or weeks to minutes by combining serverless SQL warehouses, collaborative notebooks, and AI-powered assistants in a single workspace. Business teams can query governed data directly without waiting for engineering handoffs.

    Who this is for:

    Part of the How Databricks Can Help Your Business section of the Databricks tutorial series.

    Architecture / Concept Overview: Export dashboard as PDF for board reporting

    The traditional insight workflow involves filing a ticket, waiting for engineering to prepare data, then building a report. Databricks collapses this by giving business teams direct, governed access to curated datasets via SQL and dashboards.

    %%{init: {"theme":"base","themeVariables":{"background":"#0B0E14","primaryTextColor":"#E0E6ED","lineColor":"#5D6470","darkMode":true,"primaryColor":"#2E4A4A","secondaryColor":"#374151","secondaryTextColor":"#E0E6ED","tertiaryColor":"#111827","tertiaryTextColor":"#E0E6ED","edgeLabelBackground":"#1f2937"}}}%% flowchart LR classDef source fill:#3F4B59,stroke:#9CA3AF,stroke-width:2px,rx:8,ry:8,color:#E0E6ED classDef ingestion fill:#5A4B36,stroke:#C9A86B,stroke-width:2px,rx:8,ry:8,color:#E0E6ED classDef processing fill:#535072,stroke:#8E82B4,stroke-width:2px,rx:8,ry:8,color:#E0E6ED classDef storage fill:#2E4A4A,stroke:#5FAFA8,stroke-width:2px,rx:8,ry:8,color:#E0E6ED classDef serving fill:#3D5550,stroke:#6BB7AA,stroke-width:2px,rx:8,ry:8,color:#E0E6ED classDef governance fill:#5A3F52,stroke:#C28BB0,stroke-width:2px,rx:8,ry:8,color:#E0E6ED Question[Business Question] --> SQLEditor[SQL Editor] SQLEditor --> Warehouse[Serverless Warehouse] Warehouse --> DL[(Gold Tables)] DL --> Results[Query Results] Results --> Dashboard[Live Dashboard] class Question source class SQLEditor ingestion class Warehouse processing class DL storage class Results serving class Dashboard serving

    *Figure 1 — From business question to dashboard in minutes using serverless SQL.*

    %%{init: {"theme":"base","themeVariables":{"background":"#0B0E14","primaryTextColor":"#E0E6ED","lineColor":"#5D6470","darkMode":true,"primaryColor":"#2E4A4A","secondaryColor":"#374151","secondaryTextColor":"#E0E6ED","tertiaryColor":"#111827","tertiaryTextColor":"#E0E6ED","edgeLabelBackground":"#1f2937"}}}%% flowchart LR classDef source fill:#3F4B59,stroke:#9CA3AF,stroke-width:2px,rx:8,ry:8,color:#E0E6ED classDef ingestion fill:#5A4B36,stroke:#C9A86B,stroke-width:2px,rx:8,ry:8,color:#E0E6ED classDef processing fill:#535072,stroke:#8E82B4,stroke-width:2px,rx:8,ry:8,color:#E0E6ED classDef storage fill:#2E4A4A,stroke:#5FAFA8,stroke-width:2px,rx:8,ry:8,color:#E0E6ED classDef serving fill:#3D5550,stroke:#6BB7AA,stroke-width:2px,rx:8,ry:8,color:#E0E6ED classDef governance fill:#5A3F52,stroke:#C28BB0,stroke-width:2px,rx:8,ry:8,color:#E0E6ED Traditional1[Request Filed] --> Traditional2[Eng Queue 3-5 days] Traditional2 --> Traditional3[Data Prepared] Traditional3 --> Traditional4[Report Built] Modern1[Question Asked] --> Modern2[AI Assists SQL] Modern2 --> Modern3[Instant Results] class Traditional1 source class Traditional2 ingestion class Traditional3 processing class Traditional4 serving class Modern1 source class Modern2 processing class Modern3 serving

    *Figure 2 — Traditional ticket-based workflow vs self-service analytics on Databricks.*

    %%{init: {"theme":"base","themeVariables":{"background":"#0B0E14","primaryTextColor":"#E0E6ED","lineColor":"#5D6470","darkMode":true,"primaryColor":"#2E4A4A","secondaryColor":"#374151","secondaryTextColor":"#E0E6ED","tertiaryColor":"#111827","tertiaryTextColor":"#E0E6ED","edgeLabelBackground":"#1f2937"}}}%% graph TD classDef source fill:#3F4B59,stroke:#9CA3AF,stroke-width:2px,rx:8,ry:8,color:#E0E6ED classDef ingestion fill:#5A4B36,stroke:#C9A86B,stroke-width:2px,rx:8,ry:8,color:#E0E6ED classDef processing fill:#535072,stroke:#8E82B4,stroke-width:2px,rx:8,ry:8,color:#E0E6ED classDef storage fill:#2E4A4A,stroke:#5FAFA8,stroke-width:2px,rx:8,ry:8,color:#E0E6ED classDef serving fill:#3D5550,stroke:#6BB7AA,stroke-width:2px,rx:8,ry:8,color:#E0E6ED classDef governance fill:#5A3F52,stroke:#C28BB0,stroke-width:2px,rx:8,ry:8,color:#E0E6ED Alert[Scheduled Alert] --> Condition[Threshold Breached] Condition --> Notify[Notification] Notify --> Slack[Slack Channel] Notify --> Email[Email] Condition --> Dashboard[Dashboard Updated] class Alert processing class Condition ingestion class Notify governance class Slack source class Email source class Dashboard serving

    *Figure 3 — Proactive alerting ensures business teams learn about issues before they escalate.*

    Key Terms

    Prerequisites and Setup

    • Databricks workspace with a serverless SQL warehouse enabled
    • Unity Catalog configured with at least one gold-layer schema
    • Business user accounts provisioned with SELECT access to relevant schemas
    • A notification channel (email or Slack) configured for alerts

    Step-by-Step Implementation

      Configuration Reference

      Export dashboard as PDF for board reporting configuration options
      ParameterDescriptionRecommended Value
      Warehouse typeServerless vs provisionedServerless for ad-hoc
      Auto-stopMinutes before idle shutdown10 minutes
      Query result cacheCache duration for repeated queries1 hour
      Dashboard refreshAuto-refresh intervalEvery 15-60 minutes
      Alert evaluationHow often alert conditions are checkedMatch query schedule
      Concurrency limitMax concurrent queries per warehouse20-50 for shared teams

      Monitoring, Cost, and Security Considerations

      Monitoring

      Track query performance via the Query History interface. Monitor warehouse utilisation and queue times. Set up alerts for queries exceeding latency thresholds so engineers can optimise underlying tables.

      Cost Optimisation

      Use serverless warehouses to avoid paying for idle compute. Enable query result caching to reduce redundant execution. Right-size warehouses based on actual concurrency — most analyst teams work well with a medium warehouse.

      Security and Governance

      Business users should only access gold-layer tables with pre-applied transformations and masking. Use dynamic views to implement row-level security (e.g., regional sales teams see only their region). Audit all query activity through system tables.

      Common Pitfalls and Recommended Patterns

      • Giving analysts access to bronze/silver tables — they encounter raw, unfamiliar schemas and generate incorrect reports
      • Over-provisioning warehouse size for low-concurrency teams — start small and scale on demand
      • Building dashboards without query parameters — leads to proliferation of nearly identical dashboards
      • Skipping result caching — identical queries re-execute unnecessarily, increasing cost
      • Not training business users on the AI assistant — they default to filing tickets instead of self-serving
      • Creating alerts without clear ownership — notifications without assigned responders get ignored

      Frequently Asked Questions

      How fast can a business user get their first answer?

      With serverless warehouses and pre-curated gold tables, a user can run their first query within seconds of logging in. No cluster startup delay.

      Do business users need to know SQL?

      Basic SQL helps, but the AI assistant can generate queries from natural language descriptions. Users can also interact purely through pre-built dashboards.

      Can we connect our existing BI tools?

      Yes. SQL warehouses expose standard ODBC/JDBC connectivity. Tableau, Power BI, Looker, and other BI tools connect natively with optimised drivers.

      How do we handle ad-hoc requests that need new data?

      Self-service for existing gold tables is instant. If a request requires new data sources or transformations, engineers add them to the pipeline and publish new tables to the catalog — but the analyst never waits for a one-off data dump.

      What happens when many analysts query simultaneously?

      Serverless SQL warehouses auto-scale to handle concurrent load. Queries queue briefly during extreme spikes, but the system scales within seconds.