
Hotdata
A managed SQL engine for AI agents, built in Rust on Apache DataFusion and Arrow: each agent gets short-lived “instant databases” to load data into, then runs read-only SQL, vector, full-text and geospatial queries over an HTTP API or CLI.
- What it is
- Query engines
- Type
- Commercial product
- Made by
- Hotdata
- License
- Proprietary managed service; the CLI is MIT, and the DuckLake library it donated to DataFusion is Apache 2.0
- Facts checked
- 11 October 2026
What it is
Hotdata is a hosted query engine reached at api.hotdata.dev. An organization holds workspaces, and each workspace is an isolated execution environment that shares no compute, cache or credentials with any other. Inside it you create databases, lightweight query scopes made in one call that can delete themselves after an expires_at such as 24 hours; the intended pattern is one per job or per agent session. Data gets in two ways. You push files (CSV, JSON or Parquet) through an upload endpoint, where each publish atomically replaces, appends, upserts, updates or deletes rows by key. Or you set up ingests that pull from 168 source types in eight families: SQL databases and warehouses (Postgres, MySQL, SQL Server, Oracle, Snowflake, BigQuery, Databricks, Redshift), REST APIs, files in S3, GCS or Azure, Iceberg catalogs (REST, Glue, Polaris, Unity Catalog), Delta Lake, DuckLake, Kafka topics including Debezium change logs, and tables derived from other tables. A database can attach another database’s catalog read-only, so one query joins both, and since July 2026 it can be forked into an independent copy. Tables are stored with DuckLake through datafusion-ducklake, a library Hotdata wrote and donated to the DataFusion contrib project in June 2026.
SQL is read-only: INSERT, COPY and DDL are refused, and writes go through loads. The native dialect, HotSQL, is Postgres-like and built on DataFusion, and a query can instead be written in PostgreSQL, DuckDB or Snowflake syntax and translated before it runs. It adds BM25 full-text search, PostGIS-style ST_ functions and vector search. Vector search runs on one node: an HNSW graph in USearch, scalar columns in SQLite and the full rows in Parquet, all sharing row keys. With a WHERE clause it first scans Parquet for matching keys, then either walks the graph with those keys as a filter (more than 5% of rows match) or computes exact distances for each key (5% or fewer). Long queries run asynchronously, and every result is saved and can be fetched again as Arrow, Parquet, CSV, Markdown or JSON.
The company was founded by Eddie A Tejeda (CTO), Divya Ranganathan (CEO) and Zac Farrell, with Andrew Lamb, PMC chair of Apache DataFusion, as an advisor. Its site went live in February 2026, the CLI in March and managed databases in May. Pricing is usage-based: a $5 monthly base fee, storage ($0.20 a month for 10 GB) and bytes scanned ($10.24 per TB), with a $100 credit at sign-up. The engine is closed source; the CLI, SDKs and integrations for Ibis, LangChain, dlt, dbt and Grafana are on GitHub.
Why teams pick it
- Isolation by design: workspaces share nothing, databases are cheap to create, fork and expire, and attached catalogs are read-only, so many agents can work side by side without touching the sources
- One SQL surface for analytics, BM25 full-text, filtered vector search and geospatial queries, and it accepts PostgreSQL, DuckDB and Snowflake dialects as well as its own
- Pulls from 168 source types, from Postgres and Snowflake to Iceberg catalogs and Kafka, and saves every result so later steps can reuse it as data
- In its own TPC-H benchmark (19 of 22 queries, July 2026), total execution time stayed between 2.59 and 2.90 s from 1 to 50 concurrent streams, while Snowflake rose from 2.88 to 9.26 s
Watch out for
- Very young: the site launched in February 2026 and managed databases in May 2026, and the closed-source engine is available only as Hotdata’s service
- No write SQL at all: data arrives only through loads and ingests, the first load into a table must replace it, row-at-a-time writes are discouraged, and whether append and keyed loads work depends on how the instance is provisioned
- Built for small, fast data, not warehouse scans: its founders target datasets under about 100 GB, and vector search runs on a single node sized for 1 to 10 million vectors
- Its benchmark numbers are vendor-run: TPC-H Q18 failed on Hotdata at every concurrency level, and Q20 and Q21 were left out of the totals because more than about half their runs failed under concurrency
Alternatives
What all query engines have in common →
Amazon AthenaAWSAWS’s serverless SQL engine for data in S3: no cluster to run, and on-demand queries cost $5 per TB scanned.
Apache CalciteOpen sourceA Java framework with everything a database needs to understand a query (SQL parser, validator, relational algebra and a rule-based, cost-based optimizer) but no storage of its own, which Hive, Flink, Druid, Dremio, Beam and many other systems embed as their SQL front end and planner.
Apache ZeppelinOpen sourceA self-hosted web notebook where each paragraph runs through an interpreter: Spark, Flink, JDBC, Python and more. Maintained, but behind Jupyter and Databricks in reach.
GizmoSQLOpen sourceA database server that wraps DuckDB (or SQLite) and serves it to many clients over Arrow Flight SQL, with TLS and authentication.
IbisOpen sourceA Python dataframe API that compiles to SQL, so the same code runs on DuckDB on a laptop and on BigQuery, Snowflake, PostgreSQL or more than 20 other engines.
Spice.ai OSSOpen sourceA single-binary SQL engine in Rust, built on DataFusion and Arrow, that federates queries across databases, warehouses and lakes, keeps hot datasets in a local accelerated copy, and adds search and LLM APIs on top.
VeloxOpen sourceMeta’s open-source C++ execution engine library: it takes an already-optimized query plan and runs it with vectorized operators, and it is the engine inside Presto’s C++ workers (Prestissimo) and Apache Gluten’s native Spark.How it fits with other technologies
What Hotdata uses
- Hotdatais built onApache DataFusion
- Hotdatastreams query results asApache Arrow
- Hotdatastores its tables inDuckLake
- Hotdatais written inRust
- Hotdataloads and scans files inApache Parquet
- Hotdataingests tables fromPostgreSQL
- Hotdataingests tables fromMySQL
- Hotdataingests tables and translates SQL fromSnowflake
- Hotdatatranslates SQL written forDuckDB
- Hotdataingests tables fromGoogle BigQuery
- Hotdataingests tables fromApache Iceberg
- Hotdataingests Iceberg tables throughApache Polaris
- Hotdataingests Iceberg tables throughUnity Catalog
- Hotdataingests tables fromDelta Lake
- Hotdataingests topics and Debezium CDC fromApache Kafka
- Hotdatacan be queried fromIbis
Load a Parquet file into an instant database, query it, search it, then delete it (from the Quick Start; not run, it needs a Hotdata account) · bash
brew install hotdata-dev/tap/cli
hotdata auth login # opens a browser to sign in
# An instant database with one declared table, loaded from a URL
hotdata databases create --name airbnb --catalog airbnb --table listings
hotdata databases load --catalog airbnb --table listings \
--url https://hotdata.dev/data/sf-airbnb-listings.parquet
# HotSQL; tables are addressed as <catalog>.<schema>.<table>
hotdata query "SELECT count(id) AS total_rows FROM airbnb.public.listings"
# A BM25 full-text index on one column, then a search against it
hotdata search create listings_description --type text \
--from airbnb.public.listings --column description
hotdata search "cozy apartment with a view" \
--index listings_description --select id,name --limit 10
# Throw the database away when the job is done
hotdata databases remove airbnbSee it in a real stack
No architecture uses Hotdata yet. Drop it into the playground and wire it up yourself.Open playground →Where it came from2026
Hotdata comes from a bet that AI agents use data differently from people. In “Why we are building Hotdata” (April 2026), Eddie A Tejeda argued that a decade of infrastructure had optimized for throughput and scale, while vectorized execution, columnar formats, SIMD and fast NVMe let one machine process tens of millions of rows in under 10 ms. Agents, Tejeda wrote, create many datasets, issue large numbers of small queries and chain the results, so latency, context and composability matter more than raw throughput. A follow-up post added that one slow query can stall dozens of dependent steps in an agent’s plan.
The team built the engine on Apache DataFusion, a Rust query engine library, because it leaves storage, catalogs, indexing and caching to the builder. The engine’s caching layer landed in January 2026, the public site and geospatial SQL in February, the CLI with BM25 and vector search in March, and managed databases with automatic expiry in May. For table metadata it chose DuckLake over Iceberg: in June 2026 it released datafusion-ducklake to the DataFusion contrib organization and made it Hotdata’s storage backend. In July it added database forks and mutable tables and published a concurrency benchmark against Snowflake and BigQuery.
Why it’s built this way
- Build on DataFusion instead of a finished database
- Tejeda wrote that DuckDB is a complete database, while DataFusion provides planning, optimization and execution but lets the builder decide how data is stored, indexed, cached and planned, which is the control Hotdata wanted.
- DuckLake instead of Iceberg for table metadata
- Reading an Iceberg table means walking metadata files, manifest lists and manifests in object storage before touching data. DuckLake keeps that metadata in a SQL database, so one query finds the Parquet files, which suits small, fast queries.
- Vector search as a SQL operator, not a separate service
- Inspired by pgvector, the team wanted
WHEREfilters andORDER BY l2_distance(…) LIMIT kin one query, aiming for under 100 ms with filters. It keeps three stores keyed alike (USearch, SQLite, Parquet) and picks a strategy from the filter’s selectivity. - Short-lived, isolated databases with durable results
- Agents lose their place when intermediate results disappear or change between runs, so every result is saved and replayable, and each job gets its own database that can expire on its own.
Timeline
- 2026
January: the caching layer lands, and query results become queryable data
- 2026
February: hotdata.dev goes live, with geospatial SQL
- 2026
March: the CLI launches, with BM25 full-text and vector search
- 2026
May: managed instant databases launch
- 2026
June:
datafusion-ducklakeis donated to DataFusion contrib and becomes the storage backend - 2026
July: database forks, mutable tables and a concurrency benchmark
- Hotdata blog: Why we are building Hotdata (Eddie A Tejeda, 6 April 2026)
- Hotdata blog: Query engines for agents (Eddie A Tejeda, 15 April 2026)
- Hotdata blog: Building vector search into a SQL query engine (16 April 2026)
- Hotdata blog: Bringing DuckLake to Apache DataFusion (23 June 2026)
- Hotdata changelog (January to July 2026)
Sources17 · facts checked 11 October 2026
- Hotdata docs: Core concepts (workspaces, databases, catalogs, attaching, authentication)
- Hotdata docs: Push data (publish model, load modes, read-only SQL, result formats)
- Hotdata docs: Pull data (168 source types in eight families)
- Hotdata docs: SQL reference (HotSQL, dialects, spatial functions)
- Hotdata docs: Quick start (CLI, instant databases, search)
- Hotdata docs: CLI reference (database forks, search index types)
- Hotdata docs: Ibis
- Hotdata: About (founders, advisors)
- Hotdata: Pricing ($5 base, storage, bytes scanned, $100 credit)
- Hotdata changelog (January to July 2026)
- Hotdata blog: Why we are building Hotdata (April 2026)
- Hotdata blog: Building vector search into a SQL query engine (April 2026)
- Hotdata blog: Bringing DuckLake to Apache DataFusion (June 2026)
- Hotdata blog: Benchmarking concurrency on Hotdata, Snowflake and BigQuery (Divya Ranganathan, 16 July 2026; vendor-run)
- GitHub: hotdata-dev/hotdata-cli (MIT; quick start, dialects)
- GitHub: hotdata-dev organization (SDKs and integrations)
- GitHub: datafusion-contrib/datafusion-ducklake (Apache 2.0)