skillfed

sqlalchemy-drill

Apache Drill for SQLAlchemy

sqlalchemy-drill v1.1.10 3.1M downloads/30d#2,733 on PyPI54
Permissive license MIT AGING released

What it is and what it does

sqlalchemy-drill provides a SQLAlchemy dialect that bridges Python applications to Apache Drill, a distributed SQL query engine. It abstracts Drill's native connection protocols (REST, JDBC, ODBC) into SQLAlchemy's standard database interface, allowing you to execute queries and retrieve results as if Drill were any other SQL database. The package was originally built to support Apache Superset's data visualization capabilities but works as a general-purpose Drill connector.

The dialect handles protocol-specific details: REST connections stream results over HTTP with optional SSL, JDBC requires manual JVM startup and environment variables pointing to driver files, and ODBC uses system-level driver configuration. For Drill versions 1.19 and later, the dialect returns properly typed results; earlier versions return all data as strings requiring manual type conversion. Query result metadata is accessible via the cursor's result_md field.

Use it for:

  • Connect Apache Superset to Drill for interactive data visualization and dashboard creation.
  • Execute ad-hoc SQL queries against Drill from Python applications using standard SQLAlchemy patterns.
  • Build ETL pipelines that read from Drill storage plugins and transform results in Python.
  • Integrate Drill as a data source in Python analytics tools that expect SQLAlchemy dialects.
  • Query distributed datasets stored in Drill's supported formats without writing native Drill syntax.

Worth the install?

AI-flagged interpretation of the facts on this page — verify before relying

SQLAlchemy dialect for Apache Drill that enables SQL queries against Drill data sources via REST, JDBC, or ODBC connections.

Yes, with conditions. Install this if you need SQLAlchemy integration with Apache Drill and accept that the package is aging with limited recent maintenance activity. The MIT license and low install friction are favorable. Verify that your Drill version and intended connection mode are compatible with the package's current state before committing to production use.

Install

sqlalchemy-drill on PyPI

pip

pip install sqlalchemy-drill

uv

uv add sqlalchemy-drill

poetry

poetry add sqlalchemy-drill

Installing sqlalchemy-drill

Before you install

Low install friction with three runtime dependencies: requests, ijson, and sqlalchemy. Maintenance status is aging—last release was 190 days ago, though the repository remains active and unarchived.

License in practice

MIT license permits commercial and private use with minimal restrictions, making this suitable for most deployment contexts.

Quickstart

pip install sqlalchemy-drill

from sqlalchemy import create_engine
engine = create_engine('drill+sadrill://localhost:8047/dfs?use_ssl=False')
result = engine.execute('select current_timestamp')

For JDBC connections, requires manual JVM startup and environment variables DRILL_JDBC_DRIVER_PATH and DRILL_JDBC_JAR_NAME to be set. For ODBC, requires system ODBC driver installation.

Verify before relying

  • Whether JDBC and ODBC connection modes work reliably in production beyond Superset.
  • Current compatibility with Drill versions released after the last update.
  • Support status for Python versions beyond 3.9 listed in classifiers.

Package facts

License MIT (permissive)
Python support not specified
Install friction low — pure-Python wheel
Runtime dependencies 3 — requests, ijson, sqlalchemy
Maintenance aging — 190 days since the last release
Last repo commit
First released
Downloads 3,135,148/month — #2,733 on PyPI (30-day window, as of 2026-08-14)
Known vulnerabilities none known (OSV.dev, checked 2026-08-14)

Evidence: sqlalchemy_drill-1.1.10-py3-none-any.whl

Keywords: SQLAlchemy, Apache, Drill

Development Status :: 5 - Production/StableEnvironment :: ConsoleIntended Audience :: DevelopersLicense :: OSI Approved :: MIT LicenseProgramming Language :: PythonProgramming Language :: Python :: 3Programming Language :: Python :: 3.6Programming Language :: Python :: 3.7Programming Language :: Python :: 3.8Programming Language :: Python :: 3.9Programming Language :: Python :: Implementation :: CPythonTopic :: Database :: Front-Ends

Tags

sqlalchemy drill connectorapache drill sql adapterdrill database dialectdrill rest api sqlalchemydrill query engine pythonsuperset drill integrationdrill odbc sqlalchemy
drill-connectorsqlalchemy-dialectsuperset-integration

More Front-Ends packages

SQLAlchemy

SQLAlchemy is a Python SQL toolkit and Object…

permissive · top 100 on PyPI

psycopg2-binary

psycopg2-binary is a PostgreSQL database…

copyleft · top 1,000 on PyPI

alembic

Alembic generates and manages database schema…

permissive · top 1,000 on PyPI

weaviate-client

A Python client library for connecting to and…

permissive · top 1,000 on PyPI

databricks-sql-connector

A Python client library that connects to…

permissive · top 1,000 on PyPI

psycopg

Psycopg 3 is a PostgreSQL database adapter for…

copyleft · top 1,000 on PyPI

sqlalchemy-jdbcapi

SQLAlchemy dialect for JDBC and ODBC database…

permissive · top 15,000 on PyPI

sqlalchemy-solr

Provides a SQLAlchemy dialect that allows you…

permissive · top 15,000 on PyPI

sqlalchemy-dremio

Provides a SQLAlchemy dialect to query Dremio…

permissive · top 15,000 on PyPI

teradatasqlalchemy

Provides a SQLAlchemy dialect that enables…

unclear · top 5,000 on PyPI

sqlalchemy-ibmi

Provides a SQLAlchemy dialect to connect to Db2…

permissive · top 15,000 on PyPI

apache-airflow-providers-apache-drill

Provides Apache Airflow integration for Apache…

permissive · top 15,000 on PyPI

apache-superset

Apache Superset is a web-based business…

permissive · top 5,000 on PyPI

kylinpy

Python client library and SQLAlchemy dialect…

permissive · top 5,000 on PyPI

sqlalchemy-vertica

Provides a SQLAlchemy dialect for Vertica,…

permissive · top 15,000 on PyPI

sqlalchemy-databricks

Provides a SQLAlchemy dialect that connects to…

permissive · top 15,000 on PyPI