0

我正在使用 Azure SQL 数据仓库中的表分区做一些 PoC 工作。我已多次阅读有关表分区的可用文档(https://docs.microsoft.com/en-us/azure/sql-data-warehouse/sql-data-warehouse-tables-partition),但有点想出一个完整的策略来解决我的问题集,这似乎很常见。

在我的情况下,我基本上想要一个分区列中的每个唯一值的分区 - 我们称之为日期。随着时间的推移,我将获得新的值(需要新的分区),并且我还需要每天多次替换一个或多个分区的内容,同时尽量减少对用户的潜在影响。我遵循标有“表分区源代码控制”的部分作为初始分区设置的策略。我认为每天需要多次替换某些分区意味着我需要一个相同/空的临时表,我可以清除/加载然后使用分区交换。我觉得我缺少的策略的一些要素是(我知道这里有几个问题 - 我将它们混为一谈,以防我缺少一些总体方面):

  • 当我正在处理新 Date 值的数据时,我将如何检查我是否已经有该值的分区?只需执行 SPLIT RANGE 并吞下“正在添加的边界值已存在”错误(如果发生)?

  • 加载登台表时,在我确认存在我正在处理的 Date 的分区后,我听说清除分区最有效的方法是 DROP 分区(而不是 delete.. .where date='') 为了避免事务记录...我看到了 SQL 的记录语法,但没有看到 SQL 数据仓库?

  • 我看到了交换分区的语法——它似乎要求你知道要交换的分区号。你如何找出分区号 Date X 是什么(我看到一些与分区相关的视图,但不能完全放在一起你如何得到partion_number,给定表名和值)?

4

0 回答 0