Skip to main content

Sqlalchemy adapter for Firebolt

Project description

SQLAlchemy and Firebolt

firebolt-sqlalchemy

The Firebolt dialect for SQLAlchemy. firebolt-sqlalchemy uses Firebolt's Python SDK which implements PEP 249.

Installation

Requires Python >=3.7.

pip install firebolt-sqlalchemy

Connecting

Connection strings use the following structure:

firebolt://{username}:{password}@{database}[/{engine_name}]

engine_name is optional. If omitted, Firebolt will use the default engine for the database.

Examples:

firebolt://email@domain:password@sample_database
firebolt://email@domain:password@sample_database/sample_engine

To override the API URL (e.g. for dev testing):

export FIREBOLT_BASE_URL=<your_url>

Quick Start

from sqlalchemy import create_engine

engine = create_engine("firebolt://email@domain:password@sample_database/sample_engine")
connection = engine.connect()

connection.execute("CREATE FACT TABLE example(dummy int) PRIMARY INDEX dummy")
connection.execute("INSERT INTO example(dummy) VALUES (11)")
result = connection.execute("SELECT * FROM example")
for item in result.fetchall():
    print(item)

AsyncIO extension

from sqlalchemy import text
from sqlalchemy.ext.asyncio import create_async_engine

engine = create_async_engine("asyncio+firebolt://email@domain:password@sample_database/sample_engine")

async with engine.connect() as conn:

    await conn.execute(
        text(f"INSERT INTO example(dummy) VALUES (11)")
    )

    result = await conn.execute(
        text(f"SELECT * FROM example")
    )
    print(result.fetchall())

await engine.dispose()

Limitations

  1. Transactions are not supported since Firebolt database does not support them at this time.
  2. Parametrised calls to execute and executemany are not implemented.

Contributing

See: CONTRIBUTING.MD

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

firebolt_sqlalchemy-0.2.0.tar.gz (10.3 kB view hashes)

Uploaded Source

Built Distribution

firebolt_sqlalchemy-0.2.0-py3-none-any.whl (11.5 kB view hashes)

Uploaded Python 3

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