2011-12-23 76 views
0

我希望能夠查詢Azure以確定哪些分區可用。這有兩種不同的用例。有沒有辦法確定Azure表中的現有分區?

1)當查詢報告聚合時,某些分區基於特定日期的事件記錄信息。分區鍵指示數據集,其中的數據是該日期的操作。我將來自該分區的統計信息彙總到另一個表中。即:一天完成後的後處理。

例如:表名:DailyAggregation PartitionKey:客戶ID:5,YYYY-MM-DD

我想避免試圖查詢不存在的,並且不希望處理所有的表分區的數據每一天。例如,我有5個月的統計數據,並且已經處理了前4天,但是有幾天或幾周的時間差距。沒有必要查詢不存在的分區中的數據。

2)某些分區基於將來可能被刪除的標識符。我想編寫一些系統完整性代碼來幫助我識別保存數據的分區,這些數據的引用不再存在,因此我可以將其刪除。即:孤兒數據。

例如:表名:DailyAggregation PartitionKey:客戶ID:5,YYYY-MM-DD

在客戶存儲在SQL天青。假設客戶行被刪除。我希望能夠輕鬆確定是否存在不再存在此CustomerID的任何DailyAggregation分區,以便清除不再被引用的數據。

想法?

回答

0

這是我該怎麼做的。

我會先選擇整個表格中的第一個元素。我會通過不指定PartitionKey或RowKey和「Take 1」來獲取第一行來做到這一點。

接下來,我會做另一個查詢,獲取所有與您剛剛從Take 1查詢中獲得的分區鍵相匹配的行。

然後爲了獲得下一組元素的下一個開始,我會得到剛剛獲得的partitionkey之後的第一個partitionkey。因此,如果您的partitionkey是一個日期,那麼我只需在日期中添加一個,這樣查詢就會像「PartitionKey> = LastDate.AddDay(1)」一樣。要正確地執行此查詢,您應該將日期轉換爲長整型並填充,以便字符串表示形式具有相同的長度。

之後,您可以迭代我所解釋的內容來獲取整個表格內容而不查詢任何不必要的日期。

+0

這與我正在查找的內容很接近,但對確定存在的分區以便執行數據完整性檢查無效。實際上,我的數據完整性檢查旨在確定可以從系統中刪除的數據。我已經用具體的例子更新了這個問題。 也許我應該簡單地跟蹤每當我創建一個新的表分區分開?這似乎是額外的開銷,我寧願不承擔。也許我可以在每個分區中設置RowKey並通過RowKey進行查詢,但不能使用PartitionKey?思考? – 2012-01-09 20:29:21

相關問題