The Datasette Ecosystem¶
Datasette sits at the center of a growing ecosystem of open source tools aimed at making it as easy as possible to gather, analyze and publish interesting data.
These tools are divided into two main groups: tools for building SQLite databases (for use with Datasette) and plugins that extend Datasette’s functionality.
Tools for creating SQLite databases¶
csvs-to-sqlite lets you take one or more CSV files and load them into a SQLite database. It can also extract repeated columns out into a separate table and configure SQLite full-text search against the contents of specific columns.
sqlite-utils is a Python library and CLI tool that provides shortcuts for loading data into SQLite. It can be used programmatically (e.g. in a Jupyter notebook) to load data, and will automatically create SQLite tables with the necessary schema.
The CLI tool can consume JSON streams directly and use them to create tables. It can also be used to query SQLite databases and output the results as CSV or JSON.
db-to-sqlite is a CLI tool that builds on top of SQLAlchemy and allows you to connect to any database supported by that library (including MySQL, oracle and PostgreSQL), run a SQL query and save the results to a new table in a SQLite database.
markdown-to-sqlite reads Markdown files with embedded YAML metadata (e.g. for Jekyll Front Matter) and creates a SQLite table with a schema matching the metadata. This is useful if you want to keep structured data in text form in a GitHub repository and use that to build a SQLite database.
Datasette’s plugin system makes it easy to enhance Datasette with additional functionality.
datasette-cluster-map is the original Datasette plugin, described in Datasette plugins, and building a clustered map visualization.
The plugin works against any table with latitude and longitude columns. It can load over 100,000 points onto a map to visualize the geographical distribution of the underlying data.
datasette-json-html renders HTML in Datasette’s table view driven by JSON returned from your SQL queries. This provides a way to embed images, links and lists of links directly in Datasette’s main interface, defined using custom SQL statements.
datasette-render-images works with SQLite tables that contain binary image data in BLOB columns. It converts any images it finds into
data-uri image elements, allowing you to view them directly in the Datasette interface.
datasette-pretty-json seeks out JSON values in Datasette’s table browsing interface and pretty-prints them, making them easier to read.