Skip to main content

A simple way to run multiple SQL script pipelines in parallel.

Project description

SQLPipe - Easy way to build SQL pipelines

With SQLPipe it is possible to create a full pipeline and orchestrate dependencies in a simplified way using SQL. The task management uses the asyncio library, so execution is done with the python coroutine system for parallel executions. image Installation:

pip install sqlpipe

Basic Example

Using SqlPipeBuilder. Once the object has been instantiated, use the add_task method to add the scripts to be executed, you must specify a different id for each task, if one task depends on another, use the parent_id parameter to configure the dependency.

from sqlpipe import SqlPipeBuilder

con_str =  'postgres://user:pass@host:port/dbname'
pipe =  SqlPipeBuilder(con_str, connections_limit=5)

# Add custom script
pipe.add_task(id='id_2', script='truncate table t1;', parent_id='id_1')

# Add SQL file script
pipe.add_task(id='id_1', script='queries/tables/t1.sql', file=True)

# Add all .sql in directory
pipe.map_directory('queries')

# Execute all pipeline
pipe.execute()
# Start from specifc task
pipe.execute('id_2')

Using CLI Call the CLI and pass the directory (-d or --directory) parameter, after that all .sql files in the directory and subdirectories will be started. To configure a dependency just put the dependency in a comment on script file, example /* @parent=my-parent-task */.

python -m sqlpipe -d queries

It's possible to call specific task passing the task parameter (-t or --task).

python -m sqlpipe -d queries -t task-id

Supported Databases

  • MySQL
  • PostgreSQL
  • Redshift

Licence 📜 Code released under the MIT license.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

sqlpipe-0.2.tar.gz (3.8 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

sqlpipe-0.2-py3-none-any.whl (4.8 kB view details)

Uploaded Python 3

File details

Details for the file sqlpipe-0.2.tar.gz.

File metadata

  • Download URL: sqlpipe-0.2.tar.gz
  • Upload date:
  • Size: 3.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.2.0 pkginfo/1.5.0.1 requests/2.24.0 setuptools/49.2.0 requests-toolbelt/0.9.1 tqdm/4.48.2 CPython/3.8.5

File hashes

Hashes for sqlpipe-0.2.tar.gz
Algorithm Hash digest
SHA256 325101bce8af2b6758e1cad5dab48068e5a812b7dfd43d357883b353df9d757e
MD5 0790cbcd26e5de95784b7cf57f872b1d
BLAKE2b-256 145bcc24fb7450832fa84eb512d106cedbc7f3a2945874aa2afd746bf14e4d6a

See more details on using hashes here.

File details

Details for the file sqlpipe-0.2-py3-none-any.whl.

File metadata

  • Download URL: sqlpipe-0.2-py3-none-any.whl
  • Upload date:
  • Size: 4.8 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.2.0 pkginfo/1.5.0.1 requests/2.24.0 setuptools/49.2.0 requests-toolbelt/0.9.1 tqdm/4.48.2 CPython/3.8.5

File hashes

Hashes for sqlpipe-0.2-py3-none-any.whl
Algorithm Hash digest
SHA256 1be9b0aefd2fb66770d79f9622dffbecd0b24fc30432d8909a7d5ac998aab859
MD5 a1c56d9c964893101bcd2fec5877bde2
BLAKE2b-256 c77d98041d22965fc4b964f192e616237fc6aa020ae4756ec908a664ec86dbee

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page