1

Visual FoxPro には、対話的にデータをクレンジング/フォーマットするために使用する一連のユーティリティ スクリプトがあります。このコードを移行して、MySQL や SQLite などの他のデータベース プラットフォームを利用できるようにしたいと考えています。

たとえば、名前や住所の行を適切な大文字/小文字に変換するスクリプトを実行します。このコードはテーブル全体を調べ、各行を分析/修正します。アドレスの解析と標準化、さらには重複検出などを行うものもあります...

コードを Python に移行し、SQLAlchemy のようなものを「仲介者」として使用することを考えています。

Visual FoxPro では、データベースとテーブルが統合されているため、テーブルを開いてコマンドを実行するだけです。MySQL は、そこからデータを抽出し、その抽出されたデータを処理してから、テーブルを更新する必要があるという点で異なります。

最善のアプローチは何ですか?

いくつかの可能性があります。

1) 作業対象のデータセット全体を抽出します。たとえば、すべての住所フィールドを抽出し、それが作業対象である場合は、すべてを更新してすべて書き戻します...

2) 大量のシステム メモリを潜在的に消費しないように、データ セットをチャンクで抽出します...その後、更新して書き戻します

3) おそらく SQLAlchemy のようなツールの助けを借りて、サーバーに送信されて実行される SQL コードを生成します...

4) ??? 私が考えていなかった他の何か?

4

1 に答える 1

0

一度に複数のことをしようとしているようです。段階的なアプローチをしていただけますか?おそらく、通常の通常のスクリプトを使用して、現在のデータをクレンジングします。次に、データベースを MySQL に移行します。

VisualFoxPro がデータベースを CSV などにエクスポートする方法を提供している場合、データベースの移行は簡単です。次に、その CSV を MySQL に直接インポートできますが、問題はほとんどありません。これにより、機能的に同一の 2 つのデータベースが得られます。もちろん、それらが実際に同一であることを証明する必要があります。これはそれほど難しくはありませんが、時間がかかります。SQLAlchemy を使用して支援できる場合があります。

MySQL データベースが正しい場合は、クレンジング スクリプトを Python などに移植して、それらを機能させるときです。

それが私がこの問題に取り組む方法です。それを細かく分割し、1 つのステップでやりすぎないようにします。

HTH

于 2011-10-06T22:32:39.620 に答える