Хранилища данных,
OLAP, CRM: информация
 
 На главную | Книги | Ссылки | Рассылка | Письмо автору | RSS

Совет №4
Исключительно быстрое управление сложными измерениями "Клиент"


Материал опубликован с разрешения компании Ralph Kimball Associates
Автор оригинала: Ральф Кимбал (все статьи)
Перевод на русский язык: Константин Лисянский
Оригинальный документ располагается здесь.

 

Многие разработчики хранилищ данных должны иметь дело с трудными измерениями "Клиент", которые одновременно и широкие и глубокие. Измерение "Клиент" может иметь 100 или более описательных атрибутов и содержать миллионы строк. Иногда "клиенты" - это владельцы полисов медицинского страхования, в других случаях это - владельцы транспортных средств. Но проблемы проектирования при этом одинаковые.

Часто в таких ситуациях хранилище данных получает полностью обновлённую копию измерения "Клиент" с периодичностью, до одного раза в день. Естественно, идеальной ситуацией было бы, если бы в хранилище поступали только "дельты" (изменённые данные), но в большинстве случаев хранилище данных должно находить изменившиеся записи путём тщательного просмотра всего файла. Этот процесс сравнения вчерашних записей с сегодняшними для каждой записи в поисках изменений является очень запутанным и медленным.

Вот метод, который выполняет шаг сравнения с ослепительной скоростью и предоставляет дополнительный бонус в виде более простой программы преобразования и загрузки данных. Этот метод основан на простом коде CRC, который вычисляется для каждой записи (не для каждого поля) во входящем файле с информацией о клиентах. Больше о CRC через мгновение. Вот шаги, которые необходимо запрограммировать:

  1. Прочитайте каждую запись сегодняшнего файла с информацией о клиентах и рассчитайте величину CRC для неё.
  2. Сравните это значение CRC со значением CRC для этой же записи, которое вы рассчитали вчера и сохранили. Вам нужно будет выполнить сопоставление записей на основе естественных ключей оперативной системы (идентификатора клиента) для того чтобы убедиться в том, что вы сравниваете правильные записи.
  3. Если коды CRC совпадают, можете быть уверены в том, что все сто полей двух записей полностью совпадают. ВАМ НЕ НАДО СРАВНИВАТЬ КАЖДОЕ ПОЛЕ ПО ОТДЕЛЬНОСТИ.
  4. Если коды CRC отличаются, вы можете немедленно создавать новый суррогатный ключ и помещать обновлённую запись в измерение "Клиент" вашего хранилища. Это медленно изменяющееся измерение типа 2 (SCD 2). Более основательная версия программы могла бы произвести поиск во всех ста полях для принятия решения о дальнейших действиях. Может быть, значения некоторых полей приведут к необходимости переписать запись в таблице измерения хранилища, что будет в случае SCD типа 1.

Если вы никогда не слышали о кодах CRC, не унывайте: ваш программист процедур загрузки данных знает, что это такое. CRC - это сокращение для Cyclic Redundancy Checksum. Это математическая методика создания уникального кода для каждой входной записи. Алгоритм вычисления кода CRC можно реализовать с помощью языков программирования Basic или C. Большинство вводных курсов по программированию описывают алгоритм построения кода CRC. Обратитесь также к поисковой системе Google с поиском по ключевым словам "CRC code" или "checksum utility".

Я буду рад услышать о любых интересных методиках, подобных этой, разработанных вами для вашего многомерного хранилища данных. Пошлите мне электронное письмо с описанием вашей методики.


Для удобства отслеживания новых публикаций на сайте рекомендую подписаться на рассылку или подписаться на канал RSS.

 

Если вы нашли в сети интересные ссылки на ресурсы по технологиям хранилищ данных, OLAP, CRM или data mining, и хотите поделиться ими с другими, присылайте их. Я с удовольствием размещу их на этом сайте.

 

Популярные страницы:

Советы разработчику хранилищ данных

OLAP

Моделирование

Книги

Книги на русском языке

Бесплатные книги

Производители OLAP

CRM

Производители CRM

Управление метаданными

Коллекция ссылок


Найти: на

[ На главную | Книги | Ссылки | Рассылка | Письмо автору | Реклама на сайте ]

© Константин Лисянский, 2001-2008.

SpyLOG Rambler's Top100 Rambler's Top100

Используются технологии uCoz