Genie already knows SQL. What it does not know on day one is your business. That part is your job.
For years the data warehouse workflow looked the same.
A business leader asks a question. A BI analyst writes the SQL. The warehouse runs it. Someone checks the numbers. A report comes back. Sometimes in minutes. Often in days.
Databricks Genie changes the front of that loop. The leader can ask the question directly, in plain English, and get an answer back from the warehouse.
But there is one idea that decides whether Genie becomes a trusted tool or an impressive demo. Genie is only as good as its understanding of your business.
https://youtu.be/PJ9Um-7HVZo
Let us use one simple example the whole way through.
A sales VP types: "What were our top ten products in Texas last quarter?"
Genie reads the question, works out which tables are involved, writes SQL, runs it on a SQL warehouse, and returns a table and a chart.
On a good day, this takes seconds. No ticket, no queue, no waiting for the analyst to come back from a meeting.
That is the promise. Now let us look at how it can go wrong, because that is where the real lesson is.
The most useful mental model is this: Genie is a new analyst on their first day.
This analyst is genuinely excellent at SQL. Joins, aggregations, filters, window functions, date math. Nothing in the syntax scares them.
But on day one, they do not know your company. They do not know which table finance trusts. They do not know which column people actually mean when they say revenue. They have never been to your quarterly review.
So you ask for revenue, and they find a column called gross_amount and sum it.
The query runs perfectly. No errors. A clean chart. And the answer is wrong, because your finance team defines revenue as net sales, after refunds, excluding cancelled orders.
The problem was never SQL. The problem was context.
Modern AI can already write valid SQL. That stopped being the hard problem a while ago.
The hard problem is writing the right SQL for your business. And "right" hides a lot of decisions in a short question like ours:
A senior analyst answers all of these without thinking, because they learned them over months. Genie needs to be told. That telling is called onboarding, and it is mostly data work, not AI work.
In Databricks, you onboard Genie through a Genie space. A space is a focused area where you choose the data, add instructions and test questions. Here is what good onboarding includes.
Trusted datasets. Give Genie a small set of clean, curated tables, ideally your gold layer. Not every raw table you own. If two tables both look like orders, Genie has to guess which one is real.
Business terms. Write down what words mean. Revenue equals net sales after refunds, excluding cancelled orders. Texas means shipping state. Last quarter means the fiscal quarter.
Table relationships. Tell Genie how tables join. Orders join to customers on customer_id, not on email. Primary and foreign keys in Unity Catalog help here too.
Key filters. Some rules apply almost every time. Exclude test accounts. Only count completed orders. Say so once, clearly.
Example questions with approved SQL. Show Genie how your best analyst would answer common questions. These examples teach patterns better than any description.
Official metric definitions. If the company already has an approved definition of a metric, point Genie at it instead of letting it rebuild the formula every time.
Notice that almost every item on this list is something a good data team should have anyway. Clear tables, clear names, clear definitions. Genie just makes the gaps visible faster.
The most common mistake is pointing Genie at everything on day one.
You would not hand a new analyst access to 400 tables and say "answer anything." You would start them on one area, like sales, and let them learn it properly.
Do the same with Genie. Pick one domain. Add the five or ten tables that matter. Then test it with the questions real users actually ask, not the questions that make a nice demo.
Once one domain answers reliably, add the next. Trust grows one domain at a time.
Genie shows you the SQL behind every answer. Read it, especially in the early weeks. Ask four questions:
This is exactly how you would review a new analyst's first queries. You are not checking whether they can write SQL. You are checking whether they understood the question the way the business meant it.
A wrong answer is useful information. Do not just fix the one query. Find the reason, because the reason will cause more wrong answers later.
Usually it is one of four things:
Fix the cause, then ask the question again. Each fix improves every future answer, not just this one. That is what onboarding means.
You can see the core lesson without any special setup. This exercise runs in a SQL editor or notebook in Databricks Free Edition. It shows how the same table gives two different "revenue" answers, and how documentation makes the right one clear.
Genie spaces may depend on what your workspace has enabled. The exercise below teaches the idea behind onboarding using plain SQL, which works anywhere.
Step 1. Create a small orders table.
CREATE OR REPLACE TABLE workspace.default.orders_gold (
order_id INT,
product STRING,
shipping_state STRING,
billing_state STRING,
order_status STRING,
gross_amount DECIMAL(10,2),
refund_amount DECIMAL(10,2),
order_date DATE
);
INSERT INTO workspace.default.orders_gold VALUES
(1, 'Desk Lamp', 'TX', 'TX', 'COMPLETED', 400.00, 0.00, '2026-08-04'),
(2, 'Desk Lamp', 'TX', 'CA', 'COMPLETED', 300.00, 100.00, '2026-08-11'),
(3, 'Monitor', 'TX', 'TX', 'CANCELLED', 500.00, 0.00, '2026-08-19'),
(4, 'Monitor', 'CA', 'TX', 'COMPLETED', 600.00, 0.00, '2026-09-02'),
(5, 'Keyboard', 'TX', 'TX', 'COMPLETED', 200.00, 0.00, '2026-09-15');Step 2. Answer "revenue in Texas" the way a day one analyst might.
SELECT
SUM(gross_amount) AS revenue
FROM workspace.default.orders_gold
WHERE billing_state = 'TX';This returns 1700.00. The query is valid. It counts a cancelled order, ignores a refund, and uses billing state.
Step 3. Answer it the way the business defines it.
SELECT
SUM(gross_amount - refund_amount) AS net_revenue
FROM workspace.default.orders_gold
WHERE shipping_state = 'TX'
AND order_status = 'COMPLETED';This returns 800.00. Same table. Same question. Less than half the number.
Step 4. Write the meaning down where people and AI can both read it.
COMMENT ON TABLE workspace.default.orders_gold IS
'Trusted orders table. Revenue means gross_amount minus refund_amount for COMPLETED orders only. Location questions use shipping_state.';
ALTER TABLE workspace.default.orders_gold
ALTER COLUMN shipping_state COMMENT 'Use this column for questions about where orders go, for example Texas sales.';
ALTER TABLE workspace.default.orders_gold
ALTER COLUMN gross_amount COMMENT 'Before refunds. Do not use alone as revenue.';Step 5. Publish the approved answer as a view, so nobody has to rebuild the formula.
CREATE OR REPLACE VIEW workspace.default.net_revenue_by_state AS
SELECT
shipping_state,
SUM(gross_amount - refund_amount) AS net_revenue
FROM workspace.default.orders_gold
WHERE order_status = 'COMPLETED'
GROUP BY shipping_state;Now any analyst, dashboard or AI assistant that reads this table has a clear answer to "what does revenue mean here." That is what onboarding Genie looks like at the smallest scale. Comments, definitions and approved logic are the material Genie learns from.
Here is the simplest way to remember it.
The warehouse stores and processes the data. SQL expresses the logic. Genie is the conversational analyst between the business user and the warehouse.
Underneath it, Unity Catalog decides who is allowed to see what. Genie answers with the permissions of the person asking, so a sales manager does not suddenly see HR tables because they asked politely.
That makes Genie a bridge between business language and governed enterprise data. It does not replace the warehouse, the model or the data team. It sits on top of all three, and it depends on all three.
Seen through the 4Cs, Genie is mostly a Context story.
Context is the onboarding itself: terms, definitions, relationships and examples. Without it, Genie writes clever SQL with the wrong meaning.
Control comes from Unity Catalog. Genie works inside the same permissions as everything else.
Cost stays visible because every question becomes a real SQL query on a warehouse. You can see what runs and what it costs.
Choice remains because the output is plain SQL against open tables. Your team can read it, reuse it or move it.
It is tempting to ask, "Can Genie write SQL?" It can. That is not the interesting question anymore.
The question that matters is this: can Genie understand your business well enough to write the SQL your best analyst would write?
The answer depends far less on the model than on the onboarding. Trusted tables. Clear terms. Written definitions. Reviewed answers.
That is the difference between an impressive demo and trusted self-service analytics. And it is data work, the kind data engineers and analysts already know how to do.
Keep learning, keep building, and keep growing. Brick by brick.