In Dataherald
You already run a data warehouse and want NL queries over it.
Comparison
Pick Dataherald if you have a data warehouse and want an open-source engine that answers it in English, tuned with business context and golden-SQL pairs you curate. Pick nlqdb if you want the database itself — a Postgres provisioned from English, the compiled SQL shown, and writes diff-previewed, with nothing to host.
The same goal, two ways.
> revenue by product category last quarter
In Dataherald
You already run a data warehouse and want NL queries over it.
In your HTML
<nlq-data goal="revenue by product category last quarter"></nlq-data> A warehouse-reporting question Dataherald answers over a warehouse you run; nlqdb answers it over a Postgres it provisioned, SQL shown.
What's different
| Dimension | nlqdb | Dataherald | Note |
|---|---|---|---|
| Provisions + owns the database (from English) | Dataherald connects to a warehouse you already run; it provisions nothing. nlqdb materialises a Postgres from the first English goal. | ||
| Natural-language → SQL | |||
| Compiled SQL shown with every answer | Both return the SQL — it's the output. nlqdb shows it inline with the answer; Dataherald returns it from the engine API. | ||
| Connects to an existing warehouse (Snowflake / BigQuery / …) | Bring-your-own-warehouse is Dataherald's whole shape; nlqdb provisions + owns a Postgres instead (ClickHouse is Phase 2). |
| Dimension | nlqdb | Dataherald | Note |
|---|---|---|---|
| Golden-SQL / training-pair tuning to your schema | nlqdb's plan cache + schema fingerprint are automatic; Dataherald's golden-SQL + fine-tune loop is explicit and curated. | ||
| Auto-migration via NL ('add a column for tags') | |||
| Destructive-op diff preview before apply | Dataherald answers (reads); nlqdb diff-previews writes and DDL before they apply. | ||
| HTML embed element + anonymous try | |||
| MCP server (agent-callable) | Dataherald exposes a REST engine API and a LangChain integration; it ships no dedicated MCP server. | ||
| Open source / self-hostable |
shipped · partial · not shipped
No sign-in. The anonymous database lasts 72 hours; adopt it with one click if you keep it.
Start with a goal →The error has been recorded. Reload to recover; if it persists, sign out and back in.