SQL Lab

SQL Lab is a modern, feature-rich SQL IDE written in React.


_images/sqllab.png

Feature Overview

  • Connects to just about any database backend

  • A multi-tab environment to work on multiple queries at a time

  • A smooth flow to visualize your query results using Superset’s rich visualization capabilities

  • Browse database metadata: tables, columns, indexes, partitions

  • Support for long-running queries

    • uses the Celery distributed queue to dispatch query handling to workers

    • supports defining a “results backend” to persist query results

  • A search engine to find queries executed in the past

  • Supports templating using the Jinja templating language which allows for using macros in your SQL code

Extra features

  • Hit alt + enter as a keyboard shortcut to run your query

Templating with Jinja

SELECT *
FROM some_table
WHERE partition_key = '{{ presto.latest_partition('some_table') }}'

Templating unleashes the power and capabilities of a programming language within your SQL code.

Templates can also be used to write generic queries that are parameterized so they can be re-used easily.

Available macros

We expose certain modules from Python’s standard library in Superset’s Jinja context:

  • time: time

  • datetime: datetime.datetime

  • uuid: uuid

  • random: random

  • relativedelta: dateutil.relativedelta.relativedelta

Jinja’s builtin filters can be also be applied where needed.

Extending macros

As mentioned in the Installation & Configuration documentation, it’s possible for administrators to expose more more macros in their environment using the configuration variable JINJA_CONTEXT_ADDONS. All objects referenced in this dictionary will become available for users to integrate in their queries in SQL Lab.