2011-01-23 1 views
1

У меня есть текстовый файл с данными в текстовом формате, и я хочу, чтобы эти данные были автоматизированы в базе данных для дальнейшего использования в приложении Ruby on Rails, и я хочу использовать Ruby для решения этой проблемы.Каков наиболее эффективный способ создания базы данных SQLite из данных в файле?

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

Решения, которые я нашел, включают использование активной записи для извлечения данных из файла и в базу данных, которые могут быть не самыми эффективными, поэтому давайте посмотрим, что у вас на уме?

+0

Какое программное обеспечение базы данных? –

+0

Я goin с Sqlite 3 .... –

+0

«в текстовом формате» является неопределенным. Теперь, когда я думаю об этом, так это «в автоматическом режиме» и «для дальнейшего использования в Rails». Если вы предоставили более подробную информацию, вы получите более качественные ответы. –

ответ

3

Я нахожу, что Sequel будет быстрее, чем ActiveRecord, но оба должны быть в порядке.

  1. Прочитайте текст в памяти. Если он слишком велик, чтобы вписаться в память, вы хотите использовать File.foreach для работы по нему по одной линии за раз.

  2. Разбор текстового файла в массив логических полей. Я бы предложил использовать регулярные выражения, если ваш текстовый файл не CSV.

  3. Выполните multi_insert в своей базе данных, в которой используется одна команда SQL для вставки n строк сразу.

    • Если вы не можете выполнить вставку партии (я понимаю, что ActiveRecord не поддерживает по умолчанию без какого-либо расширения), то убедитесь, что по крайней мере использовать транзакции базы данных вокруг всех вставок. Если вы этого не сделаете, SQLite будет бить файловую систему для каждой вставки, что сильно замедлит вас.

Без дополнительной информации о «текстовый файл», это примерно так же полезно, как я могу быть.

Смежные вопросы