Как перестроить реляционную базу данных из файлов .csv? - PullRequest
1 голос
/ 29 октября 2011

Итак, у меня есть чуть более 1,5 ТБ данных, которые, как мне сказали, получены из своего рода реляционной базы данных.К сожалению, где-то вдоль линии все, что делает реляционную базу данных реляционной, было удалено, и у нас осталось почти пятьдесят файлов .csv, каждый из которых соответствует одной из таблиц в базе данных.Там нет схемы, нет заметок, и только один кусок полезной документации.Проблема усугубляется тем, что у нас нет доступа к людям, которые поддерживают базу данных, и не можем спросить их, что означает X_ATTRIB_14 в CX_CUST_O.

У нас действительно есть файл со списком для каждого атрибута,name и datatype, и это охватывает все таблицы, поэтому мы, по крайней мере, знаем, что это за атрибуты.Это выглядит примерно так:

TABLE_NAME

ROW_ID ..................... VARCHAR2 (32)

CREATED.................... VARCHAR2 (16)

LAST_MODIFIED ......... ДАТА

и т. Д. И т. Д. И т. Д.

Данные очень неоднородны, со многими атрибутами, без данных, перечисленных в любом из полей, и множеством бесполезных имен, таких как ATTRIB_3.Каждая таблица имеет ROW_ID, CREATED и CREATED_BY, а также CONFLICT_ID.Кроме того, есть поля данных, которые, как правило, неоднородны и также частично заполнены множеством пустых значений.

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

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

Спасибо, что уделили время.

1 Ответ

1 голос
/ 29 октября 2011

Очень сложно восстановить отношения для сложных структур данных без глубоких знаний о природе самих данных. Отношения должны быть восстановлены вручную, и для того, чтобы сделать это правильно, данные НЕ должны быть изменены. В большинстве проектов схем базы данных разработчик создает связи по идентификаторам записей и легко индексируемым данным, которые обычно являются произвольными числами. Первое, что нужно сделать, это добавить контент в базу данных в необработанном виде, КАК ЕСТЬ! Затем, основываясь на эвристическом понимании данных, создайте отношения, которые имеют смысл на основе запросов, которые вы намереваетесь выполнить с данными. Вам, вероятно, понадобится профессиональная помощь, чтобы сделать это :-) - На самом деле вам лучше НЕ использовать какие-либо автоматизированные инструменты сборки для обработки ваших необработанных данных; Потеря информации может быть очень незначительной, когда вы делаете дамп данных в формате, подобном CSV, а затем пытаетесь восстановить.

...