Quick Start
Install
Section titled “Install”pip install ixtractPython 3.12+ required. Tested on Ubuntu and macOS.
Connect to PostgreSQL
Section titled “Connect to PostgreSQL”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",)Plan and execute
Section titled “Plan and execute”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().
CLI equivalent
Section titled “CLI equivalent”ixtract execute orders \ --database mydb --user app --password secretWhat happens on first run
Section titled “What happens on first run”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.
Check the plan before running
Section titled “Check the plan before running”ixtract plan orders --database mydb --user app --password secret --standard--standard shows the full planning output including worker resolution, chunk boundaries, and verdict.
Inspect history
Section titled “Inspect history”ixtract history ordersShows all past runs: workers, throughput, duration, and diagnosis.
Next steps
Section titled “Next steps”- How It Works — understand the controller, planner, and estimator
- Runtime Context — declare environmental constraints before running
- CLI Reference — all 9 commands with flags