2011-12-23 3 views
0

Я хотел бы иметь возможность запросить Azure, чтобы определить, какие разделы доступны. Для этого есть два разных варианта использования.Есть ли способ определить существующие разделы в таблице Azure?

1) При запросе агрегации отчетов некоторые разделы основаны на регистрации информации о вещах, которые были сделаны в определенную дату. Ключ раздела указывает набор данных, а данные в нем - операции для этой даты. Я собираю статистическую информацию из этого раздела в другую таблицу. т.е.: Последующая обработка после обработки.

например: Имя таблицы: DailyAggregation PartitionKey: CustomerID: 5, YYYY-MM-DD

Я хочу, чтобы избежать попыток запроса для таблицы разделов, которые не существуют, и не хотят, чтобы обработать все данных каждый день. Например, у меня есть 5 месяцев статистики и обработаны первые 4 дня, но есть пробел в несколько дней или недель. Нет смысла запрашивать данные в тех разделах, которые не существуют.

2) Некоторые разделы основаны на идентификаторе, который может быть удален в будущем. Я хотел бы написать код целостности системы, чтобы помочь мне идентифицировать разделы, содержащие данные, для которых ссылки на них больше не существуют, поэтому я могу их удалить. т.е.: сиротские данные.

например: Имя таблицы: DailyAggregation PartitionKey: CustomerID: 5, YYYY-MM-DD

CustomerID хранится в SQL Azure. Скажем, строка Customer удалена. Я хочу иметь возможность легко определить, существуют ли какие-либо разделы DailyAggregation для этого CustomerID, которые больше не существуют для очистки данных, на которые больше не ссылаются.

Мысли?

ответ

0

Вот как я это сделаю.

Сначала я бы выбрал первый элемент во всей таблице. Я бы сделал это, не указав PartitionKey или RowKey и «Take 1», чтобы получить первую строку.

Далее я сделаю еще один запрос, который получит все строки, которые соответствуют только что полученной группе из запроса Take 1.

Затем, чтобы получить следующее начало следующего набора элит, я бы получил первый раздел, который появился после того, как вы только что получили раздел. Поэтому, если ваш раздел - это дата, я просто добавлю его к дате, поэтому запрос будет похож на «PartitionKey> = LastDate.AddDay (1)». Чтобы правильно выполнить этот запрос, вы должны преобразовать дату в длинный тип и поместить ее так, чтобы представление строки было одинаковой длины.

После этого вы можете просто повторить то, что я объяснил, чтобы получить весь контент таблицы без запроса каких-либо ненужных дат.

+0

Это близко к тому, что я ищу, но не помогает определить существующие разделы, чтобы выполнять проверки целостности данных. И действительно мои проверки целостности данных предназначены для идентификации данных, которые могут быть удалены из системы. Я обновил вопрос с помощью конкретных примеров. Возможно, мне нужно просто отслеживать, когда я создаю новый раздел таблицы отдельно? Это похоже на дополнительные накладные расходы, которые я бы предпочел не предпринимать. Может быть, я могу установить RowKey в каждом разделе и запросить RowKey, но не PartitionKey? Мысли? –

Смежные вопросы