Skip to main content

Query Engines

Overview

Querybook supports all Sqlalchemy compatible query engines by default. Basic functionalities such as query execution, table metadata, and auto-completion are provided out of the box. However, more advanced integrations would require customized code. Overall, the query engines can be categorized into 3-tiers:

TierTier 3Tier 2Tier 1
SummaryNot testedTested w/ DBUsed in Production
LibrarySqlalchemyCustom/SqlAlchemyCustom
Run Queries
Paginated Result Fetch
Syntax highlight & Autocomplete
Query Progressx?
Query Logsx?
Query Metadatax?
Cancel Queryx?
User Authenticationxx
Syntax Error Parsingx?
Service discoveryxx
Language Specific Autocompletexx

Tier 1 does not mean engines can be used in production everywhere since different companies/org require different kinds of integrations. However, tier 1 databases provide an excellent foundation to extend additional functionalities. Use them as a reference or subclass them via the query engine plugin.

If you have tried any of the tier 3 databases and confirmed it works, please update this doc to let others know.

Query Engine Support

Querybook only supports a few of the Tier 1 & 2 databases by default. When Querybook is launched, it checks with SqlAlchemy to see if any of the databases below are available. If so, the query engine would be automatically available to set up in the Admin UI.

All Query Engines

Note: If the query engine is not included below, but it does have a Sqlalchemy integration, you can still use it in Querybook. Follow the Connect to a Query Engine with 1 additional step before step 4. Visit <project_root>/querybook/server/lib/query_executor/sqlalchemy.py and add the query engine to the list variable SQLALCHEMY_SUPPORTED_DIALECTS, and continue to step 4. If it works, please contribute to Querybook by submitting a PR of your changes.

Query EngineTierPackage
Apache Drill3sqlalchemy-drill
Apache Hive1pyhive OR -r engines/hive.txt
Apache Kylin3kylinpy
Apache Solr3sqlalchemy-solr
Amazon Athena3pyathena
Amazon Redshift2sqlalchemy-redshift
redshift_connector OR -r engines/redshift.txt
BigQuery2google-cloud-bigquery
OR -r engines/bigquery.txt
ClickHouse3clickhouse-connect (recommended) OR
clickhouse-sqlalchemy plus clickhouse-driver
CockroachDB3sqlalchemy-cockroachdb
psycopg2
CrateDB3crate
Dremio3sqlalchemy-dremio
Druid2pydruid OR -r engines/druid.txt
ElasticSearch3elasticsearch-dbapi
EXASolution3sqlalchemy-exasol
Firebird3sqlalchemy-firebird
Google Spreasheets3gsheetsdb
IBM DB23ibm-db-sa
Microsoft Access3sqlalchemy-access
Microsoft SQL Server3Included by default
MySQL1Included by default
MonetDB3sqlalchemy_monetdb
Oracle3Included by default
PostgreSQL2Included by default
Presto1pyhive OR -r engines/presto.txt
SAP Hana3sqlalchemy-hana
Snowflake2snowflake-sqlalchemy OR -r engines/snowflake.txt
SQLite2Included by default
Teradata Vantage3teradatasqlalchemy
Trino2trino OR -r engines/trino.txt
Vertica3sqlalchemy-vertica-python