IOMETE SQLAlchemy Dialect

raw JSON →
1.0.22 verified Sat May 09 auth: no python

SQLAlchemy dialect for IOMETE data lakehouse platform using Apache Arrow Flight SQL. Version 1.0.22, monthly releases. Enables connection to IOMETE from Python via SQLAlchemy engine.

pip install iomete-sqlalchemy
error sqlalchemy.exc.NoSuchModuleError: Can't load plugin: sqlalchemy.dialects:iomete
cause iomete-sqlalchemy is not installed or entry point not registered.
fix
pip install iomete-sqlalchemy. Verify installation: pip list | grep iomete-sqlalchemy
error pyarrow.lib.ArrowIOError: Arrow Flight error: Failed to connect to remote server
cause Host or port is incorrect, or network/firewall blocks the Flight SQL port.
fix
Double-check host:port. Ensure the IOMETE endpoint is reachable (test with telnet or curl).
breaking Python >=3.9 is required; earlier versions are unsupported.
fix Upgrade Python to 3.9 or later.
gotcha The connection string URL must not contain unsupported special characters in password. Percent-encode if needed.
fix Use urllib.parse.quote for username/password: from urllib.parse import quote; engine_url = f'iomete://{quote(username)}:{quote(password)}@...'
deprecated The older 'iomete://' dialect prefix might be deprecated in favor of 'iomete+s3' or similar in future versions.
fix Stay updated with changelog; no immediate change required.

Connect to IOMETE using SQLAlchemy engine with IOMETE dialect.

from sqlalchemy import create_engine
import os

# Connection string: iomete://<username>:<password>@<host>:<port>/<database>
username = os.environ.get('IOMETE_USERNAME', 'your_username')
password = os.environ.get('IOMETE_PASSWORD', 'your_password')
host = os.environ.get('IOMETE_HOST', 'your_host')
port = os.environ.get('IOMETE_PORT', '443')
database = os.environ.get('IOMETE_DATABASE', 'default')

engine = create_engine(f'iomete://{username}:{password}@{host}:{port}/{database}')
with engine.connect() as conn:
    result = conn.execute("SELECT 1")
    print(result.fetchone())