skillfed

pinotdb

Python DB-API and SQLAlchemy dialect for Pinot.

pinotdb Permissive license MIT Active 19 v9.1.2 released

Install

pinotdb on PyPI

pip

pip install pinotdb

uv

uv add pinotdb

poetry

poetry add pinotdb

Package facts

License MIT (permissive)
Python support supports the current Python release (<4,>=3.10)
Install friction low — pure-Python wheel
Runtime dependencies 4 — ciso8601, h11, httpx, urllib3
Maintenance actively maintained — 80 days since the last release
Last repo commit
First released
Popularity one of the top 1,000 most-downloaded packages on PyPI (30-day window, as of 2026-08-13)
Known vulnerabilities none known (OSV.dev, checked 2026-08-13)

Evidence: pinotdb-9.1.2-py3-none-any.whl

License :: OSI Approved :: MIT LicenseProgramming Language :: Python :: 3Programming Language :: Python :: 3.10Programming Language :: Python :: 3.11Programming Language :: Python :: 3.12Programming Language :: Python :: 3.13Programming Language :: Python :: 3.14

About pinotdb

from the package's own PyPI description — quoted content, verbatim

Python DB-API and SQLAlchemy dialect for Pinot

This module allows accessing Pinot via its SQL API.

Current supported Pinot version: 1.1.0.

Usage

Using the DB API to query Pinot Broker directly:
from pinotdb import connect

# this assumes 8000 is the broker port
conn = connect(host='localhost', port=8000, path='/query/sql', scheme='http')
curs = conn.cursor()
curs.execute("""
    SELECT place,
           CAST(REGEXP_EXTRACT(place, '(.*),', 1) AS FLOAT) AS lat,
           CAST(REGEXP_EXTRACT(place, ',(.*)', 1) AS FLOAT) AS lon
      FROM places
     LIMIT 10
""")
for row in curs:
    print(row)

For HTTPS:

from pinotdb import connect

# this assumes that 443 is the broker secure https port
conn = connect(host='localhost', port=443, path='/query/sql', scheme='https')
curs = conn.cursor()
curs.execute("""
    SELECT place,
           CAST(REGEXP_EXTRACT(place, '(.*),', 1) AS FLOAT) AS lat,
           CAST(REGEXP_EXTRACT(place, ',(.*)', 1) AS FLOAT) AS lon
      FROM places
     LIMIT 10
""")
for row in curs:
    print(row)

Pinot also supports basic auth,...

Read as markdown · JSON record · Source repository · Homepage

AI interpretation — verify before relying

AI-generated interpretation of the package facts above; every digit, version, license, or vulnerability id it cites is grounded in the facts already shown on this page

A Python DB-API and SQLAlchemy dialect for querying Apache Pinot via its SQL API, supporting both synchronous and asynchronous connections with optional authentication and multi-stage engine configuration.

Low install friction with four lightweight runtime dependencies (ciso8601, h11, httpx, urllib3). Package is actively maintained with a recent release 80 days ago and an active repository.

MIT license permits unrestricted use, modification, and distribution in both open-source and commercial contexts with minimal obligations.

Usage

from pinotdb import connect

conn = connect(host='localhost', port=8000, path='/query/sql', scheme='http')
curs = conn.cursor()
curs.execute('SELECT * FROM places LIMIT 10')
for row in curs:
    print(row)

Requires a running Pinot Broker instance accessible at the specified host and port; Python 3.10 or later.

Verdict: A well-maintained, permissively licensed connector for Pinot with low install friction and no known vulnerabilities. Suitable for production use in environments with active Pinot deployments, supporting both traditional and async SQLAlchemy patterns.

Needs verification

  • Whether the package's four runtime dependencies themselves have any known vulnerabilities or maintenance concerns.
  • Performance characteristics and query timeout behavior under high-load or network-latency scenarios.
  • Compatibility guarantees with Pinot versions beyond the stated 1.1.0 support.
pinot sql query pythonapache pinot database driverpinot sqlalchemy dialectpinot db-api connectorpinot broker python clientpinot async query enginepinot sql interface

Similar packages