如何从.csv文件重建关系数据库?

时间:2011-10-28 20:03:14

标签: database csv relational

所以我得到了超过1.5TB的数据,我被告知来自某种类型的关系数据库。不幸的是,在某个地方,关系数据库关系的一切都被剥离了,我们剩下的几乎是五十个.csv文件,每个文件对应一个数据库中的一个表。没有架构,没有笔记,只有一篇有用的文档。使问题更加复杂的是,我们无权访问维护数据库的人员,也无法询问他们CX_CUST_O中X_ATTRIB_14的含义。

我们有一个文件列出了每个属性的名称和数据类型,这涵盖了所有表,因此我们至少知道属性是什么。它看起来像

TABLE_NAME

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

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

LAST_MODIFIED ......... DATE

等等等

数据非常零散,许多属性没有在任何字段中列出数据,还有许多无用的名称,如ATTRIB_3。每个表都有一个ROW_ID,CREATED和CREATED_BY,以及一个CONFLICT_ID。然后,有一些数据字段,它们通常是不完整的,只是部分填充,有很多空值。

到目前为止,我已经做了一些基本的预处理,通过消除没有值的属性并检查是否有简单的命名约定可以给我们提示 - 例如,如果TABLE_A中的X_ATTRIB_3与X_ATTRIB_3相同在TABLE_B中,似乎唯一的常见属性是那些微不足道的 - 例如,LONGITUDE在几个表中很常见,但这不太可能有所帮助。我不确定如何继续;数据的庞大规模使得无法手工查看所有内容。

是否有任何工具或技术可以帮助重建表格之间的关系,或者这是否足够罕见,我们将不得不从头开始?

感谢您的时间。

1 个答案:

答案 0 :(得分:1)

如果没有对数据本身性质的深入了解,很难重建复杂数据结构的关系。必须手动重建关系,为了正确地进行,不应修改数据。在大多数数据库模式设计中,设计者将创建关于记录ID和易于索引的数据的关系,这些数据通常是任意数字。首先要做的是以原始形式将内容添加到数据库中,按原样!然后根据您对数据的启发式理解,根据您打算对数据进行的查询创建有意义的关系。您可能需要专业协助来执行此操作:-) - 您最好不要使用任何自动构建工具来处理原始数据;当您将datadump转换为CSV格式然后尝试重建时,信息丢失可能非常微妙。