SQLite или плоский текстовый файл?

Я обрабатываю много текста/данных, которым я обмениваюсь между Python, R, и иногда Matlab.

Моим дежурным является плоский текстовый файл, но также и использование SQLite иногда, чтобы хранить данные и доступ из каждой программы (не Matlab все же хотя). Я не использую GROUPBY, AVG, и т.д. в SQL так же, как я делаю эти операции в R, таким образом, я не обязательно требую операций базы данных.

Для таких приложений, который требует, чтобы данные обмена среди программ использовали доступные библиотеки на каждом языке, там хорошее эмпирическое правило на который формат/метод обмена данными использовать (даже XML или NetCDF или HDF5)?

Я знаю между Python-> R существует rpy или rpy2, но я задавался вопросом об этом вопросе в более общем смысле - я использую много компьютеров, которые все не имеют rpy2 и также используют несколько других частей научного аналитического программного обеспечения, которые требуют доступа к данным неоднократно (этапы обработки, и анализ также разделяются).

8
задан Dominic Rodger 6 March 2010 в 09:33
поделиться

2 ответа

Если все языки поддерживают SQLite - используйте его. Мощь SQL может быть вам бесполезна прямо сейчас, но, вероятно, когда-нибудь пригодится, и избавит вас от необходимости переписывать вещи позже, когда вы решите, что хотите иметь возможность запрашивать данные более сложными способами.

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

15
ответ дан 5 December 2019 в 08:23
поделиться

Плоский текстовый файл (например, в формате csv) был бы наиболее переносимым решением. Почти каждая программа / библиотека может работать с этим форматом: R и Python имеют хорошую поддержку csv, и если ваш набор данных не слишком велик, вы даже можете импортировать csv в Excel для небольших задач.

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

SQLite позволяет очень легко фильтровать данные (даже без особого опыта в SQL) и, как вы уже упоминали, может выполнять некоторые вычисления самостоятельно (AVG, SUM, ...). Используя подключаемый модуль Firefox SQLiteManager , вы можете работать с БД на любом компьютере без каких-либо проблем с установкой / настройкой и, таким образом, легко управлять своими данными (импорт / экспорт, фильтрация).

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

5
ответ дан 5 December 2019 в 08:23
поделиться
Другие вопросы по тегам:

Похожие вопросы: