我正在考虑四种类型的环境(即技术,开发,认证和生产),每种环境包含一到几十个Azure SQL数据仓库数据库。每个数据库将包含几个到几十个模式以及数百到数千个表,视图和过程。随着时间的推移,将添加架构。随着时间的推移,将添加和修改表/视图(例如,列添加)。
我想首先将所有更改引入一个名为“tech”的数据库。然后,我将有一个自动化流程,可以促进对更高环境中所有数据库的更改(基于利益相关方的批准)。 ADW数据库(至少用于生产)将部署在可用的Azure区域中。
到目前为止,我一直将所有部署脚本保存在源代码存储库中,并为每个环境中的每个ADW数据库重新运行脚本(在Linux上使用sqlcmd)。
我还没有找到我在其他支持允许这种自动化的MPP数据库中使用的功能。 Teradata有“SHOW TABLE | VIEW | MACRO;”允许一个转储特定DDL的命令。 Greenplum有一个用于备份DDL的pg_dump命令。
在Azure SQL数据仓库中,如何确定“DDL版本”? 在Azure SQL数据仓库中,如何从一个数据库卸载特定的DDL并将其应用于另一个数据库?
答案 0 :(得分:0)
这是一个古老的问题,所以我正在更新答案。
Azure Synapse Analytics(以前称为Azure SQL数据仓库)现在通过SSDT项目支持CI / CD。您可以设置针对DW工作负载的数据库项目,在Azure Devops中签入GIT,并构建指向所有环境的完整部署管道。