首页 > 解决方案 > 有没有更好的方法在不删除现有表的情况下更新雪花数据仓库中的表架构?

问题描述

我们最近开始在我们的项目中使用雪花数据仓库,遇到了一个问题。表和视图创建脚本已上传到 Git 存储库并通过 Jenkins 执行。对于雪花中表创建脚本的任何更新(列添加或删除),我们必须删除并重新创建雪花中的表。这会导致表中的数据丢失,这是不可取的。

每次我们删除并重新创建表时,数据都会丢失,我们必须手动将所有数据加载到新创建的表中。这既费时又导致不必要的停机时间。我们的表创建脚本对所有环境都是通用的,并且之前是为 HIVE 设计的。同样扩展到雪花,我们仅在对主要雪花表进行任何模式更改时才会遇到问题。

当我们向表中添加新列时,ALTER 命令也不能解决我们的问题。我正在寻找可以将更改部署到表或可以在不删除基础数据的情况下修改表的任何工具或过程。

在浏览了 Snowflake 文档后,我考虑了 Oracle SQL 开发人员数据建模器 (SDDM),但我找不到任何合适的方法来更改已创建的表。我发现的只是如何从该工具连接到雪花并从那里进行导入。雪花文档链中提到了 Sqitch 和 Dataedo 等其他工具,但它们似乎不符合我的要求。

雪花文档社区的链接如下。 https://snowflakecommunity.force.com/s/question/0D50Z00007v6qQbSAI/what-schema-management-tools-are-there-for-snowflake

任何人都可以建议任何工具或流程来解决我的问题。提前致谢

标签: jenkinssnowflake-cloud-data-platform

解决方案


假设您想自动创建 Snowflake Alter Table语句,您可能需要查看FlywayDB。它支持使用免费和付费版本捕获 Snowflake 的 DDL 更改。它由 Redgate 制作,该公司在 SQL Server 模式比较和迁移方面有着悠久的历史。


推荐阅读