Roadmap#
What ChartBook does now, what is an early experiment, and what may come next. Nothing below the first section is a promise; it is where the work is pointed.
Experimental: Databricks#
A dataframe can be a table or a query in a Databricks SQL warehouse
(Reading From a Databricks Warehouse). It is an early experiment, more so than the rest of ChartBook: it
has been tested against a stand-in for the warehouse, not yet against a real workspace, and how it
works may change. It is here to make sure ChartBook can grow adapters for other warehouses: the
engine behind a source is a plugin (chartbook.backends), as a kind of store is
(chartbook.stores).
Reading works: data.load(), data.sql(), data.ref(), and the site’s pages for such a dataframe.
What another pipeline cannot do yet is pin a Databricks table.
Next, to research#
Pinning a Delta table by its version. Delta tables keep a history of versions, so a pin could
name a version, VERSION AS OF 42, rather than copy the rows out of the warehouse. This is built,
and reviewed three times, in pull request 90, and is held back for one question about
Databricks itself: how long an old version stays readable. Delta keeps the files of old versions for
7 days by default, and newer runtimes refuse to read a version “older than” that. If the 7 days count
from when a version was written, a pin of a table no one has changed for a week breaks at its next
commit, and Databricks’ own optimization of a Unity Catalog table makes such commits. The way to
find out is a pin on a real workspace (Databricks Free Edition is enough). If version pins hold up,
they come in; if not, the choice is between copying a table’s rows into the store and asking a
table’s owner to keep more history.
Snowflake. The same kind of adapter, for a Snowflake warehouse. Snowflake keeps history for time travel too, a day by default, so the same question about pins arises there.
Other warehouses (Postgres, BigQuery) as plugins, once two are built and the interface has settled.
A database as the store, for an organization that keeps everything in one warehouse (Design: stores and backends leaves its layout open).
An MCP server, so that an assistant can browse a catalog and read what it describes.