omniload is a polyglot data loader based on dlt. Copy data between any source and any destination.
Project description
omniload
Copy data between any source and any destination.
About
omniload is a polyglot data loader framework based on dlt. It allows you to load data from any source into any destination, either using a concise CLI from your shell, or the Python API from your own applications.
omniload provides the same efficient incremental data loading modes
inherited by dlt: append, merge, and delete+insert.
Install
We recommend using uv to install or run omniload.
pip install uv
uvx omniload
Alternatively, if you'd like to install it globally:
uv pip install --system omniload
While installation with vanilla pip is possible, it's an order of magnitude slower.
Synopsis
The next command instructs omniload to read the table public.some_data from
your PostgreSQL instance, and to write the data to your BigQuery warehouse
under the schema omniload and table some_data.
omniload ingest \
--source-uri 'postgresql://admin:admin@localhost:8837/web?sslmode=disable' \
--source-table 'public.some_data' \
--dest-uri 'bigquery://<your-project-name>?credentials_path=/path/to/service/account.json' \
--dest-table 'omniload.some_data'
Handbook
Please visit the full documentation, or inspect the list of supported sources and destinations.
Project
Contribute
Contributions are very much welcome. Please visit the Documentation to learn how to spin up a sandbox environment on your workstation and submit patches, or create a ticket to report a bug or propose a feature.
Status
Breaking changes should be expected until a 1.0 release, so version pinning is strongly recommended, especially when using this software as a library. For example:
pip install 'omniload[full]==0.0.42'
License
The project is licensed under the MIT License, see the LICENSE file for details. Some components are licensed under the Apache 2.0 license, see the NOTICE file for details.
Acknowledgements
This project would not have been possible without the amazing work by the authors and contributors to SQLAlchemy, dlt, and ingestr, turtles all the way down. Kudos.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file omniload-0.0.0.tar.gz.
File metadata
- Download URL: omniload-0.0.0.tar.gz
- Upload date:
- Size: 402.9 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
1089a562ed3888293ce194272f65acb7afb89b399f5e0a6c33672d2ad858ef0f
|
|
| MD5 |
b0213f5aeced9de6364bbd59c3d3b3ca
|
|
| BLAKE2b-256 |
5d0f2f2b61dabbef7cc65540bd097e81d28c7c9667336cb1793d475874e41cb1
|
Provenance
The following attestation bundles were made for omniload-0.0.0.tar.gz:
Publisher:
release-pypi.yml on panodata/omniload
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
omniload-0.0.0.tar.gz -
Subject digest:
1089a562ed3888293ce194272f65acb7afb89b399f5e0a6c33672d2ad858ef0f - Sigstore transparency entry: 1555395526
- Sigstore integration time:
-
Permalink:
panodata/omniload@59838400a2f1d126b3690d65728fb3661ca143c4 -
Branch / Tag:
refs/tags/v0.0.0 - Owner: https://github.com/panodata
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release-pypi.yml@59838400a2f1d126b3690d65728fb3661ca143c4 -
Trigger Event:
push
-
Statement type:
File details
Details for the file omniload-0.0.0-py3-none-any.whl.
File metadata
- Download URL: omniload-0.0.0-py3-none-any.whl
- Upload date:
- Size: 504.3 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
6373bbfc20a86f6240e6d724794e013d7914801653f22fa7e68978356a703c3f
|
|
| MD5 |
621c04f4b2768bbd0023d33e8bf718ba
|
|
| BLAKE2b-256 |
2e90ed9e69c4e3f6f85a7d346e42389361138e4cb6c32f93d77c4a245cf75db3
|
Provenance
The following attestation bundles were made for omniload-0.0.0-py3-none-any.whl:
Publisher:
release-pypi.yml on panodata/omniload
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
omniload-0.0.0-py3-none-any.whl -
Subject digest:
6373bbfc20a86f6240e6d724794e013d7914801653f22fa7e68978356a703c3f - Sigstore transparency entry: 1555395529
- Sigstore integration time:
-
Permalink:
panodata/omniload@59838400a2f1d126b3690d65728fb3661ca143c4 -
Branch / Tag:
refs/tags/v0.0.0 - Owner: https://github.com/panodata
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release-pypi.yml@59838400a2f1d126b3690d65728fb3661ca143c4 -
Trigger Event:
push
-
Statement type: