Skip to main content

etlantic-sql

SQLite and PostgreSQL reference SQL execution plugin for ETLantic 0.43. Install when pipelines need Profile(sql_engine="sql"), SQL→SQL fusion, or Experimental postgresql source/sink/storage connectors. Keep the pin matched to core.

Note: This plugin and ETLantic core use Beta classifiers for documented single-tenant pilots. Classifiers are not an enterprise SLA.

Install

pip install 'etlantic-sql==0.55.0'
# pip install 'etlantic==0.55.0'
export ETLANTIC_SQL_URL=postgresql+psycopg://user:pass@localhost:5432/etlantic
# Or use SQLite:
# export ETLANTIC_SQL_URL=sqlite+pysqlite:///:memory:

Uses SQLAlchemy Core. Driver dependencies stay out of etlantic core.

Wiring

from etlantic import Profile

Profile(name="sql-prod", sql_engine="sql")

The etlantic.sql_plugins entry point named sql registers etlantic_sql:create_plugin. Profiles select it with sql_engine="sql"; keep connection URLs in environment-backed configuration or secret providers, not in plans.

Prefer @Transformation.portable with portable_transform_policy="require"; the compiler lowers the qualified baseline to typed, parameterized SQL. Register @Transformation.implementation("sql") only when dialect-specific behavior outside that baseline is required. Native handlers take RelationRef inputs and return SQL query handles (not fetched rows); they are tied to SQL and are not eligible for adaptive execution.

Capabilities

  • SQL→SQL fusion without intermediate Python row fetch
  • Durable run-scoped staging tables (not session TEMP)
  • Insert-select / CTAS-style publication
  • Fail-closed planning when required capabilities are missing

SQLite and PostgreSQL are Tier A in 0.33. MERGE / upsert is advertised only for PostgreSQL (sql_merge=True, INSERT … ON CONFLICT); SQLite remains sql_merge=False and fails closed when merge is required.

Inference target mode reference (0.55)

SQLiteTableTarget is a separate, explicit reference adapter for an existing SQLite table. It inspects declared columns, primary keys, and configured partition columns without reading rows. Its transactional write_records method executes append, overwrite, merge, upsert, and partition replacement only when the table advertises the requested mode and its revision still matches. This adapter does not change the SQL engine capability setting above.

import sqlite3
import etlantic as etl
from etlantic_sql import SQLiteTableTarget

connection = sqlite3.connect("orders.db")
target = SQLiteTableTarget(
    connection, "orders", identity="orders", partitions=("order_day",)
)
observation = etl.inspect_target(target)

Connector capability matrix (0.38 Experimental)

Source/sink/storage entry points (postgresql) implement etlantic.connectors protocols. CI uses an in-memory SQLite fake; live PostgreSQL remains the intended production dialect for the SQL plugin.

Capability Source Sink Storage Notes
source.batch_snapshot ✓ Bounded table read
source.schema_discovery ✓ ✓ Row-free field inspect
source.statistics_bounded ✓ ✓ Row estimate only
write.append ✓ Transactional
write.overwrite ✓ DELETE + INSERT
write.merge ✓ ON CONFLICT (PG / sqlite fake)
publication.atomic ✓ Commit / rollback
transactions ✓ Autocommit-off path
reconciliation ✓ query_id evidence
idempotency ✓ ✓ Declared

Entry points: etlantic.source_connectors / sink_connectors / storage_connectors → postgresql.

Examples

python examples/sql_to_sql.py
python examples/sql_boundary_hybrid.py
python examples/sql_transactional_write.py
python examples/sql_failure_recovery.py

SQL tutorial · SQL hello · Source · Issues

Metadata

Release files for etlantic-sql 0.55.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for etlantic-sql 0.55.0
File Size Uploaded
etlantic_sql-0.55.0.tar.gz 57.8 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for etlantic-sql 0.55.0
File Interpreter ABI Platform
etlantic_sql-0.55.0-py3-none-any.whl Python 3 none any Details

Total release size: 123.1 kB

Release files / etlantic_sql-0.55.0.tar.gz

Download URL etlantic_sql-0.55.0.tar.gz
Size 57.8 kB
Tags Source
SHA-256 checksum
How to use checksums
71d1d740636a9337bd8ed51d54f5739869c200e6e75613b43f9aa3e383cb175d
BLAKE2b-256 checksum
How to use checksums
250746827507649a9b4edc80999959990f53b0c6cd9c319995de1185951061a9
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.12.0 {"installer":{"name":"uv","version":"0.12.0","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

Release files / etlantic_sql-0.55.0-py3-none-any.whl

Download URL etlantic_sql-0.55.0-py3-none-any.whl
Size 65.3 kB
Tags Python 3
SHA-256 checksum
How to use checksums
afd094097f18e75368f36fb23e974b345d38b3e2e91c863d290f98de2dd89fc7
BLAKE2b-256 checksum
How to use checksums
42e9c0fbdf953196f97f8f2a952e0b114161c7045159b76e1c801559906e82d0
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.12.0 {"installer":{"name":"uv","version":"0.12.0","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

Release history Release notifications | RSS feed

0.58.0

2 release files

0.57.2

2 release files

0.57.1

2 release files

This release

0.55.0 This release

2 release files

0.54.0

2 release files

0.53.0

2 release files

0.52.1

2 release files

0.52.0

2 release files

0.51.0

2 release files

0.50.1

2 release files

0.50.0

2 release files

0.48.0

2 release files

0.47.0

2 release files

0.46.0

2 release files

0.45.0

2 release files

0.40.0

2 release files

0.39.0

2 release files

0.38.0

2 release files

0.37.0

2 release files

0.36.0

2 release files

0.35.0

2 release files

0.34.0

2 release files

0.33.0

2 release files

0.32.0

2 release files

0.31.0

2 release files

0.30.0

2 release files

0.29.0

2 release files

0.27.0

2 release files

0.26.0

2 release files

0.25.0

2 release files

0.24.0

2 release files

0.23.0

2 release files

0.22.0

2 release files

0.21.0

2 release files

0.20.0

2 release files

0.19.0

2 release files

0.18.0

2 release files

0.17.0

2 release files

0.16.0

2 release files

0.14.0

2 release files

0.13.0

2 release files

0.12.0

2 release files

0.11.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page