Есть ли способ определить существующие разделы в таблице Azure? - PullRequest
0 голосов
/ 23 декабря 2011

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

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

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

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

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

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

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

Мысли?

1 Ответ

0 голосов
/ 27 декабря 2011

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

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

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

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

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

...