Quickstart¶
This is the shortest path from an installed package to a planned and executed pipeline. It keeps credentials simple and points to deeper docs only after the first manifest is understandable.
Prerequisites: Python 3.11 or 3.12, a shell where you can export environment variables, and reachable PostgreSQL and MSSQL instances containing the source table and target database. For a ready-made Docker environment, use First local pipeline.
1. Install dpone¶
For all public connectors:
2. Create a manifest¶
Create manifests/orders_to_landing.yaml:
name: orders_to_landing
source:
type: postgres
connection_id: postgres_oltp
connection_type: env
table:
schema: public
name: orders
options:
incremental_column: updated_at
batch_size: 50000
sink:
type: mssql
connection_id: mssql_dwh
connection_type: env
table:
schema: landing
name: orders
strategy:
mode: incremental_merge
unique_key: order_id
options:
bulk:
mode: bcp
schema_evolution:
enabled: true
state:
type: mssql
connection_id: mssql_dwh
connection_type: env
table:
schema: etl_state
name: dpone_state
runtime:
compatibility:
legacy_runtime_connections: explicit_only
explicit_only is the temporary compatibility bridge for the direct
connection_id/connection_type credentials used in this minimal local
example. Production deployments should use logical connection_ref bindings;
see Connections and credentials.
3. Provide credentials¶
For local development, environment variables are the most transparent option:
export DPONE_CONN_POSTGRES_OLTP_HOST=127.0.0.1
export DPONE_CONN_POSTGRES_OLTP_PORT=5432
export DPONE_CONN_POSTGRES_OLTP_DATABASE=app
export DPONE_CONN_POSTGRES_OLTP_USERNAME=app
export DPONE_CONN_POSTGRES_OLTP_PASSWORD=secret
export DPONE_CONN_MSSQL_DWH_HOST=127.0.0.1
export DPONE_CONN_MSSQL_DWH_PORT=1433
export DPONE_CONN_MSSQL_DWH_DATABASE=dwh
export DPONE_CONN_MSSQL_DWH_USERNAME=sa
export DPONE_CONN_MSSQL_DWH_PASSWORD=secret
export DPONE_CONN_MSSQL_DWH_TRUST_SERVER_CERTIFICATE=yes
For Airflow, Vault, or inline params, use Credentials quickstart first and then the complete Connections and credentials reference.
4. Inspect before writing¶
The plan shows the configured source table and columns, target and staging policy, load strategy, schema-evolution policy, reconciliation policy, state backend, and warnings. It validates and explains configuration; it does not execute or materialize a source query.
5. Run¶
Exit 0 means the process completed successfully. Exit 1 means execution
started but failed; exit 2 means the manifest or configuration was rejected
before execution. The JSON report on stdout contains the actual row counts and
errors from this run.
dpone run-report is a separate manual/synthetic artifact generator. It does
not read or summarize the preceding dpone run, so it is intentionally not
part of this execution journey.
6. Where to go next¶
Start from your route (source → sink) when you move from a hand-written manifest to Airflow: pick the same source/sink pair in the source → sink matrix, then follow First Airflow DAG.
| Need | Guide |
|---|---|
| Understand append/upsert/replace/XMin/CDC | Load strategies |
| Run from CLI or Python | Running pipelines |
| Pick a supported source -> sink combination | Source -> sink matrix |
Configure MSSQL bcp safely |
MSSQL guide |
| Configure schema evolution behavior | Schema evolution |
| Prepare production gates | Production readiness |