分区管理策略

时间:2019-02-13 23:12:25

标签: azure-sql-data-warehouse

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

在我的情况下,我实质上希望为partition列中的每个唯一值都分配一个分区-我们将其称为Date。随着时间的推移,我将拥有新的价值(需要新的分区),并且每天还需要多次替换一个或多个分区的内容,同时最大程度地减少对用户的潜在影响。我已按照标有“表分区源代码控制”的章节进行操作,将其作为初始分区设置的策略。我认为每天需要多次替换某些分区意味着我需要拥有一个可以清空/加载然后使用分区交换的相同/空的临时表。我觉得我缺少的策略元素包括(我知道这里有几个问题-如果我缺少一些总体方面,我会将它们汇总在一起):

  • 当我正在为新的Date值处理数据时,如何检查我是否已经有该值的分区?只是做一个SPLIT RANGE并吞下“正在添加的边界值已经存在”错误吗?

  • 在加载临时表时,在确认存在要处理的Date的分区后,我听说清除分区最有效的方法是删除分区(而不是delete ... where date =''),以避免事务记录...我看到了针对SQL的文档化语法,但没有看到SQL Data Warehouse?

  • 我看到了交换分区的语法-似乎要求您知道要交换的分区号。您如何找出日期X是什么分区号(我看到了一些与分区相关的视图,但是在给定表名和值的情况下,如何不能完全合并partion_number)?

0 个答案:

没有答案