Skip to content

Declarative database change management tool for Snowflake

License

Notifications You must be signed in to change notification settings

Xiaoming-lw/SnowDDL

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

SnowDDL

PyPI Getting Started Pytest

SnowDDL is a declarative-style tool for object management automation in Snowflake.

It is not intended to replace other tools entirely, but to provide an alternative approach focused on practical data engineering challenges.

You may find SnowDDL useful if:

  • complexity of object schema grows exponentially, and it becomes hard to manage;
  • your organization maintains multiple Snowflake accounts (dev, stage, prod);
  • your organization has multiple developers sharing the same Snowflake account and suffering from conflicts;
  • it is necessary to generate some part of configuration dynamically using Python;

Main features

  1. SnowDDL is "stateless".
  2. SnowDDL can revert any changes.
  3. SnowDDL supports ALTER COLUMN.
  4. SnowDDL provides built-in "Role hierarchy" model.
  5. SnowDDL re-creates invalid views automatically.
  6. SnowDDL simplifies code review.
  7. SnowDDL supports creation of isolated "environments" for individual developers and CI/CD scripts.
  8. SnowDDL strikes a good balance between dependency management overhead and parallelism.
  9. SnowDDL configuration can be generated dynamically in Python code.
  10. SnowDDL can manage packages for Java and Python UDF scripts natively.

Quick links

Introduction videos

Mini-roadmap

  • placeholders in YAML configs (done)
  • documentation for dynamic config generation in Python ("advanced mode") (done)
  • video tutorials (done, but more tutorials are coming in future)
  • full test coverage for all object types and transformations

Issues? Questions? Feedback?

Please use GitHub "Issues" to report bugs and technical problems.

Please use GitHub "Discussions" to ask questions and provide feedback.

Created by

Vitaly Markov, 2024

Enjoy!

About

Declarative database change management tool for Snowflake

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Python 99.9%
  • Other 0.1%