Это широкая тема, но я предложу несколько хороших отправных точек.
Для начала подумайте об истории. Если транзакция обновляет какую-либо точку данных, необходимо ли применять ее задним числом или нужно помнить, какое значение было в любой данный момент времени. Например, предположим, у вас есть ежемесячный отчет о клиентах по городам, и один из ваших клиентов перемещается. Как DW должен отражать это.
Подумайте о принятии данных. Является ли каждая строка ввода хорошим входом? Например, если вы имеете дело с веб-данными, существуют сканеры и спамеры, которые могут не учитываться так же, как и пользовательский трафик.
Подумайте о синхронизации данных. Все ваши входы используют одни и те же клавиши? Ты умеешь переводить между ними? Команда A означает «cust_id» то же самое, что и команда B? Здесь очень полезен глоссарий проекта.
Подумайте о локализации. Вы входите все в одном часовом поясе? Все ли они используют одну и ту же систему календарей? Вам нужно обрабатывать Unicode?
Подумайте об отчетности. Могут ли данные, которые вы собираете, ответить на вопросы, которые люди будут задавать DW? Если нет, то как вы можете захватить данные, которые могут?
Подумайте о представлении. Должны ли вы показывать клиентам те же данные, которые вы используете для внутренней отчетности? Нужно ли финансам видеть другую часть данных, нежели маркетинг?
Это действительно только царапает поверхность проблем, которые возникают в крупном проекте DW. Я хотел бы отослать вас к различным книгам Ральфа Кимбалла по хранилищу данных для более глубокого обсуждения проблем и решений. Надеюсь, это поможет вам начать.