Каков наилучший способ структурировать эту базу данных? - PullRequest
0 голосов
/ 01 июня 2019

Итак, я нахожусь в процессе создания базы данных из данных моих клиентов.Каждый месяц они создают примерно 25 csv, которые уникальны по своей теме и атрибутам, но у них всех есть одна общая черта;регистрационный номер.

Регистрационный номер - единственная общая переменная для всех этих csv.

Моя задача - перенести все это в базу данных, к которой я склоняюсь в сторону postgres (Если кто-то считает, что nosql будет лучше для этого, пожалуйста, кричите!).

Большая проблема;структурирование это в базе данных.Должен ли я создавать 1 таблицу в месяц, в которой хранятся все данные, столбец 1 - регистрация, а столбец 2-200 - атрибуты?Или следует поместить все CSV в Postgres, как они есть, а затем присоединиться к ним позже?

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

Надеюсь, это имеет смысл - я приветствую все предложения!

Спасибо.

1 Ответ

1 голос
/ 01 июня 2019

В некоторых случаях ваш вопрос слишком широк и требует мнения (SQL против NoSQL).

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

Моя рекомендация следующая.

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

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

В-третьих, скопируйте (это команда Postgres) данные в промежуточные таблицы. Это начало ежемесячного процесса.

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

В этом процессе могут быть изменения, основанные на таких вопросах, как:

  • Должны ли данные быть доступны 24/7 даже во время процесса загрузки?
  • Помешает ли сбой проверки в одной части данных загрузить какие-либо данные?
  • Достаточны ли проверки SQL (ссылочная целостность и check) для проверки данных?
  • Вам нужно иметь возможность "откатить" систему до какого-либо конкретного обновления?

Это всего лишь вопросы, которыми можно руководствоваться при реализации. Они не предназначены для ответа здесь.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...