2011-10-28 47 views
1

所以我已经有了超过1.5TB的数据,据我所知,这些数据来自排序的关系数据库。不幸的是,在这一行的任何地方,关系数据库关系的所有东西都被剥离了,剩下的几乎是50个.csv文件,每个文件对应于数据库中的一个表。没有模式,没有笔记,只有一个有用的文档。使问题复杂化的是,我们无法访问维护数据库的人员,也无法访问CX_CUST_O中的X_ATTRIB_14。如何从.csv文件重新构建关系数据库?

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

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与TABLE_B中的X_ATTRIB_3,看起来唯一常见的属性是那些不重要的属性 - 例如,LONGITUDE在几个表中是常见的,但这不可能有所帮助。我不确定如何继续;数据的庞大规模使得不可能手工查看所有内容。

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

谢谢你的时间。

+0

我们需要一个像这样的问题的新网站:http://realworld.stackexchange.com – Dave

+0

这可能没有什么帮助,但是您是否考虑抛弃关系部分并将每个表的每一行转储到Mongo/some-other -document-DB? – jcollum

+0

我并不完全确定基于文档的数据库如何改善问题,但这更多的是来自无知。浏览他们的网站并不能真正让我开悟 - 数据仍然会以关系的方式进行设计。你能向我解释为什么它会有帮助吗?(< - 是非常无知的;在这个项目之前并没有真正与数据库一起工作) – Shiro

回答

1

对于复杂的数据结构重建关系是非常困难的,而不了解数据本身的性质。这些关系必须手工重建,为了正确地完成数据,不应修改数据。在大多数数据库模式设计中,设计人员将创建关于记录ID和易于索引的数据的关系,这些数据通常是任意数字。首先要做的是以原始形式将内容添加到数据库中,原样!然后根据您对数据的启发式理解,根据您打算对数据进行的查询创建合理的关系。你可能需要专业的帮助来做到这一点:-) - 你最好不要使用任何自动构建工具来处理你的原始数据;当您将数据加载到CSV等格式并尝试重建时,信息丢失可能非常微妙。

+0

这令人沮丧,但关于我的预期...感谢您的答案,但。 – Shiro

+0

让我知道如果你需要帮助,我可能会指点你一些资源......我的电子邮件是masud AT googgun.com –