Сторонние данные - хранить в хранилище данных или первичной базе данных? - PullRequest
0 голосов
/ 09 апреля 2010

Это в основном вопрос философии хранилища данных.

Мой проект включает в себя приложение форм Oracle и хранилище данных Teradata для отчетов и специальных целей. В дополнение к первичным данным, созданным пользователями нашего приложения, нам также требуются данные из различных других источников. В настоящее время эти сторонние данные поступают через плоские файлы FTPd непосредственно в наше хранилище данных. Для доступа к данным наши пользователи должны использовать ряд пользовательских отчетов BusinessObjects.

Мой вопрос заключается в том, имеет ли смысл отправлять эти данные в нашу исходную систему Oracle? Уместно ли когда-либо хранилище данных быть отправной точкой для доступа пользователей к необработанным данным?

Короче говоря, важнее ли, чтобы рабочая база данных содержала только данные, созданные вашим проектом, или чтобы хранилище данных оставалось предназначенным исключительно для отчетов и анализа?

1 Ответ

1 голос
/ 10 апреля 2010

Мы делаем либо в зависимости от ситуации.

Если обычные пользователи и обычные приложения должны просматривать сторонние данные, мы помещаем эти данные там, где они будут доступны для них. В нашем случае эти данные часто представляют собой данные, которые хранятся в пользовательских таблицах в базе данных, которые можно выбирать, а не редактировать, чтобы пользователи не могли изменять сторонние данные. Если вы используете обычные таблицы, вам может потребоваться триггер, чтобы предотвратить случайное изменение этих данных. Кроме того, он часто приходит в форме, которая может не соответствовать вашей структуре данных, и если им нужно только посмотреть, для целей отчета, вы можете не захотеть тратить время на его очистку, чтобы ваше обычное приложение могло его принять. Так что в этом случае пользовательские таблицы могут стать необходимыми.

Например, третье лицо может иметь поле, которое больше, чем ваше поле для той же вещи. Вы можете убрать смысл, обрезав их данные в соответствии с вашей структурой. Кроме того, ваша структура может иметь набор ограничений, которых нет у сторонних данных. Хотите ли вы рискнуть своей собственной целостностью данных, сняв эти ограничения? Возможно нет. Если мое приложение считает, что поле должно быть обязательным или является действительной датой, я не хочу вносить изменения для размещения сторонних отчетных данных. Если данные могут и должны быть доступны пользователям для изменения (мы делаем много этого), тогда приведите их в соответствие со стандартами вашей базы данных и вставьте.

Зачастую сторонние данные не нужно видеть пользователям, которые регулярно вводят данные, а только в отчетах управления, извлекаемых из хранилища данных. В этом случае нет, я бы не пытался поместить данные в любом месте, кроме хранилища данных. Зачем усложнять жизнь, делая доступными случайные изменения?

...