我想知道是否有可能在每次我的管道摄取新数据时,用最新的数据替换azure sql数据库中的数据。我有一个管道,将数据从Azure Blob存储到Azure SQL,但我面临的挑战是管道每5分钟运行一次,并且它在数据库中的现有表上连接新数据,我希望它在每次管道运行时替换数据。我已经尝试了互联网上的一切,没有任何工作对我来说,现在我的Azure SQL的空间已经耗尽。任何有帮助的东西都将受到高度赞赏。谢了
isr3a4wc1#
如何更新数据取决于数据生命周期。这听起来像你想要一个截断和替换,或合并。1.创建要报告的登录表和最终表。
截断替换
1.开始交易1.截断最终表1.开始尝试1.从着陆表插入并提交事务1.开始捕捉1.回滚事务并引发错误。
合并
1.开始交易1.开始尝试1.当在源中发现目标中没有的数据时,则惰性到目标中。1.当在源中发现目标中存在但不同的数据时,则更新目标。1.当在目标中发现不在源中的数据时,则从目标中删除。1.委托交易1.开始捕捉1.回滚事务并引发错误。
1条答案
按热度按时间isr3a4wc1#
如何更新数据取决于数据生命周期。这听起来像你想要一个截断和替换,或合并。
1.创建要报告的登录表和最终表。
1.通过 Package 在事务中的存储过程,使用着陆表中的try/catch更新最终表。如果尝试失败,则回滚事务并引发错误。着陆表允许您在事务中 Package truncate,并使用insert防止您在insert问题上拥有一个空表。
截断替换
1.开始交易
1.截断最终表
1.开始尝试
1.从着陆表插入并提交事务
1.开始捕捉
1.回滚事务并引发错误。
合并
1.开始交易
1.开始尝试
1.当在源中发现目标中没有的数据时,则惰性到目标中。
1.当在源中发现目标中存在但不同的数据时,则更新目标。
1.当在目标中发现不在源中的数据时,则从目标中删除。
1.委托交易
1.开始捕捉
1.回滚事务并引发错误。