Skip to content

Quick Start

Terminal window
pip install ixtract

Python 3.12+ required. Tested on Ubuntu and macOS.

from ixtract import plan, execute, ExtractionIntent
intent = ExtractionIntent(
source_type="postgresql",
source_config={
"host": "localhost",
"port": 5432,
"database": "mydb",
"user": "app",
"password": "secret",
},
object_name="orders",
)
result = plan(intent)
if result.is_safe:
execution = execute(result)
print(f"{execution.rows_extracted:,} rows in {execution.duration_seconds:.1f}s")

plan() profiles the source, consults run history, and returns an ExecutionPlan. Nothing is extracted until you call execute().

Terminal window
ixtract execute orders \
--database mydb --user app --password secret

On the first run, ixtract has no history. It profiles the table, estimates row count and PK distribution, and selects a conservative worker count (default: 4). After the run completes, it stores the result in a local SQLite state store.

On subsequent runs, the controller uses that history to converge toward an optimal worker count.

Terminal window
ixtract plan orders --database mydb --user app --password secret --standard

--standard shows the full planning output including worker resolution, chunk boundaries, and verdict.

Terminal window
ixtract history orders

Shows all past runs: workers, throughput, duration, and diagnosis.