4

この質問がテキストの壁のように見える場合は、まずお詫び申し上げます。書式を設定する方法が思いつきません。

私は (1995 年頃) 貴重なデータを持つマシンを持っています。そのマシンは UNIX (SCO OpenServer 6) を実行しており、何らかのデータベースが格納されています。

データは通常、ライセンスが期限切れになり、開発者が取引を停止したソフトウェア パッケージを介してアクセスされます。

ソフトウェア パッケージは、telnet 経由でマシンに接続してデータを取得し、データを変更します (ライセンスが変更されたため、telnet 接続は機能しなくなりました)。

ネットワーク経由で ODBC ドライバー (SeaODBC.dll) を介してマシンにアクセスできます。これがデータの抽出を計画していた方法ですが、これまでに 24 時間強で 300,000 行を取得しました。合計 50,000,000 行なので、現在の速度では 6 か月かかります。

ODBC 経由でマシンからデータを抽出するより迅速な方法、またはマシン上の DB 全体を外部ドライブ/ネットワーク ドライブまたはその他の外部ソースにローカルに抽出する方法のいずれかが必要です。

UNIX インターフェースをいじってみましたが、見つけることができる唯一の大きなファイルは、1 文字のフォルダーの巨大なマトリックス (A\G\data.dat、A\H\Data.dat ect など) の中にあります。

マシンにインストールされているDBシステムを見つける方法を知っている人はいますか? うまくいけば、それが標準であり、すべてを適切にフォーマットされたファイルにエクスポートする方法を見つけることができるでしょう.

編集

ファイルシステムを調べてみると、その下root > Lに多くの単一文字のフォルダーが含まれているフォルダーが見つかりました。各単一文字のフォルダーには、より多くの単一文字のフォルダーが含まれています。

また、必要なテーブルにちなんで名付けられたファイル (「ooi.r」など) もあり、次の形式があります。

<Id>
[]
    l for ooi_lno, lc for ooi_lcno, s for ooi_invno, id for ooi_indate
    require l="AB"
    require ls="SO"
    require id=25/04/1998
    {<id>} is s
    sort increasing Id
4

2 に答える 2

1

私はそのような種類のファイル名A\G\data.datなど (バックスラッシュを含むファイル名???) を認識しません。また、独自の形式である可能性が高いため、その方法にはあまり期待できません。これらを実行fileして、認識されている形式であるかどうかを確認することができます...

システムを仮想化することで、ODBC を介したデータ抽出の速度を改善することをお勧めします。最新のコンピューターは、より高速なメモリ、高速なディスク、および高速な CPU を備えており、データをより迅速に抽出できる可能性があります。古いシステムを仮想化するには、古いシステムからディスク イメージを抽出する必要がありますが、ディスクからすべてを読み取る際の単一の順次パスが遅くならないことを願っています。

このシステムのアーキテクチャがどのようなものかはわかりませんが、x86 だと思います。つまり、仮想化するのはそれほど難しくないかもしれません (SCO OpenServer 6 OS が仮想化にどれだけ適合するかに依存します)。完全仮想化 (準仮想化ではない) をサポートするハイパーバイザーを使用する必要があります。

于 2013-02-26T16:46:17.270 に答える
0

私は最終的に問題を解決し、別のツール (MS Access や MS Excel ではなく) を使用してクエリを実行すると、非常に高速に動作し、DaFT (Database Fishing Tool) をSELECT INTOテキスト ファイルに使用することになりました。数時間で 5000 万行すべてを処理しました。

私が使用していた dll ドライバーは、どの MS 製品でもうまく動作しないようです。

于 2013-03-11T13:34:49.607 に答える