Skip to main content

Data Vault 2.0 scaffolding tool

Project description

PyPI - Version Documentation

mssql job postgres job coverage

:warning: Pre-alpha version disclaimer Please note that this package is in a pre-alpha version which means it is used internally in a small circle of users and backwards-incompatible changes might be introduced in future releases.

Welcome

Welcome to the sandwich tool documentation.

Get started or go straight to the Tutorial

What is sandwich?

sandwich is a Data Vault 2.0 scaffolding tool

You can automatically create Data Vault 2.0 entities, such as hubs, links, satellites, as well as information layer objects such as dim tables from a multidimensional paradigm.
It also creates procedures for ELT but does not run them!

sandwich does not support fact tables automation just because facts usually too specific to be automated.

Simple usage scenario in 3 steps:

  1. you manually create an Employee view in stg schema using your preferable dbms tool such as SSMS or pgAdmin

  2. you call

    sandwich create --entity=Employee --dialect=mssql --profile=hub-sat2-dim2
    

    from terminal, which creates the following objects in the database:

    hub.Emplyee                         -- table
    sat.Emplyee                         -- table
    dim.Emplyee                         -- SCD2 table  
    elt.Populate_hub_Employee           -- proc  
    elt.Populate_sat_Employee           -- proc  
    elt.Populate_dim_Employee           -- proc
    job.Run_all_related_to_Employee     -- proc which calls the 3 procs from above  
    meta.Drop_all_related_to_Employee   -- proc which drops all objects above  
    
  3. you run job.Run_all_related_to_Employee manually using your dbms tool or schedule it using a job/cron system you have

Installation

You can install sandwich via pip:

pip install sandwich

Usage example

sandwich init --db=DataVault
sandwich entity add Customer --profile=link-sat0

For more examples and detailed usage, please refer to the documentation.

Contributing

Contributions are welcome! If you have suggestions, feature requests, or find any bugs, please open an issue or submit a pull request. Make sure to follow the contribution guidelines.

Acknowledgments

This project is inspired by the beauty of the Data Vault 2.0 methodology.

License

This project is licensed 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

sandwich-0.7.1.tar.gz (19.4 kB view details)

Uploaded Source

Built Distribution

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

sandwich-0.7.1-py3-none-any.whl (37.1 kB view details)

Uploaded Python 3

File details

Details for the file sandwich-0.7.1.tar.gz.

File metadata

  • Download URL: sandwich-0.7.1.tar.gz
  • Upload date:
  • Size: 19.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.10.4 {"installer":{"name":"uv","version":"0.10.4","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Debian GNU/Linux","version":"13","id":"trixie","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for sandwich-0.7.1.tar.gz
Algorithm Hash digest
SHA256 55d4625ae0283538941a634617bdb4db9b903e8ec41ca0cd792a5b7b9bed777c
MD5 d54f18094e5cecedbac7f5bd8135eadc
BLAKE2b-256 dc7eab8fdc7771346a2d906afb9f0d80dd7d0cf8793e6ae52350ce2e05dd0afd

See more details on using hashes here.

File details

Details for the file sandwich-0.7.1-py3-none-any.whl.

File metadata

  • Download URL: sandwich-0.7.1-py3-none-any.whl
  • Upload date:
  • Size: 37.1 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.10.4 {"installer":{"name":"uv","version":"0.10.4","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Debian GNU/Linux","version":"13","id":"trixie","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for sandwich-0.7.1-py3-none-any.whl
Algorithm Hash digest
SHA256 bd7fdc6c17e8932569f5c57f36baa83a3929f66d2070cbadbe6f61977ef2e0e5
MD5 95dbfa60c016a915b7d219392c1664bc
BLAKE2b-256 1261aa6fad8c958aac413bb481efa1b4d333deac28250f8bb103c5e0d97440b4

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