Cost and DBU Waste
Usage by SKU, workspace, workload and tag from system.billing.usage, idle and oversized compute read from system.compute.node_timeline, and the workloads worth a deeper cost review.
Databricks Health Check
A Databricks health check is an engineer-led review of a running workspace estate against how it is actually used: DBU waste, cluster and job configuration, Unity Catalog governance, Delta table health, security posture and pipeline reliability. You get a written report, a ranked fix list and the evidence behind every finding. It is also the right first step if you are weighing a migration or a support contract.
Is This You?
Databricks spend keeps rising and nobody can say which workloads and teams account for it
Unity Catalog was adopted in part, so access rules live in two places and agree in neither
Reads on key Delta tables are slower than the data volume justifies and nobody has looked at file counts
Jobs fail on a schedule that someone fixes by hand and nobody has traced to a cause
The engineers who built the workspaces have moved on and the setup is undocumented
A security questionnaire or audit is asking about network access, secrets, encryption keys and audit logging on the platform
You are about to migrate to Databricks, or take on a support or managed contract, and want the facts about the current estate first
Outcomes
Concrete state changes, not deliverable counts. This is what actually differs about your Databricks estate when the engagement closes.
Before
Databricks spend is a line on an invoice and a guess about who drives it.
Usage attributed by workload, team and compute type from system tables, with the largest drivers ranked and handed to the cost optimization work if you want it.
Before
Permissions grew table by table, with grants to individual users and owners who have left.
A governance review against Databricks' own Unity Catalog guidance: groups, ownership, service principals, external locations and workspace-catalog binding, with the gaps listed.
Before
Tables were created once and never maintained, so file counts and layout drift.
Each important table classified as healthy, needing OPTIMIZE or clustering, or needing a maintenance policy, with predictive optimization coverage checked.
Before
Job failures are handled one at a time and the same ones return.
Failure patterns read from job run history, with retries, timeouts, notifications and repair practice reviewed against what Databricks documents.
Scope
Usage by SKU, workspace, workload and tag from system.billing.usage, idle and oversized compute read from system.compute.node_timeline, and the workloads worth a deeper cost review.
Databricks Runtime versions against the support lifecycle, access modes, auto termination, autoscaling bounds, cluster policies, init scripts, and which scheduled work still runs on all-purpose compute.
Metastore and catalog layout, grants to groups rather than users, ownership, service principals for jobs, external locations and storage credentials, and how far coverage extends beyond the legacy metastore.
File counts and sizes, small-file patterns, OPTIMIZE and VACUUM practice, liquid clustering or legacy partitioning and ZORDER, statistics, and whether predictive optimization is running where it should.
Network access (IP access lists, private connectivity), secret scopes, customer-managed keys where they apply, SSO and SCIM, and what audit logging captures and who reads it.
Job and pipeline run history from the lakeflow system tables, retry and timeout settings, notifications, repair practice, data quality expectations, and idempotency of the tasks that get re-run.
The Engagement
Every phase has a defined duration and a concrete artifact handed over at the end of it. You always know what stage you're in and what you've received.
We agree which workspaces and accounts are in scope, the cloud (AWS, Azure or GCP), the focus areas, and what your engineers can export. Delivery is remote, guided by your engineers over screen share. We take no access to your workspaces or code.
You receive
A senior engineer works through the six areas against your exports and run history, with your team in the room where a decision needs context. How long this takes depends on complexity, which focus areas you choose and how many problems turn up along the way.
You receive
The report, ranked by what is likely to cost or fail first. Every finding carries the fix, the effort and the risk of leaving it.
You receive
A walkthrough with the engineer who did the work, then a sequenced plan your team can run or hand to us. Remediation is scoped separately, so the report is useful whoever makes the changes.
You receive
A Databricks health check works from evidence your own platform already records. Databricks publishes system tables for billing, compute, access, jobs, pipelines, query history and predictive optimization, so most findings can be traced to rows in a table your engineers can run a query against, not to anyone's recollection.
| Area | Evidence we read | What it tells us |
|---|---|---|
| Cost and DBU waste | system.billing.usage, system.compute.node_timeline, system.compute.warehouse_events | Spend by SKU, workspace and tag, utilization of all-purpose and jobs compute, and warehouse start and stop behavior. |
| Cluster and job configuration | Cluster policies, job and cluster definitions, system.lakeflow.jobs | Runtime versions, access modes, termination and scaling settings, and which jobs are paused or orphaned. |
| Unity Catalog governance | Catalog, grant and ownership listings, system.access.table_lineage, system.access.audit | Who can read and write what, who owns it, and what is actually used. |
| Delta table health | DESCRIBE DETAIL, table properties, system.storage.predictive_optimization_operations_history | File counts and sizes, layout, and whether maintenance runs. |
| Security posture | Workspace and account settings, secret scope listings, system.access.audit | Network exposure, credential handling, encryption keys and audit coverage. |
| Pipeline reliability | system.lakeflow.job_run_timeline, system.lakeflow.job_task_run_timeline, pipeline event logs | Failure rates, termination codes, run duration drift and where retries hide problems. |
Access to system tables is granted by an admin, with USE CATALOG, USE SCHEMA and SELECT on the system schemas. That is why delivery is guided by your engineers: they run the read-only queries and exports, we read the results.
For a service-level example of what a usage review finds, see the DBU cost governance use case
Delta table health is mostly file layout. A table made of many small files makes every read open more files than the row count justifies, and a table that is never vacuumed keeps storage for data nobody queries. The check starts with DESCRIBE DETAIL, which returns the file count, the size, the partition columns and the clustering columns of each table.
| Check | What Databricks documents | What we look for |
|---|---|---|
| File size | Tables under 2.56 TB are autotuned to a 256 MB target file size. A delta.targetFileSize table property overrides autotuning. | Tables with a very high file count for their size, and tables with a hand-set target nobody remembers choosing. |
| Write-time compaction | Auto compaction combines small files within partitions after a write. Optimized writes are on by default for MERGE, UPDATE with subqueries and DELETE with subqueries. | Streaming and frequent-append tables with neither setting in effect. |
| OPTIMIZE | OPTIMIZE rewrites data files to improve layout. Databricks suggests starting with a daily run, preferably at night, and then adjusting, or enabling predictive optimization. | Tables that have never been optimized, and schedules that run too often to pay for themselves. |
| VACUUM | VACUUM removes files no longer referenced by the table. The default retention threshold is 7 days. Shortening it can let VACUUM delete files that long-running jobs have not yet committed. | Retention shortened without a reason, or no VACUUM at all. |
| Predictive optimization | It runs OPTIMIZE, VACUUM and ANALYZE on Unity Catalog managed tables. It is on by default for accounts created on or after 11 November 2024, with a gradual rollout to older accounts. It does not cover external tables. | Which important tables are managed and covered, which are external and still need a schedule, and what the operations history shows. |
| Clustering | Liquid clustering replaces table partitioning and ZORDER, takes up to four clustering keys, and the keys can be changed without rewriting existing data. It is not compatible with partitioning or ZORDER on the same table. | Over-partitioned tables, ZORDER jobs that could be retired, and candidates for clustering. |
A common finding
Predictive optimization only maintains Unity Catalog managed tables. External tables, and tables still in the legacy metastore, need their own OPTIMIZE and VACUUM schedule or they quietly fall behind.
For a service-level example of fixing this layout problem, see the Delta small-file remediation use case
The governance review compares your Unity Catalog setup with the practices Databricks itself documents, and reports where the estate differs and what the difference costs you in risk or admin effort.
Lineage and audit data complete the picture. The system.access.table_lineage and system.access.audit tables show which tables are read, by whom, and which grants and changes happened, so the review rests on use as well as on configuration.
Greenfield setup of the same model is covered under Databricks implementation
The security review looks at configuration, not at your code. Databricks publishes an open-source Security Analysis Tool that compares account and workspace settings with its security best practices, and we use findings like that as an input, then review them in context rather than repeating a scan.
| Control | What Databricks documents | What we check |
|---|---|---|
| Workspace network access | IP access lists let admins set allow lists and block lists for the workspace and its APIs. Block lists are checked first. | Whether lists exist, whether they match your real egress addresses, and who can change them. |
| Private connectivity | Private Link covers back-end connections from the compute plane to workspace services and front-end private access to the workspace. | Whether private connectivity is configured where your policy requires it, and what still goes over the public network. |
| Secrets | Secret scopes hold credentials in an encrypted store. Redaction applies only to literal secret values and does not stop a deliberate transformation, so access control lists limit who can run commands. | Credentials in notebooks, jobs and cluster configuration instead of secret scopes, and who can read each scope. |
| Customer-managed keys | They can encrypt managed services data and workspace storage, and require the Enterprise tier. | Whether your policy needs them and whether they are in place. |
| Audit logs | They capture authentication, user and group changes, token management, IP access list changes, and activity in clusters, jobs and dashboards. | Whether anyone reads them, whether alerts exist, and how long the history lasts. |
Networking and key-management features differ by cloud provider, so we review against the documentation for the cloud you run on. The review reports gaps against your own policy. It is not a compliance certification.
Configuration problems and reliability problems overlap. A job on an unsupported runtime fails differently from one that runs out of memory, and a job with no retry policy fails differently from one that retries a non-idempotent task. We read both from job run history and from the settings behind it.
For the spend side of cluster and job configuration, see Databricks cost optimization
The report is written to be read by the engineer who runs the platform and the manager who funds the fixes. This is the outline every report follows. It is a structure, not a client document, and it carries no customer data.
| Section | Contents |
|---|---|
| 1. Summary | The findings most likely to cost money, expose data or stop a pipeline, in plain language, with a risk rating for each. |
| 2. Inventory | Workspaces, compute and policies, catalogs, important tables and jobs, and the runtimes in use. |
| 3. Findings register | One row per finding: area, severity, evidence, why it matters, the fix, effort and the risk of waiting. |
| 4. Governance and security gaps | Differences from Databricks' documented practice and from your own policy, grouped by owner. |
| 5. Delta table maintenance plan | Tables by class, the maintenance each needs, and which are covered by predictive optimization. |
| 6. Remediation plan | Three buckets: change now, change next, fine as it is. |
| 7. Appendix | The queries and exports used, so a second engineer can verify any finding. |
A report with a hundred undifferentiated observations has not done the hard part, which is ranking them. Ours puts the few findings that matter first and the rest in the appendix.
The practice is led by a former Databricks professional-services resident solution architect.
If findings point to spend, start with Databricks cost optimization
If findings point to a platform move, see Databricks migration services
For production cover once fixed, see Databricks support
Customer Success
See how enterprises trust AceMQ for their most critical Databricks workloads.
Global Payments Processor
Right-sizing Databricks compute by moving scheduled work off all-purpose clusters and tightening autoscaling, instance selection, and idle timeouts.
Healthcare Analytics Provider
Migrating off the legacy Hive metastore to Unity Catalog with external location mapping, table upgrades, and a grant model that survives audit.
Digital Retail Platform
Fixing Delta tables where streaming writes and over-partitioning have produced millions of tiny files, stalling reads and vacuum operations.
Insurance Services Group
Named-engineer support for production Databricks job failures — driver OOM, spot reclamation, library conflicts, and workflow retry storms.
Media Streaming Provider
Profiling a Spark estate to find over-provisioned jobs, redundant pipelines, and workloads better served by something other than Spark.
FAQ
A Databricks health check is a structured review of a running estate: DBU spend and waste, cluster and job configuration, Unity Catalog governance, Delta table health, security posture and pipeline reliability. It ends in a written report with a ranked list of what will cost or fail first and how to fix it.
In practice they overlap. A health check and an assessment review the running estate and its configuration. An audit usually implies a formal control framework. AceMQ reports against Databricks' documented practice and your own policy and does not certify compliance. We scope the work to the question you are asking and say so up front.
One to four weeks from kickoff to walkthrough, depending on how complex the estate is, which areas you want covered, and how many problems we find along the way. Intake takes a day and the written findings arrive within a week of the review. Several workspaces or accounts sit at the longer end, and we confirm the timeline once we know the workspace count and focus areas.
No. Your engineers run read-only queries against system tables and export cluster policy, job and table details, and we read the results over a working session. Access to system tables is granted by an admin, so your engineers stay in control of what we see.
A list of workspaces and accounts, the cloud you run on, the areas you care most about, and an engineer who can run queries against system tables. We confirm the exact list at scoping.
The health check is broad: six areas, ranked, in one report. Cost optimization goes deep on spend: attribution, compute type, cluster policies and Spark job tuning, with an optional recurring review. Many teams start with the health check and take the cost work as a follow-on if spend is the biggest finding.
It is scoped on the number of workspaces and the depth of review, not on DBU spend. We do not publish a price list. Send the workspace count, your cloud and your focus areas and we will come back with a written quote within 24 hours.
Let's talk
Tell us how many workspaces you run, which cloud they are on and which areas worry you most. We will scope the review and come back with a timeline and a written quote within 24 hours.
Send us a message and we'll follow up within one business day — or book a free 30-min consultation directly.
305-204-2607info@acemq.comPrefer to talk now? Call us directly or use the consultation tab to find a time that works.