Рекомендуемый способ добавления ежедневных данных в базу данных - PullRequest
1 голос
/ 07 февраля 2012

Я получаю новые файлы данных каждый день.Сейчас я создаю базу данных со всеми необходимыми таблицами для импорта данных и выполнения необходимых вычислений.

Должен ли я просто добавлять данные каждого нового дня в мои текущие таблицы?Каждый файл содержит столбец даты, который позволил бы выполнить запрос «ГДЕ» в будущем, если мне нужно будет проанализировать данные за один конкретный день.Или я должен создавать новый набор таблиц на каждый день?

Я новичок в разработке баз данных (из Excel).Я буду использовать SQL Server для этого.

Ответы [ 5 ]

2 голосов
/ 07 февраля 2012

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

Я бы рекомендовал сохранить значение столбца даты из ваших входящих данных в вашей базе данных, а также иметь столбец «CreateDate» в ваших таблицах со значением по умолчанию «GetDate ()», чтобы он автоматически заполнялся с текущей датой, когда строка вставлена.

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

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

2 голосов
/ 07 февраля 2012

Возможно, вы захотите взглянуть на SSIS (SqlServer Integration Services). Это инструмент SqlServer для выполнения операций ETL.

1 голос
/ 07 февраля 2012

Хороший вопрос. Вы определенно должны иметь один набор таблиц и ежедневно добавлять данные. Подумайте об этом: если вы создаете новый набор таблиц каждый день, как, скажем, будет выглядеть запрос ежемесячного отчета? Запрос квартального отчета? Это был бы беспорядок, с UNIONs и JOINs повсюду.

Единый набор таблиц с предложением WHERE позволяет управлять запросами и отчетами.

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

1 голос
/ 07 февраля 2012
  1. да, добавляйте данные за каждый день в таблицы;1 набор таблиц для всех данных.

  2. да, используйте столбец даты, чтобы определить день, когда были загружены данные.

  3. может иметьдругая таблица со столбцом даты и столбцом сгустка.Дата, которая будет содержать дату загрузки, и сгусток, содержащий файл, который вы импортировали.

0 голосов
/ 07 февраля 2012

Я бы загрузил данные в таблицу этапов независимо и добавил бы к основным таблицам после.Один раз в неделю я обновлял бы все данные в основной таблице, чтобы гарантировать, что данные остаются правильными согласно источнику.

Маркус

...