2011-10-28 8 views
1

私は1.5TB以上のデータを持っています。これは、並べ替えのリレーショナルデータベースから来たと言われています。残念なことに、行のどこかに、リレーショナルデータベースをリレーショナルにするすべてのものが取り除かれ、残っているものはほぼ50個の.csvファイルで、それぞれがデータベースのテーブルの1つに対応しています。スキーマはなく、メモもなく、役立つドキュメントも1つだけです。問題を複雑にするということは、データベースを管理している人たちにアクセスすることができず、CX_CUST_OのX_ATTRIB_14が何を意味するのかを尋ねることができないということです。.csvファイルからリレーショナルデータベースを再構築するにはどうすればよいですか?

ファイルごとに名前とデータ型を列挙したファイルがありますが、これはすべてのテーブルをカバーしているため、少なくとも属性の内容はわかります。それは

TABLE_NAME

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

ようになります...... .............. 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ですgooggun.com –

関連する問題