我们最近开始在项目中使用Snowflake数据仓库,但遇到了一个问题。表和视图创建脚本被上传到Git repo,并通过Jenkins执行。对于雪花中的表创建脚本的任何更新(添加或删除列),我们必须在雪花中删除并重新创建表。这会导致表中的数据丢失,这是不希望的。
每次我们删除并重新创建表时,数据都会丢失,我们不得不手动将所有数据加载到新创建的表中。这既耗时又会导致不必要的停机时间。我们的表创建脚本适用于所有环境,并且以前是为HIVE设计的。同样的情况也扩展到了snowflake,我们只在对主snowflak表进行任何架构更改时才面临问题。
当我们向表中添加新列时,ALTER命令也不能解决我们的问题。我正在寻找任何可以将更改部署到表或可以在不删除基础数据的情况下修改表的工具或流程。
在浏览了Snowflake文档后,我考虑了OracleSQL开发人员数据建模器(SDDM),但我找不到任何合适的方法来更改已经创建的表。我所发现的只是如何从工具连接到雪花并从那里进行导入。雪花文档链中提到了其他一些工具,如Sqitch和Dataedo,但它们似乎不符合我的要求。
雪花文档社区的链接如下。https://snowflakecommunity.force.com/s/question/0D50Z00007v6qQbSAI/what-schema-management-tools-are-there-for-snowflake
有人能提出任何工具或流程来解决我的问题吗。提前感谢
假设您想自动创建Snowflake Alter Table语句,您可能需要查看FlywayDB。它支持通过免费和付费版本捕获Snowflake的DDL更改。它是由Redgate制作的,该公司在SQL Server模式比较和迁移方面有着悠久的历史。