Skip to main content

SqlAlchemy/Superset library.

Reason this release was yanked:

deprecated

Project description

QuestDB Logo

QuestDB community Slack channel

QuestDB Connect

This repository contains an implementation of QuestDB's dialect for SQLAlchemy, as well as an engine specification for Apache Superset, using psycopg2 for database connectivity.

The Python module is available here:

PyPi https://pypi.org/project/questdb-connect/

Psycopg2 is a widely used and trusted Python module for connecting to and working with PostgreSQL databases. It provides a comprehensive set of features for interacting with the PostgreSQL database system.

SQLAlchemy is an open-source SQL toolkit and ORM library for Python. It provides a high-level API for communicating with relational databases, including schema creation and modification, an SQL expression language, and database connection management. The ORM layer abstracts away the complexities of the database, allowing developers to work with Python objects instead of raw SQL statements.

Apache Superset is a popular open-source business intelligence web application that enables users to visualize and explore data through customizable dashboards and reports. It provides a rich set of data visualizations, including charts, tables, and maps.

Requirements

  • Python from 3.8.x to 3.10.x (superset itself use version 3.9.x)
  • Psycopg2 ('psycopg2-binary~=2.9.6')
  • SQLAlchemy ('SQLAlchemy<=1.4.47')

You need to install these packages because questdb-connect depends on them.

Installation

You can install this package using pip:

pip install questdb-connect

SQLALchemy Sample Usage

Use the QuestDB dialect by specifying it in your SQLAlchemy connection string, from that point on use SQLAlchemy:

import datetime
import os

os.environ.setdefault('SQLALCHEMY_SILENCE_UBER_WARNING', '1')

import questdb_connect.dialect as qdbc
from sqlalchemy import Column, MetaData, create_engine, insert
from sqlalchemy.orm import declarative_base

Base = declarative_base(metadata=MetaData())


class Signal(Base):
    __tablename__ = 'signal'
    __table_args__ = (qdbc.QDBTableEngine('signal', 'ts', qdbc.PartitionBy.HOUR, is_wal=True),)
    source = Column(qdbc.Symbol)
    value = Column(qdbc.Double)
    ts = Column(qdbc.Timestamp, primary_key=True)


def main():
    engine = create_engine('questdb://localhost:8812/main')
    try:
        Base.metadata.create_all(engine)
        with engine.connect() as conn:
            conn.execute(insert(Signal).values(
                source='coconut',
                value=16.88993244,
                ts=datetime.datetime.utcnow()
            ))
    finally:
        if engine:
            engine.dispose()


if __name__ == '__main__':
    main()

Superset Installation

QuestDB Logo

Follow the instructions available here https://superset.apache.org/docs/installation/installing-superset-from-scratch/.

Contributing

This package is open-source, contributions are welcome. If you find a bug or would like to request a feature, please open an issue on the GitHub repository. Have a look at the instructions for developers if you would like to push a PR.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

questdb-connect-1.0.6.tar.gz (23.7 kB view details)

Uploaded Source

Built Distribution

questdb_connect-1.0.6-py3-none-any.whl (28.8 kB view details)

Uploaded Python 3

File details

Details for the file questdb-connect-1.0.6.tar.gz.

File metadata

  • Download URL: questdb-connect-1.0.6.tar.gz
  • Upload date:
  • Size: 23.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.9.16

File hashes

Hashes for questdb-connect-1.0.6.tar.gz
Algorithm Hash digest
SHA256 dee368c90720080552fbec426c52c0a964a903ba25472925ddf4c620838c99bd
MD5 cb58759e04ca419985fec4485140e1a5
BLAKE2b-256 2a7b679e1a837e99ea9f100ba169f234f915f14a23f2ed7b01c6689b9b8dcaeb

See more details on using hashes here.

File details

Details for the file questdb_connect-1.0.6-py3-none-any.whl.

File metadata

File hashes

Hashes for questdb_connect-1.0.6-py3-none-any.whl
Algorithm Hash digest
SHA256 66e3ce78d2bd35c96a1dcf85bac8dd61094bb9622b88fb1a1c05db55ea1b29f9
MD5 b12c2a41d08b31cd8d39855774d0ead3
BLAKE2b-256 1cbc3f38da1908f0073f0867a2e6dc119ac52e53d178d30d9ca368f73adc70ab

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page