Какой лучший язык / методика для выполнения расширенной очистки и форматирования данных в таблице SQL / MySQL / PostgreSQL? - PullRequest
1 голос
/ 07 октября 2011

У нас есть несколько служебных скриптов в Visual FoxPro, которые мы используем для интерактивной очистки / форматирования данных. Мы хотели бы начать миграцию этого кода, чтобы использовать другие платформы баз данных, такие как MySQL или SQLite.

Например, у нас есть скрипт, который мы запускаем, который преобразует строки имени и / или адреса в правильный верхний / нижний регистр. Этот код проходит всю таблицу и анализирует / исправляет каждую строку. Есть другие, которые делают такие вещи, как анализ и стандартизацию адреса и даже обнаружение дубликатов ...

Мы подумываем о переносе кода в Python и, возможно, использовать что-то вроде SQLAlchemy в качестве «посредника».

В Visual FoxPro база данных / таблицы интегрированы, поэтому мы можем просто открыть таблицу и выполнить команды. MySQL отличается тем, что нам нужно извлечь из него данные, затем поработать с этими извлеченными данными, а затем обновить таблицу.

Какой будет лучший подход?

Я вижу несколько возможностей:

1) Извлеките весь набор данных для обработки, скажем, все поля адреса, если это то, с чем мы будем работать, затем обновите все и запишите все обратно ...

2) Извлечь набор данных в виде фрагментов, чтобы потенциально не потреблять огромные объемы системной памяти ... затем обновить и записать обратно

3) Создание кода SQL, возможно, с помощью такого инструмента, как SQLAlchemy, который отправляется и выполняется сервером ...

4) ??? Что-нибудь еще, о чем я не думал?

1 Ответ

0 голосов
/ 07 октября 2011

Кажется, вы пытаетесь сделать несколько вещей одновременно. Не могли бы вы принять пошаговый подход? Возможно, очистите данные, как они есть сейчас, используя ваши обычные, обычные сценарии. Затем перенесите базу данных в MySQL.

Легко перенести базу данных, если VisualFoxPro предлагает способ экспорта базы данных, скажем, в CSV. Затем вы можете импортировать этот CSV в MySQL напрямую, без особых проблем. Это дает вам две базы данных, которые должны быть функционально идентичными. Конечно, вы должны доказать , что они действительно идентичны, что не слишком сложно, но отнимает много времени. Вы можете использовать SQLAlchemy, чтобы помочь.

Когда база данных MySQL верна, самое время перенести свои скрипты очистки на Python или что-то еще и заставить их работать.

Вот как я бы подошел к этой проблеме: разбить ее на части и не пытаться делать слишком много за один шаг.

HTH

...