1

我们在 Visual FoxPro 中有一堆实用程序脚本,我们用它们来交互式地清理/格式化数据。我们想开始迁移此代码以利用其他数据库平台,如 MySQL 或 SQLite。

例如,我们运行了一个脚本,它将名称和/或地址行转换为正确的大写/小写。此代码遍历整个表并分析/修复每一行。还有其他一些事情,比如解析和标准化地址,甚至重复检测......

我们正在考虑将代码迁移到 Python,并可能使用 SQLAlchemy 之类的东西作为“中间人”。

在 Visual FoxPro 中,数据库/表是集成的,因此我们可以打开表并运行命令。MySQL 的不同之处在于我们需要从中提取数据,然后处理提取的数据,然后更新表。

最好的方法是什么?

我看到了几种可能性:

1)提取要处理的整个数据集,比如所有地址字段,如果这是我们要处理的内容,然后将其全部更新并全部写回......

2)以块的形式提取数据集,以免潜在地消耗大量系统内存......然后更新并写回

3) 生成 SQL 代码,也许在 SQLAlchemy 之类的工具的帮助下,被发送到服务器并由服务器执行......

4)???还有什么我没有想到的吗?

4

1 回答 1

0

看起来你正试图同时做几件事。你能采取一步一步的方法吗?也许使用您的常规脚本来清理数据,就像它们现在一样。然后将数据库迁移到 MySQL。

如果 VisualFoxPro 提供了一种将数据库导出为 CSV 等格式的方法,那么迁移数据库就很容易了。然后,您可以直接将该 CSV 导入 MySQL 中,而且麻烦很小。这为您提供了两个功能应该相同的数据库。当然,你必须证明它们确实是相同的,这不是太难,但很耗时。您也许可以使用 SQLAlchemy 来提供帮助。

当 MySQL 数据库正确时,就是将清理脚本移植到 Python 或其他东西并让它们工作的时候了。

这就是我处理这个问题的方式:把它分解成小块,不要试图在任何一个步骤中做太多。

高温高压

于 2011-10-06T22:32:39.620 回答